Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2010-08-23 17:52:01 +00:00
parent 79ed2c597a
commit 02dd53e1c5
23 changed files with 54 additions and 59 deletions

View File

@ -95,8 +95,8 @@ namespace {
}
char CFGPrinter::ID = 0;
static RegisterPass<CFGPrinter>
P1("dot-cfg", "Print CFG of function to 'dot' file", false, true);
INITIALIZE_PASS(CFGPrinter, "dot-cfg", "Print CFG of function to 'dot' file",
false, true);
namespace {
struct CFGOnlyPrinter : public FunctionPass {
@ -126,9 +126,9 @@ namespace {
}
char CFGOnlyPrinter::ID = 0;
static RegisterPass<CFGOnlyPrinter>
P2("dot-cfg-only",
"Print CFG of function to 'dot' file (with no function bodies)", false, true);
INITIALIZE_PASS(CFGOnlyPrinter, "dot-cfg-only",
"Print CFG of function to 'dot' file (with no function bodies)",
false, true);
/// viewCFG - This function is meant for use from the debugger. You can just
/// say 'call F->viewCFG()' and a ghostview window should pop up from the

View File

@ -177,9 +177,9 @@ namespace {
}
char GlobalsModRef::ID = 0;
static RegisterPass<GlobalsModRef>
X("globalsmodref-aa", "Simple mod/ref analysis for globals", false, true);
static RegisterAnalysisGroup<AliasAnalysis> Y(X);
INITIALIZE_AG_PASS(GlobalsModRef, AliasAnalysis,
"globalsmodref-aa", "Simple mod/ref analysis for globals",
false, true, false);
Pass *llvm::createGlobalsModRefPass() { return new GlobalsModRef(); }

View File

@ -72,10 +72,8 @@ namespace {
} // End of anonymous namespace
char ProfileEstimatorPass::ID = 0;
static RegisterPass<ProfileEstimatorPass>
X("profile-estimator", "Estimate profiling information", false, true);
static RegisterAnalysisGroup<ProfileInfo> Y(X);
INITIALIZE_AG_PASS(ProfileEstimatorPass, ProfileInfo, "profile-estimator",
"Estimate profiling information", false, true, false);
namespace llvm {
char &ProfileEstimatorPassID = ProfileEstimatorPass::ID;

View File

@ -79,10 +79,8 @@ namespace {
} // End of anonymous namespace
char LoaderPass::ID = 0;
static RegisterPass<LoaderPass>
X("profile-loader", "Load profile information from llvmprof.out", false, true);
static RegisterAnalysisGroup<ProfileInfo> Y(X);
INITIALIZE_AG_PASS(LoaderPass, ProfileInfo, "profile-loader",
"Load profile information from llvmprof.out", false, true, false);
char &llvm::ProfileLoaderPassID = LoaderPass::ID;

View File

@ -24,8 +24,8 @@ TEMPLATE_INSTANTIATION(class DominatorTreeBase<MachineBasicBlock>);
char MachineDominatorTree::ID = 0;
static RegisterPass<MachineDominatorTree>
E("machinedomtree", "MachineDominator Tree Construction", true);
INITIALIZE_PASS(MachineDominatorTree, "machinedomtree",
"MachineDominator Tree Construction", true, true);
char &llvm::MachineDominatorsID = MachineDominatorTree::ID;

View File

@ -30,8 +30,8 @@ TEMPLATE_INSTANTIATION(MLIB);
}
char MachineLoopInfo::ID = 0;
static RegisterPass<MachineLoopInfo>
X("machine-loops", "Machine Natural Loop Construction", true);
INITIALIZE_PASS(MachineLoopInfo, "machine-loops",
"Machine Natural Loop Construction", true, true);
char &llvm::MachineLoopInfoID = MachineLoopInfo::ID;

View File

@ -211,9 +211,8 @@ namespace {
}
char MachineVerifierPass::ID = 0;
static RegisterPass<MachineVerifierPass>
MachineVer("machineverifier", "Verify generated machine code");
static const PassInfo *const MachineVerifyID = &MachineVer;
INITIALIZE_PASS(MachineVerifierPass, "machineverifier",
"Verify generated machine code", false, false);
FunctionPass *llvm::createMachineVerifierPass() {
return new MachineVerifierPass();

View File

@ -38,8 +38,8 @@ STATISTIC(NumAtomic, "Number of atomic phis lowered");
STATISTIC(NumReused, "Number of reused lowered phis");
char PHIElimination::ID = 0;
static RegisterPass<PHIElimination>
X("phi-node-elimination", "Eliminate PHI nodes for register allocation");
INITIALIZE_PASS(PHIElimination, "phi-node-elimination",
"Eliminate PHI nodes for register allocation", false, false);
char &llvm::PHIEliminationID = PHIElimination::ID;

View File

@ -203,8 +203,9 @@ namespace {
char PreAllocSplitting::ID = 0;
static RegisterPass<PreAllocSplitting>
X("pre-alloc-splitting", "Pre-Register Allocation Live Interval Splitting");
INITIALIZE_PASS(PreAllocSplitting, "pre-alloc-splitting",
"Pre-Register Allocation Live Interval Splitting",
false, false);
char &llvm::PreAllocSplittingID = PreAllocSplitting::ID;

View File

@ -59,11 +59,9 @@ DisableCrossClassJoin("disable-cross-class-join",
cl::desc("Avoid coalescing cross register class copies"),
cl::init(false), cl::Hidden);
static RegisterPass<SimpleRegisterCoalescing>
X("simple-register-coalescing", "Simple Register Coalescing");
// Declare that we implement the RegisterCoalescer interface
static RegisterAnalysisGroup<RegisterCoalescer, true/*The Default*/> V(X);
INITIALIZE_AG_PASS(SimpleRegisterCoalescing, RegisterCoalescer,
"simple-register-coalescing", "Simple Register Coalescing",
false, false, true);
char &llvm::SimpleRegisterCoalescingID = SimpleRegisterCoalescing::ID;

View File

@ -150,9 +150,8 @@ namespace {
}
char StrongPHIElimination::ID = 0;
static RegisterPass<StrongPHIElimination>
X("strong-phi-node-elimination",
"Eliminate PHI nodes for register allocation, intelligently");
INITIALIZE_PASS(StrongPHIElimination, "strong-phi-node-elimination",
"Eliminate PHI nodes for register allocation, intelligently", false, false);
char &llvm::StrongPHIEliminationID = StrongPHIElimination::ID;

View File

@ -159,8 +159,8 @@ namespace {
}
char TwoAddressInstructionPass::ID = 0;
static RegisterPass<TwoAddressInstructionPass>
X("twoaddressinstruction", "Two-Address instruction pass");
INITIALIZE_PASS(TwoAddressInstructionPass, "twoaddressinstruction",
"Two-Address instruction pass", false, false);
char &llvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID;

View File

@ -105,9 +105,8 @@ namespace {
}
char UnreachableMachineBlockElim::ID = 0;
static RegisterPass<UnreachableMachineBlockElim>
Y("unreachable-mbb-elimination",
"Remove unreachable machine basic blocks");
INITIALIZE_PASS(UnreachableMachineBlockElim, "unreachable-mbb-elimination",
"Remove unreachable machine basic blocks", false, false);
char &llvm::UnreachableMachineBlockElimID = UnreachableMachineBlockElim::ID;

View File

@ -154,7 +154,8 @@ struct LowerAtomic : public BasicBlockPass {
}
char LowerAtomic::ID = 0;
static RegisterPass<LowerAtomic>
X("loweratomic", "Lower atomic intrinsics to non-atomic form");
INITIALIZE_PASS(LowerAtomic, "loweratomic",
"Lower atomic intrinsics to non-atomic form",
false, false);
Pass *llvm::createLowerAtomicPass() { return new LowerAtomic(); }

View File

@ -59,8 +59,8 @@ namespace {
}
char RegToMem::ID = 0;
static RegisterPass<RegToMem>
X("reg2mem", "Demote all values to stack slots");
INITIALIZE_PASS(RegToMem, "reg2mem", "Demote all values to stack slots",
false, false);
bool RegToMem::runOnFunction(Function &F) {

View File

@ -53,8 +53,8 @@ namespace {
}
char BreakCriticalEdges::ID = 0;
static RegisterPass<BreakCriticalEdges>
X("break-crit-edges", "Break critical edges in CFG");
INITIALIZE_PASS(BreakCriticalEdges, "break-crit-edges",
"Break critical edges in CFG", false, false);
// Publically exposed interface to pass...
char &llvm::BreakCriticalEdgesID = BreakCriticalEdges::ID;

View File

@ -48,8 +48,8 @@ namespace {
};
char InstNamer::ID = 0;
static RegisterPass<InstNamer> X("instnamer",
"Assign names to anonymous instructions");
INITIALIZE_PASS(InstNamer, "instnamer",
"Assign names to anonymous instructions", false, false);
}

View File

@ -90,7 +90,7 @@ namespace {
}
char LCSSA::ID = 0;
static RegisterPass<LCSSA> X("lcssa", "Loop-Closed SSA Form Pass");
INITIALIZE_PASS(LCSSA, "lcssa", "Loop-Closed SSA Form Pass", false, false);
Pass *llvm::createLCSSAPass() { return new LCSSA(); }
char &llvm::LCSSAID = LCSSA::ID;

View File

@ -105,8 +105,8 @@ namespace {
}
char LoopSimplify::ID = 0;
static RegisterPass<LoopSimplify>
X("loopsimplify", "Canonicalize natural loops", true);
INITIALIZE_PASS(LoopSimplify, "loopsimplify",
"Canonicalize natural loops", true, false);
// Publically exposed interface to pass...
char &llvm::LoopSimplifyID = LoopSimplify::ID;

View File

@ -100,8 +100,9 @@ namespace {
}
char LowerInvoke::ID = 0;
static RegisterPass<LowerInvoke>
X("lowerinvoke", "Lower invoke and unwind, for unwindless code generators");
INITIALIZE_PASS(LowerInvoke, "lowerinvoke",
"Lower invoke and unwind, for unwindless code generators",
false, false);
char &llvm::LowerInvokePassID = LowerInvoke::ID;

View File

@ -79,8 +79,8 @@ namespace {
}
char LowerSwitch::ID = 0;
static RegisterPass<LowerSwitch>
X("lowerswitch", "Lower SwitchInst's to branches");
INITIALIZE_PASS(LowerSwitch, "lowerswitch",
"Lower SwitchInst's to branches", false, false);
// Publically exposed interface to pass...
char &llvm::LowerSwitchID = LowerSwitch::ID;

View File

@ -49,7 +49,8 @@ namespace {
} // end of anonymous namespace
char PromotePass::ID = 0;
static RegisterPass<PromotePass> X("mem2reg", "Promote Memory to Register");
INITIALIZE_PASS(PromotePass, "mem2reg", "Promote Memory to Register",
false, false);
bool PromotePass::runOnFunction(Function &F) {
std::vector<AllocaInst*> Allocas;

View File

@ -102,8 +102,8 @@ namespace { // Anonymous namespace for class
}
char PreVerifier::ID = 0;
static RegisterPass<PreVerifier>
PreVer("preverify", "Preliminary module verification");
INITIALIZE_PASS(PreVerifier, "preverify", "Preliminary module verification",
false, false);
char &PreVerifyID = PreVerifier::ID;
namespace {
@ -403,7 +403,7 @@ namespace {
} // End anonymous namespace
char Verifier::ID = 0;
static RegisterPass<Verifier> X("verify", "Module Verifier");
INITIALIZE_PASS(Verifier, "verify", "Module Verifier", false, false);
// Assert - We know that cond should be true, if not print an error message.
#define Assert(C, M) \