namespace {
struct VISIBILITY_HIDDEN Printer : public MachineFunctionPass {
+ static char ID;
+
std::ostream *OS;
const std::string Banner;
- Printer (std::ostream *_OS, const std::string &_Banner) :
- OS (_OS), Banner (_Banner) { }
+ Printer (std::ostream *_OS, const std::string &_Banner)
+ : MachineFunctionPass((intptr_t)&ID), OS (_OS), Banner (_Banner) { }
const char *getPassName() const { return "MachineFunction Printer"; }
return false;
}
};
+ char Printer::ID = 0;
}
/// Returns a newly-created MachineFunction Printer pass. The default output
namespace {
struct VISIBILITY_HIDDEN Deleter : public MachineFunctionPass {
+ static char ID;
+ Deleter() : MachineFunctionPass((intptr_t)&ID) {}
+
const char *getPassName() const { return "Machine Code Deleter"; }
bool runOnMachineFunction(MachineFunction &MF) {
return true;
}
};
+ char Deleter::ID = 0;
}
/// MachineCodeDeletion Pass - This pass deletes all of the machine code for
MachineFunction::MachineFunction(const Function *F,
const TargetMachine &TM)
- : Annotation(MF_AID), Fn(F), Target(TM), UsedPhysRegs(0) {
+ : Annotation(MF_AID), Fn(F), Target(TM) {
SSARegMapping = new SSARegMap();
MFInfo = 0;
FrameInfo = new MachineFrameInfo();
ConstantPool = new MachineConstantPool(TM.getTargetData());
+ UsedPhysRegs.resize(TM.getRegisterInfo()->getNumRegs());
// Set up jump table.
const TargetData &TD = *TM.getTargetData();
delete FrameInfo;
delete ConstantPool;
delete JumpTableInfo;
- delete[] UsedPhysRegs;
}
const MRegisterInfo *MRI = getTarget().getRegisterInfo();
- if (livein_begin() != livein_end()) {
+ if (!livein_empty()) {
OS << "Live Ins:";
for (livein_iterator I = livein_begin(), E = livein_end(); I != E; ++I) {
if (MRI)
}
OS << "\n";
}
- if (liveout_begin() != liveout_end()) {
+ if (!liveout_empty()) {
OS << "Live Outs:";
for (liveout_iterator I = liveout_begin(), E = liveout_end(); I != E; ++I)
if (MRI)