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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -203,8 +203,9 @@ namespace {
char PreAllocSplitting::ID = 0; char PreAllocSplitting::ID = 0;
static RegisterPass<PreAllocSplitting> INITIALIZE_PASS(PreAllocSplitting, "pre-alloc-splitting",
X("pre-alloc-splitting", "Pre-Register Allocation Live Interval Splitting"); "Pre-Register Allocation Live Interval Splitting",
false, false);
char &llvm::PreAllocSplittingID = PreAllocSplitting::ID; 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::desc("Avoid coalescing cross register class copies"),
cl::init(false), cl::Hidden); cl::init(false), cl::Hidden);
static RegisterPass<SimpleRegisterCoalescing> INITIALIZE_AG_PASS(SimpleRegisterCoalescing, RegisterCoalescer,
X("simple-register-coalescing", "Simple Register Coalescing"); "simple-register-coalescing", "Simple Register Coalescing",
false, false, true);
// Declare that we implement the RegisterCoalescer interface
static RegisterAnalysisGroup<RegisterCoalescer, true/*The Default*/> V(X);
char &llvm::SimpleRegisterCoalescingID = SimpleRegisterCoalescing::ID; char &llvm::SimpleRegisterCoalescingID = SimpleRegisterCoalescing::ID;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -90,7 +90,7 @@ namespace {
} }
char LCSSA::ID = 0; 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(); } Pass *llvm::createLCSSAPass() { return new LCSSA(); }
char &llvm::LCSSAID = LCSSA::ID; char &llvm::LCSSAID = LCSSA::ID;

View File

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

View File

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

View File

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

View File

@ -49,7 +49,8 @@ namespace {
} // end of anonymous namespace } // end of anonymous namespace
char PromotePass::ID = 0; 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) { bool PromotePass::runOnFunction(Function &F) {
std::vector<AllocaInst*> Allocas; std::vector<AllocaInst*> Allocas;

View File

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