Do not use typeinfo to identify pass in pass manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2007-05-01 21:15:47 +00:00
parent e50fb9ac17
commit 794fd75c67
154 changed files with 687 additions and 129 deletions

View File

@@ -28,6 +28,7 @@ using namespace llvm::dwarf;
// Handle the Pass registration stuff necessary to use TargetData's.
namespace {
const int MachineModuleInfo::ID = 0;
RegisterPass<MachineModuleInfo> X("machinemoduleinfo", "Module Information");
}
@@ -1462,7 +1463,8 @@ DebugScope::~DebugScope() {
//===----------------------------------------------------------------------===//
MachineModuleInfo::MachineModuleInfo()
: DR()
: ImmutablePass((intptr_t)&ID)
, DR()
, VR()
, CompileUnits()
, Directories()
@@ -1749,10 +1751,15 @@ Function *MachineModuleInfo::getPersonality() const {
namespace llvm {
struct DebugLabelFolder : public MachineFunctionPass {
static const int ID;
DebugLabelFolder() : MachineFunctionPass((intptr_t)&ID) {}
virtual bool runOnMachineFunction(MachineFunction &MF);
virtual const char *getPassName() const { return "Label Folder"; }
};
const int DebugLabelFolder::ID = 0;
bool DebugLabelFolder::runOnMachineFunction(MachineFunction &MF) {
// Get machine module info.
MachineModuleInfo *MMI = getAnalysisToUpdate<MachineModuleInfo>();