From: Chris Lattner Date: Fri, 26 Jul 2002 21:12:44 +0000 (+0000) Subject: * Add support for different "PassType's" X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=1e43516dcf4aa152432447397334cd43744d63e1;p=oota-llvm.git * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3112 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h index 042a4191b26..719c05ed230 100644 --- a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h +++ b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h @@ -22,7 +22,6 @@ public: // BasicBlock *getExitNode() const { return ExitNode; } - virtual const char *getPassName() const { return "Unify Function Exit Nodes";} virtual bool runOnFunction(Function &F); virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addProvided(ID); } }; diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp index f7a6332e78c..62206d9b0e9 100644 --- a/lib/Analysis/DataStructure/BottomUpClosure.cpp +++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp @@ -13,6 +13,8 @@ #include "Support/StatisticReporter.h" using std::map; +static RegisterAnalysis +X("budatastructure", "Bottom-Up Data Structure Analysis Closure"); AnalysisID BUDataStructures::ID(AnalysisID::create()); // releaseMemory - If the pass pipeline is done with this pass, we can release diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index befbd55040c..f573a0be1a6 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -15,6 +15,8 @@ using std::vector; +static RegisterAnalysis +X("datastructure", "Local Data Structure Analysis"); AnalysisID LocalDataStructures::ID(AnalysisID::create()); //===----------------------------------------------------------------------===// diff --git a/lib/Analysis/IPA/CallGraph.cpp b/lib/Analysis/IPA/CallGraph.cpp index 0e3722a86e3..dfb5de68de0 100644 --- a/lib/Analysis/IPA/CallGraph.cpp +++ b/lib/Analysis/IPA/CallGraph.cpp @@ -40,13 +40,12 @@ #include "llvm/Analysis/CallGraph.h" #include "llvm/Module.h" -#include "llvm/Function.h" -#include "llvm/BasicBlock.h" #include "llvm/iOther.h" #include "llvm/iTerminators.h" #include "Support/STLExtras.h" #include -#include + +static RegisterAnalysis X("callgraph", "Call Graph Construction"); AnalysisID CallGraph::ID(AnalysisID::create()); diff --git a/lib/Analysis/IntervalPartition.cpp b/lib/Analysis/IntervalPartition.cpp index 8d0e34c1a73..5e6bf9ca4da 100644 --- a/lib/Analysis/IntervalPartition.cpp +++ b/lib/Analysis/IntervalPartition.cpp @@ -10,6 +10,9 @@ using std::make_pair; +static RegisterAnalysis +X("intervals", "Interval Partition Construction"); + AnalysisID IntervalPartition::ID(AnalysisID::create(), true); //===----------------------------------------------------------------------===// diff --git a/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp b/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp index b080ec2f3e2..e730f49e692 100644 --- a/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp +++ b/lib/Analysis/LiveVar/FunctionLiveVarInfo.cpp @@ -15,6 +15,8 @@ #include "Support/CommandLine.h" #include +static RegisterAnalysis +X("livevar", "Live Variable Analysis"); AnalysisID FunctionLiveVarInfo::ID(AnalysisID::create()); LiveVarDebugLevel_t DEBUG_LV; diff --git a/lib/Analysis/LoopInfo.cpp b/lib/Analysis/LoopInfo.cpp index 2559912c0eb..c53cc9038c9 100644 --- a/lib/Analysis/LoopInfo.cpp +++ b/lib/Analysis/LoopInfo.cpp @@ -13,6 +13,8 @@ #include "Support/DepthFirstIterator.h" #include +static RegisterAnalysis +X("loops", "Natural Loop Construction"); AnalysisID LoopInfo::ID(AnalysisID::create(), true); //===----------------------------------------------------------------------===// diff --git a/lib/Analysis/PostDominators.cpp b/lib/Analysis/PostDominators.cpp index 777b3c4a9f0..9b35d16b904 100644 --- a/lib/Analysis/PostDominators.cpp +++ b/lib/Analysis/PostDominators.cpp @@ -18,6 +18,11 @@ using std::set; // DominatorSet Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +A("domset", "Dominator Set Construction"); +static RegisterAnalysis +B("postdomset", "Post-Dominator Set Construction"); + AnalysisID DominatorSet::ID(AnalysisID::create(), true); AnalysisID PostDominatorSet::ID(AnalysisID::create(), true); @@ -151,6 +156,11 @@ void PostDominatorSet::getAnalysisUsage(AnalysisUsage &AU) const { // ImmediateDominators Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +C("idom", "Immediate Dominators Construction"); +static RegisterAnalysis +D("postidom", "Immediate Post-Dominators Construction"); + AnalysisID ImmediateDominators::ID(AnalysisID::create(), true); AnalysisID ImmediatePostDominators::ID(AnalysisID::create(), true); @@ -195,6 +205,11 @@ void ImmediateDominatorsBase::calcIDoms(const DominatorSetBase &DS) { // DominatorTree Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +E("domtree", "Dominator Tree Construction"); +static RegisterAnalysis +F("postdomtree", "Post-Dominator Tree Construction"); + AnalysisID DominatorTree::ID(AnalysisID::create(), true); AnalysisID PostDominatorTree::ID(AnalysisID::create(), true); @@ -307,6 +322,11 @@ void PostDominatorTree::calculate(const PostDominatorSet &DS) { // DominanceFrontier Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +G("domfrontier", "Dominance Frontier Construction"); +static RegisterAnalysis +H("postdomfrontier", "Post-Dominance Frontier Construction"); + AnalysisID DominanceFrontier::ID(AnalysisID::create(), true); AnalysisID PostDominanceFrontier::ID(AnalysisID::create(), true); diff --git a/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp b/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp index b080ec2f3e2..e730f49e692 100644 --- a/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp +++ b/lib/Target/SparcV9/LiveVar/FunctionLiveVarInfo.cpp @@ -15,6 +15,8 @@ #include "Support/CommandLine.h" #include +static RegisterAnalysis +X("livevar", "Live Variable Analysis"); AnalysisID FunctionLiveVarInfo::ID(AnalysisID::create()); LiveVarDebugLevel_t DEBUG_LV; diff --git a/lib/Transforms/IPO/ConstantMerge.cpp b/lib/Transforms/IPO/ConstantMerge.cpp index 905c7a52eb9..b979104401c 100644 --- a/lib/Transforms/IPO/ConstantMerge.cpp +++ b/lib/Transforms/IPO/ConstantMerge.cpp @@ -31,8 +31,8 @@ namespace { } }; -Statistic<> NumMerged("constmerge\t\t- Number of global constants merged"); -RegisterPass X("constmerge", "Merge Duplicate Global Constants"); + Statistic<> NumMerged("constmerge\t\t- Number of global constants merged"); + RegisterOpt X("constmerge","Merge Duplicate Global Constants"); } Pass *createConstantMergePass() { return new ConstantMerge(); } diff --git a/lib/Transforms/IPO/DeadTypeElimination.cpp b/lib/Transforms/IPO/DeadTypeElimination.cpp index f276ca7c000..3473f526dcd 100644 --- a/lib/Transforms/IPO/DeadTypeElimination.cpp +++ b/lib/Transforms/IPO/DeadTypeElimination.cpp @@ -30,7 +30,7 @@ namespace { AU.addRequired(FindUsedTypes::ID); } }; - RegisterPass X("deadtypeelim", "Dead Type Elimination"); + RegisterOpt X("deadtypeelim", "Dead Type Elimination"); Statistic<> NumKilled("deadtypeelim\t- Number of unused typenames removed from symtab"); } diff --git a/lib/Transforms/IPO/FunctionResolution.cpp b/lib/Transforms/IPO/FunctionResolution.cpp index 0d05611c946..44f84851211 100644 --- a/lib/Transforms/IPO/FunctionResolution.cpp +++ b/lib/Transforms/IPO/FunctionResolution.cpp @@ -32,7 +32,7 @@ namespace { struct FunctionResolvingPass : public Pass { bool run(Module &M); }; - RegisterPass X("funcresolve", "Resolve Functions"); + RegisterOpt X("funcresolve", "Resolve Functions"); } Pass *createFunctionResolvingPass() { diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index a61b1ab592e..029456ef5e6 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -86,7 +86,7 @@ namespace { AU.addRequired(CallGraph::ID); } }; - RegisterPass X("globaldce", "Dead Global Elimination"); + RegisterOpt X("globaldce", "Dead Global Elimination"); } Pass *createGlobalDCEPass() { return new GlobalDCE(); } diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index b6a48b4e22d..7ea7a6fff84 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -41,7 +41,7 @@ class InternalizePass : public Pass { } }; -RegisterPass X("internalize", "Internalize Functions"); + RegisterOpt X("internalize", "Internalize Functions"); } // end anonymous namespace Pass *createInternalizePass() { diff --git a/lib/Transforms/IPO/OldPoolAllocate.cpp b/lib/Transforms/IPO/OldPoolAllocate.cpp index c22d53ef917..43fd162d8e6 100644 --- a/lib/Transforms/IPO/OldPoolAllocate.cpp +++ b/lib/Transforms/IPO/OldPoolAllocate.cpp @@ -315,8 +315,8 @@ namespace { }; - RegisterPass X("poolalloc", - "Pool allocate disjoint datastructures"); + RegisterOpt X("poolalloc", + "Pool allocate disjoint datastructures"); } // isNotPoolableAlloc - This is a predicate that returns true if the specified diff --git a/lib/Transforms/IPO/SimpleStructMutation.cpp b/lib/Transforms/IPO/SimpleStructMutation.cpp index 464d628e10b..59871556aca 100644 --- a/lib/Transforms/IPO/SimpleStructMutation.cpp +++ b/lib/Transforms/IPO/SimpleStructMutation.cpp @@ -189,10 +189,10 @@ Pass *createSortElementsPass(const TargetData &TD) { } namespace { - RegisterPass X("swapstructs", - "Swap structure types around", - createSwapElementsPass); - RegisterPass Y("sortstructs", - "Sort structure elements by size", - createSortElementsPass); + RegisterOpt X("swapstructs", + "Swap structure types around", + createSwapElementsPass); + RegisterOpt Y("sortstructs", + "Sort structure elements by size", + createSortElementsPass); } diff --git a/lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp b/lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp index 95cd5bea9a9..98430f9c7a1 100644 --- a/lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp +++ b/lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp @@ -47,7 +47,7 @@ struct ProfilePaths : public FunctionPass { } }; -static RegisterPass X("paths", "Profile Paths"); +static RegisterOpt X("paths", "Profile Paths"); // createProfilePathsPass - Create a new pass to add path profiling // diff --git a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index ef7d63e7cdb..d3e20ac8353 100644 --- a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp @@ -17,7 +17,7 @@ using std::vector; AnalysisID UnifyFunctionExitNodes::ID(AnalysisID::create()); -static RegisterPass +static RegisterOpt X("mergereturn", "Unify function exit nodes"); // UnifyAllExitNodes - Unify all exit nodes of the CFG by creating a new diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp index 777b3c4a9f0..9b35d16b904 100644 --- a/lib/VMCore/Dominators.cpp +++ b/lib/VMCore/Dominators.cpp @@ -18,6 +18,11 @@ using std::set; // DominatorSet Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +A("domset", "Dominator Set Construction"); +static RegisterAnalysis +B("postdomset", "Post-Dominator Set Construction"); + AnalysisID DominatorSet::ID(AnalysisID::create(), true); AnalysisID PostDominatorSet::ID(AnalysisID::create(), true); @@ -151,6 +156,11 @@ void PostDominatorSet::getAnalysisUsage(AnalysisUsage &AU) const { // ImmediateDominators Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +C("idom", "Immediate Dominators Construction"); +static RegisterAnalysis +D("postidom", "Immediate Post-Dominators Construction"); + AnalysisID ImmediateDominators::ID(AnalysisID::create(), true); AnalysisID ImmediatePostDominators::ID(AnalysisID::create(), true); @@ -195,6 +205,11 @@ void ImmediateDominatorsBase::calcIDoms(const DominatorSetBase &DS) { // DominatorTree Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +E("domtree", "Dominator Tree Construction"); +static RegisterAnalysis +F("postdomtree", "Post-Dominator Tree Construction"); + AnalysisID DominatorTree::ID(AnalysisID::create(), true); AnalysisID PostDominatorTree::ID(AnalysisID::create(), true); @@ -307,6 +322,11 @@ void PostDominatorTree::calculate(const PostDominatorSet &DS) { // DominanceFrontier Implementation //===----------------------------------------------------------------------===// +static RegisterAnalysis +G("domfrontier", "Dominance Frontier Construction"); +static RegisterAnalysis +H("postdomfrontier", "Post-Dominance Frontier Construction"); + AnalysisID DominanceFrontier::ID(AnalysisID::create(), true); AnalysisID PostDominanceFrontier::ID(AnalysisID::create(), true);