diff options
author | Dan Gohman <gohman@apple.com> | 2008-05-13 00:00:25 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-05-13 00:00:25 +0000 |
commit | 089efffd7d1ca0d10522ace38d36e0a67f4fac2d (patch) | |
tree | 9221560124d6ed762ef6e5bbda45f4038dacdeb0 /lib/Transforms | |
parent | 74d6faf5c9732e3a51e68c58b3fb7d3e9ff8bfb6 (diff) | |
download | external_llvm-089efffd7d1ca0d10522ace38d36e0a67f4fac2d.zip external_llvm-089efffd7d1ca0d10522ace38d36e0a67f4fac2d.tar.gz external_llvm-089efffd7d1ca0d10522ace38d36e0a67f4fac2d.tar.bz2 |
Clean up the use of static and anonymous namespaces. This turned up
several things that were neither in an anonymous namespace nor static
but not intended to be global.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
57 files changed, 307 insertions, 254 deletions
diff --git a/lib/Transforms/Hello/Hello.cpp b/lib/Transforms/Hello/Hello.cpp index 5f27e04..f2a8322 100644 --- a/lib/Transforms/Hello/Hello.cpp +++ b/lib/Transforms/Hello/Hello.cpp @@ -36,10 +36,12 @@ namespace { return false; } }; +} - char Hello::ID = 0; - RegisterPass<Hello> X("hello", "Hello World Pass"); +char Hello::ID = 0; +static RegisterPass<Hello> X("hello", "Hello World Pass"); +namespace { // Hello2 - The second implementation with getAnalysisUsage implemented. struct Hello2 : public FunctionPass { static char ID; // Pass identification, replacement for typeid @@ -58,7 +60,8 @@ namespace { AU.setPreservesAll(); }; }; - char Hello2::ID = 0; - RegisterPass<Hello2> Y("hello2", - "Hello World Pass (with getAnalysisUsage implemented)"); } + +char Hello2::ID = 0; +static RegisterPass<Hello2> +Y("hello2", "Hello World Pass (with getAnalysisUsage implemented)"); diff --git a/lib/Transforms/IPO/ArgumentPromotion.cpp b/lib/Transforms/IPO/ArgumentPromotion.cpp index c6e27b4..264f080 100644 --- a/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -77,12 +77,12 @@ namespace { /// The maximum number of elements to expand, or 0 for unlimited. unsigned maxElements; }; - - char ArgPromotion::ID = 0; - RegisterPass<ArgPromotion> X("argpromotion", - "Promote 'by reference' arguments to scalars"); } +char ArgPromotion::ID = 0; +static RegisterPass<ArgPromotion> +X("argpromotion", "Promote 'by reference' arguments to scalars"); + Pass *llvm::createArgumentPromotionPass(unsigned maxElements) { return new ArgPromotion(maxElements); } diff --git a/lib/Transforms/IPO/ConstantMerge.cpp b/lib/Transforms/IPO/ConstantMerge.cpp index a8a1492..86cfcc4 100644 --- a/lib/Transforms/IPO/ConstantMerge.cpp +++ b/lib/Transforms/IPO/ConstantMerge.cpp @@ -38,11 +38,12 @@ namespace { // bool runOnModule(Module &M); }; - - char ConstantMerge::ID = 0; - RegisterPass<ConstantMerge>X("constmerge","Merge Duplicate Global Constants"); } +char ConstantMerge::ID = 0; +static RegisterPass<ConstantMerge> +X("constmerge", "Merge Duplicate Global Constants"); + ModulePass *llvm::createConstantMergePass() { return new ConstantMerge(); } bool ConstantMerge::runOnModule(Module &M) { diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index 6cd128b..9b3efe0 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -97,9 +97,13 @@ namespace { void RemoveDeadArgumentsFromFunction(Function *F); }; - char DAE::ID = 0; - RegisterPass<DAE> X("deadargelim", "Dead Argument Elimination"); +} + +char DAE::ID = 0; +static RegisterPass<DAE> +X("deadargelim", "Dead Argument Elimination"); +namespace { /// DAH - DeadArgumentHacking pass - Same as dead argument elimination, but /// deletes arguments to functions which are external. This is only for use /// by bugpoint. @@ -107,11 +111,12 @@ namespace { static char ID; virtual bool ShouldHackArguments() const { return true; } }; - char DAH::ID = 0; - RegisterPass<DAH> Y("deadarghaX0r", - "Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)"); } +char DAH::ID = 0; +static RegisterPass<DAH> +Y("deadarghaX0r", "Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)"); + /// createDeadArgEliminationPass - This pass removes arguments from functions /// which are not used by the body of the function. /// diff --git a/lib/Transforms/IPO/DeadTypeElimination.cpp b/lib/Transforms/IPO/DeadTypeElimination.cpp index b9d9b54..3cb658e 100644 --- a/lib/Transforms/IPO/DeadTypeElimination.cpp +++ b/lib/Transforms/IPO/DeadTypeElimination.cpp @@ -43,10 +43,11 @@ namespace { AU.addRequired<FindUsedTypes>(); } }; - char DTE::ID = 0; - RegisterPass<DTE> X("deadtypeelim", "Dead Type Elimination"); } +char DTE::ID = 0; +static RegisterPass<DTE> X("deadtypeelim", "Dead Type Elimination"); + ModulePass *llvm::createDeadTypeEliminationPass() { return new DTE(); } diff --git a/lib/Transforms/IPO/GlobalDCE.cpp b/lib/Transforms/IPO/GlobalDCE.cpp index 4e30c10..98202eb 100644 --- a/lib/Transforms/IPO/GlobalDCE.cpp +++ b/lib/Transforms/IPO/GlobalDCE.cpp @@ -49,10 +49,11 @@ namespace { bool SafeToDestroyConstant(Constant* C); bool RemoveUnusedGlobalValue(GlobalValue &GV); }; - char GlobalDCE::ID = 0; - RegisterPass<GlobalDCE> X("globaldce", "Dead Global Elimination"); } +char GlobalDCE::ID = 0; +static RegisterPass<GlobalDCE> X("globaldce", "Dead Global Elimination"); + ModulePass *llvm::createGlobalDCEPass() { return new GlobalDCE(); } bool GlobalDCE::runOnModule(Module &M) { diff --git a/lib/Transforms/IPO/GlobalOpt.cpp b/lib/Transforms/IPO/GlobalOpt.cpp index 600be26..e822d9c 100644 --- a/lib/Transforms/IPO/GlobalOpt.cpp +++ b/lib/Transforms/IPO/GlobalOpt.cpp @@ -68,13 +68,15 @@ namespace { bool OptimizeGlobalCtorsList(GlobalVariable *&GCL); bool ProcessInternalGlobal(GlobalVariable *GV,Module::global_iterator &GVI); }; - - char GlobalOpt::ID = 0; - RegisterPass<GlobalOpt> X("globalopt", "Global Variable Optimizer"); } +char GlobalOpt::ID = 0; +static RegisterPass<GlobalOpt> X("globalopt", "Global Variable Optimizer"); + ModulePass *llvm::createGlobalOptimizerPass() { return new GlobalOpt(); } +namespace { + /// GlobalStatus - As we analyze each global, keep track of some information /// about it. If we find out that the address of the global is taken, none of /// this info will be accurate. @@ -129,7 +131,7 @@ struct VISIBILITY_HIDDEN GlobalStatus { HasNonInstructionUser(false), HasPHIUser(false) {} }; - +} /// ConstantIsDead - Return true if the specified constant is (transitively) /// dead. The constant may be used by other constants (e.g. constant arrays and diff --git a/lib/Transforms/IPO/IPConstantPropagation.cpp b/lib/Transforms/IPO/IPConstantPropagation.cpp index c51c023..792fa98 100644 --- a/lib/Transforms/IPO/IPConstantPropagation.cpp +++ b/lib/Transforms/IPO/IPConstantPropagation.cpp @@ -42,10 +42,12 @@ namespace { bool PropagateConstantsIntoArguments(Function &F); bool PropagateConstantReturn(Function &F); }; - char IPCP::ID = 0; - RegisterPass<IPCP> X("ipconstprop", "Interprocedural constant propagation"); } +char IPCP::ID = 0; +static RegisterPass<IPCP> +X("ipconstprop", "Interprocedural constant propagation"); + ModulePass *llvm::createIPConstantPropagationPass() { return new IPCP(); } bool IPCP::runOnModule(Module &M) { diff --git a/lib/Transforms/IPO/IndMemRemoval.cpp b/lib/Transforms/IPO/IndMemRemoval.cpp index 2f9c34d..a623135 100644 --- a/lib/Transforms/IPO/IndMemRemoval.cpp +++ b/lib/Transforms/IPO/IndMemRemoval.cpp @@ -37,10 +37,11 @@ namespace { virtual bool runOnModule(Module &M); }; - char IndMemRemPass::ID = 0; - RegisterPass<IndMemRemPass> X("indmemrem","Indirect Malloc and Free Removal"); } // end anonymous namespace +char IndMemRemPass::ID = 0; +static RegisterPass<IndMemRemPass> +X("indmemrem","Indirect Malloc and Free Removal"); bool IndMemRemPass::runOnModule(Module &M) { //in Theory, all direct calls of malloc and free should be promoted diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp index a007103..63a4798 100644 --- a/lib/Transforms/IPO/InlineSimple.cpp +++ b/lib/Transforms/IPO/InlineSimple.cpp @@ -45,10 +45,12 @@ namespace { } virtual bool doInitialization(CallGraph &CG); }; - char SimpleInliner::ID = 0; - RegisterPass<SimpleInliner> X("inline", "Function Integration/Inlining"); } +char SimpleInliner::ID = 0; +static RegisterPass<SimpleInliner> +X("inline", "Function Integration/Inlining"); + Pass *llvm::createFunctionInliningPass() { return new SimpleInliner(); } Pass *llvm::createFunctionInliningPass(int Threshold) { diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp index f44e784..1c3d5a8 100644 --- a/lib/Transforms/IPO/Inliner.cpp +++ b/lib/Transforms/IPO/Inliner.cpp @@ -30,11 +30,9 @@ using namespace llvm; STATISTIC(NumInlined, "Number of functions inlined"); STATISTIC(NumDeleted, "Number of functions deleted because all callers found"); -namespace { - static cl::opt<int> - InlineLimit("inline-threshold", cl::Hidden, cl::init(200), +static cl::opt<int> +InlineLimit("inline-threshold", cl::Hidden, cl::init(200), cl::desc("Control the amount of inlining to perform (default = 200)")); -} Inliner::Inliner(const void *ID) : CallGraphSCCPass((intptr_t)ID), InlineThreshold(InlineLimit) {} diff --git a/lib/Transforms/IPO/Internalize.cpp b/lib/Transforms/IPO/Internalize.cpp index f3adb56..453b494 100644 --- a/lib/Transforms/IPO/Internalize.cpp +++ b/lib/Transforms/IPO/Internalize.cpp @@ -28,20 +28,19 @@ using namespace llvm; STATISTIC(NumFunctions, "Number of functions internalized"); STATISTIC(NumGlobals , "Number of global vars internalized"); -namespace { - - // APIFile - A file which contains a list of symbols that should not be marked - // external. - static cl::opt<std::string> - APIFile("internalize-public-api-file", cl::value_desc("filename"), - cl::desc("A file containing list of symbol names to preserve")); +// APIFile - A file which contains a list of symbols that should not be marked +// external. +static cl::opt<std::string> +APIFile("internalize-public-api-file", cl::value_desc("filename"), + cl::desc("A file containing list of symbol names to preserve")); - // APIList - A list of symbols that should not be marked internal. - static cl::list<std::string> - APIList("internalize-public-api-list", cl::value_desc("list"), - cl::desc("A list of symbol names to preserve"), - cl::CommaSeparated); +// APIList - A list of symbols that should not be marked internal. +static cl::list<std::string> +APIList("internalize-public-api-list", cl::value_desc("list"), + cl::desc("A list of symbol names to preserve"), + cl::CommaSeparated); +namespace { class VISIBILITY_HIDDEN InternalizePass : public ModulePass { std::set<std::string> ExternalNames; bool DontInternalize; @@ -52,10 +51,12 @@ namespace { void LoadFile(const char *Filename); virtual bool runOnModule(Module &M); }; - char InternalizePass::ID = 0; - RegisterPass<InternalizePass> X("internalize", "Internalize Global Symbols"); } // end anonymous namespace +char InternalizePass::ID = 0; +static RegisterPass<InternalizePass> +X("internalize", "Internalize Global Symbols"); + InternalizePass::InternalizePass(bool InternalizeEverything) : ModulePass((intptr_t)&ID), DontInternalize(false){ if (!APIFile.empty()) // If a filename is specified, use it diff --git a/lib/Transforms/IPO/LoopExtractor.cpp b/lib/Transforms/IPO/LoopExtractor.cpp index 54fc442..10ec306 100644 --- a/lib/Transforms/IPO/LoopExtractor.cpp +++ b/lib/Transforms/IPO/LoopExtractor.cpp @@ -52,22 +52,24 @@ namespace { AU.addRequired<LoopInfo>(); } }; +} - char LoopExtractor::ID = 0; - RegisterPass<LoopExtractor> - X("loop-extract", "Extract loops into new functions"); +char LoopExtractor::ID = 0; +static RegisterPass<LoopExtractor> +X("loop-extract", "Extract loops into new functions"); +namespace { /// SingleLoopExtractor - For bugpoint. struct SingleLoopExtractor : public LoopExtractor { static char ID; // Pass identification, replacement for typeid SingleLoopExtractor() : LoopExtractor(1) {} }; - - char SingleLoopExtractor::ID = 0; - RegisterPass<SingleLoopExtractor> - Y("loop-extract-single", "Extract at most one loop into a new function"); } // End anonymous namespace +char SingleLoopExtractor::ID = 0; +static RegisterPass<SingleLoopExtractor> +Y("loop-extract-single", "Extract at most one loop into a new function"); + // createLoopExtractorPass - This pass extracts all natural loops from the // program into a function if it can. // @@ -146,14 +148,14 @@ FunctionPass *llvm::createSingleLoopExtractorPass() { } -namespace { - // BlockFile - A file which contains a list of blocks that should not be - // extracted. - static cl::opt<std::string> - BlockFile("extract-blocks-file", cl::value_desc("filename"), - cl::desc("A file containing list of basic blocks to not extract"), - cl::Hidden); +// BlockFile - A file which contains a list of blocks that should not be +// extracted. +static cl::opt<std::string> +BlockFile("extract-blocks-file", cl::value_desc("filename"), + cl::desc("A file containing list of basic blocks to not extract"), + cl::Hidden); +namespace { /// BlockExtractorPass - This pass is used by bugpoint to extract all blocks /// from the module into their own functions except for those specified by the /// BlocksToNotExtract list. @@ -173,12 +175,12 @@ namespace { bool runOnModule(Module &M); }; - - char BlockExtractorPass::ID = 0; - RegisterPass<BlockExtractorPass> - XX("extract-blocks", "Extract Basic Blocks From Module (for bugpoint use)"); } +char BlockExtractorPass::ID = 0; +static RegisterPass<BlockExtractorPass> +XX("extract-blocks", "Extract Basic Blocks From Module (for bugpoint use)"); + // createBlockExtractorPass - This pass extracts all blocks (except those // specified in the argument list) from the functions in the module. // diff --git a/lib/Transforms/IPO/LowerSetJmp.cpp b/lib/Transforms/IPO/LowerSetJmp.cpp index 2db8257..0faaeb1 100644 --- a/lib/Transforms/IPO/LowerSetJmp.cpp +++ b/lib/Transforms/IPO/LowerSetJmp.cpp @@ -122,11 +122,11 @@ namespace { bool runOnModule(Module& M); bool doInitialization(Module& M); }; - - char LowerSetJmp::ID = 0; - RegisterPass<LowerSetJmp> X("lowersetjmp", "Lower Set Jump"); } // end anonymous namespace +char LowerSetJmp::ID = 0; +static RegisterPass<LowerSetJmp> X("lowersetjmp", "Lower Set Jump"); + // run - Run the transformation on the program. We grab the function // prototypes for longjmp and setjmp. If they are used in the program, // then we can go directly to the places they're at and transform them. diff --git a/lib/Transforms/IPO/PruneEH.cpp b/lib/Transforms/IPO/PruneEH.cpp index 0181605..ceb9e3e 100644 --- a/lib/Transforms/IPO/PruneEH.cpp +++ b/lib/Transforms/IPO/PruneEH.cpp @@ -43,11 +43,12 @@ namespace { bool SimplifyFunction(Function *F); void DeleteBasicBlock(BasicBlock *BB); }; - - char PruneEH::ID = 0; - RegisterPass<PruneEH> X("prune-eh", "Remove unused exception handling info"); } +char PruneEH::ID = 0; +static RegisterPass<PruneEH> +X("prune-eh", "Remove unused exception handling info"); + Pass *llvm::createPruneEHPass() { return new PruneEH(); } diff --git a/lib/Transforms/IPO/RaiseAllocations.cpp b/lib/Transforms/IPO/RaiseAllocations.cpp index 1f12fcf..0931dec 100644 --- a/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/lib/Transforms/IPO/RaiseAllocations.cpp @@ -48,12 +48,11 @@ namespace { // bool runOnModule(Module &M); }; - - char RaiseAllocations::ID = 0; - RegisterPass<RaiseAllocations> - X("raiseallocs", "Raise allocations from calls to instructions"); } // end anonymous namespace +char RaiseAllocations::ID = 0; +static RegisterPass<RaiseAllocations> +X("raiseallocs", "Raise allocations from calls to instructions"); // createRaiseAllocationsPass - The interface to this file... ModulePass *llvm::createRaiseAllocationsPass() { diff --git a/lib/Transforms/IPO/StripDeadPrototypes.cpp b/lib/Transforms/IPO/StripDeadPrototypes.cpp index ca8a436..7db0aa8 100644 --- a/lib/Transforms/IPO/StripDeadPrototypes.cpp +++ b/lib/Transforms/IPO/StripDeadPrototypes.cpp @@ -34,12 +34,12 @@ public: virtual bool runOnModule(Module &M); }; -char StripDeadPrototypesPass::ID = 0; -RegisterPass<StripDeadPrototypesPass> X("strip-dead-prototypes", - "Strip Unused Function Prototypes"); - } // end anonymous namespace +char StripDeadPrototypesPass::ID = 0; +static RegisterPass<StripDeadPrototypesPass> +X("strip-dead-prototypes", "Strip Unused Function Prototypes"); + bool StripDeadPrototypesPass::runOnModule(Module &M) { bool MadeChange = false; diff --git a/lib/Transforms/IPO/StripSymbols.cpp b/lib/Transforms/IPO/StripSymbols.cpp index cd23962..63e1a7b 100644 --- a/lib/Transforms/IPO/StripSymbols.cpp +++ b/lib/Transforms/IPO/StripSymbols.cpp @@ -46,11 +46,12 @@ namespace { AU.setPreservesAll(); } }; - - char StripSymbols::ID = 0; - RegisterPass<StripSymbols> X("strip", "Strip all symbols from a module"); } +char StripSymbols::ID = 0; +static RegisterPass<StripSymbols> +X("strip", "Strip all symbols from a module"); + ModulePass *llvm::createStripSymbolsPass(bool OnlyDebugInfo) { return new StripSymbols(OnlyDebugInfo); } diff --git a/lib/Transforms/IPO/StructRetPromotion.cpp b/lib/Transforms/IPO/StructRetPromotion.cpp index 34d9774..4f4f574 100644 --- a/lib/Transforms/IPO/StructRetPromotion.cpp +++ b/lib/Transforms/IPO/StructRetPromotion.cpp @@ -58,12 +58,12 @@ namespace { void updateCallSites(Function *F, Function *NF); bool nestedStructType(const StructType *STy); }; - - char SRETPromotion::ID = 0; - RegisterPass<SRETPromotion> X("sretpromotion", - "Promote sret arguments to multiple ret values"); } +char SRETPromotion::ID = 0; +static RegisterPass<SRETPromotion> +X("sretpromotion", "Promote sret arguments to multiple ret values"); + Pass *llvm::createStructRetPromotionPass() { return new SRETPromotion(); } diff --git a/lib/Transforms/Instrumentation/BlockProfiling.cpp b/lib/Transforms/Instrumentation/BlockProfiling.cpp index 7068db2..acde018 100644 --- a/lib/Transforms/Instrumentation/BlockProfiling.cpp +++ b/lib/Transforms/Instrumentation/BlockProfiling.cpp @@ -36,14 +36,14 @@ namespace { static char ID; bool runOnModule(Module &M); }; +} - char FunctionProfiler::ID = 0; - - RegisterPass<FunctionProfiler> X("insert-function-profiling", - "Insert instrumentation for function profiling"); - RegisterAnalysisGroup<RSProfilers> XG(X); +char FunctionProfiler::ID = 0; -} +static RegisterPass<FunctionProfiler> +X("insert-function-profiling", + "Insert instrumentation for function profiling"); +static RegisterAnalysisGroup<RSProfilers> XG(X); ModulePass *llvm::createFunctionProfilerPass() { return new FunctionProfiler(); @@ -86,13 +86,13 @@ namespace { public: static char ID; }; - - char BlockProfiler::ID = 0; - RegisterPass<BlockProfiler> Y("insert-block-profiling", - "Insert instrumentation for block profiling"); - RegisterAnalysisGroup<RSProfilers> YG(Y); } +char BlockProfiler::ID = 0; +static RegisterPass<BlockProfiler> +Y("insert-block-profiling", "Insert instrumentation for block profiling"); +static RegisterAnalysisGroup<RSProfilers> YG(Y); + ModulePass *llvm::createBlockProfilerPass() { return new BlockProfiler(); } bool BlockProfiler::runOnModule(Module &M) { diff --git a/lib/Transforms/Instrumentation/EdgeProfiling.cpp b/lib/Transforms/Instrumentation/EdgeProfiling.cpp index 72f43e5..2cf824b 100644 --- a/lib/Transforms/Instrumentation/EdgeProfiling.cpp +++ b/lib/Transforms/Instrumentation/EdgeProfiling.cpp @@ -36,12 +36,12 @@ namespace { static char ID; // Pass identification, replacement for typeid EdgeProfiler() : ModulePass((intptr_t)&ID) {} }; - - char EdgeProfiler::ID = 0; - RegisterPass<EdgeProfiler> X("insert-edge-profiling", - "Insert instrumentation for edge profiling"); } +char EdgeProfiler::ID = 0; +static RegisterPass<EdgeProfiler> +X("insert-edge-profiling", "Insert instrumentation for edge profiling"); + ModulePass *llvm::createEdgeProfilerPass() { return new EdgeProfiler(); } bool EdgeProfiler::runOnModule(Module &M) { diff --git a/lib/Transforms/Instrumentation/RSProfiling.cpp b/lib/Transforms/Instrumentation/RSProfiling.cpp index c22a29f..62c9ddd 100644 --- a/lib/Transforms/Instrumentation/RSProfiling.cpp +++ b/lib/Transforms/Instrumentation/RSProfiling.cpp @@ -55,16 +55,18 @@ namespace { enum RandomMeth { GBV, GBVO, HOSTCC }; +} - static cl::opt<RandomMeth> RandomMethod("profile-randomness", - cl::desc("How to randomly choose to profile:"), - cl::values( - clEnumValN(GBV, "global", "global counter"), - clEnumValN(GBVO, "ra_global", - "register allocated global counter"), - clEnumValN(HOSTCC, "rdcc", "cycle counter"), - clEnumValEnd)); +static cl::opt<RandomMeth> RandomMethod("profile-randomness", + cl::desc("How to randomly choose to profile:"), + cl::values( + clEnumValN(GBV, "global", "global counter"), + clEnumValN(GBVO, "ra_global", + "register allocated global counter"), + clEnumValN(HOSTCC, "rdcc", "cycle counter"), + clEnumValEnd)); +namespace { /// NullProfilerRS - The basic profiler that does nothing. It is the default /// profiler and thus terminates RSProfiler chains. It is useful for /// measuring framework overhead @@ -81,12 +83,14 @@ namespace { AU.setPreservesAll(); } }; +} - static RegisterAnalysisGroup<RSProfilers> A("Profiling passes"); - static RegisterPass<NullProfilerRS> NP("insert-null-profiling-rs", - "Measure profiling framework overhead"); - static RegisterAnalysisGroup<RSProfilers, true> NPT(NP); +static RegisterAnalysisGroup<RSProfilers> A("Profiling passes"); +static RegisterPass<NullProfilerRS> NP("insert-null-profiling-rs", + "Measure profiling framework overhead"); +static RegisterAnalysisGroup<RSProfilers, true> NPT(NP); +namespace { /// Chooser - Something that chooses when to make a sample of the profiled code class VISIBILITY_HIDDEN Chooser { public: @@ -158,11 +162,12 @@ namespace { bool doInitialization(Module &M); virtual void getAnalysisUsage(AnalysisUsage &AU) const; }; - - RegisterPass<ProfilerRS> X("insert-rs-profiling-framework", - "Insert random sampling instrumentation framework"); } +static RegisterPass<ProfilerRS> +X("insert-rs-profiling-framework", + "Insert random sampling instrumentation framework"); + char RSProfilers::ID = 0; char NullProfilerRS::ID = 0; char ProfilerRS::ID = 0; diff --git a/lib/Transforms/Scalar/ADCE.cpp b/lib/Transforms/Scalar/ADCE.cpp index d909d02..c633f93 100644 --- a/lib/Transforms/Scalar/ADCE.cpp +++ b/lib/Transforms/Scalar/ADCE.cpp @@ -106,11 +106,11 @@ private: markInstructionLive(const_cast<TerminatorInst*>(BB->getTerminator())); } }; - - char ADCE::ID = 0; - RegisterPass<ADCE> X("adce", "Aggressive Dead Code Elimination"); } // End of anonymous namespace +char ADCE::ID = 0; +static RegisterPass<ADCE> X("adce", "Aggressive Dead Code Elimination"); + FunctionPass *llvm::createAggressiveDCEPass() { return new ADCE(); } void ADCE::markBlockAlive(BasicBlock *BB) { diff --git a/lib/Transforms/Scalar/BasicBlockPlacement.cpp b/lib/Transforms/Scalar/BasicBlockPlacement.cpp index 9bde749..041bed2 100644 --- a/lib/Transforms/Scalar/BasicBlockPlacement.cpp +++ b/lib/Transforms/Scalar/BasicBlockPlacement.cpp @@ -72,12 +72,12 @@ namespace { /// successors. void PlaceBlocks(BasicBlock *BB); }; - - char BlockPlacement::ID = 0; - RegisterPass<BlockPlacement> X("block-placement", - "Profile Guided Basic Block Placement"); } +char BlockPlacement::ID = 0; +static RegisterPass<BlockPlacement> +X("block-placement", "Profile Guided Basic Block Placement"); + FunctionPass *llvm::createBlockPlacementPass() { return new BlockPlacement(); } bool BlockPlacement::runOnFunction(Function &F) { diff --git a/lib/Transforms/Scalar/CodeGenPrepare.cpp b/lib/Transforms/Scalar/CodeGenPrepare.cpp index bc19114..2dfd4d7 100644 --- a/lib/Transforms/Scalar/CodeGenPrepare.cpp +++ b/lib/Transforms/Scalar/CodeGenPrepare.cpp @@ -483,6 +483,7 @@ static void EraseDeadInstructions(Value *V) { } } +namespace { /// ExtAddrMode - This is an extended version of TargetLowering::AddrMode which /// holds actual Value*'s for register values. @@ -517,6 +518,8 @@ void ExtAddrMode::dump() const { cerr << *this << "\n"; } +} + static bool TryMatchingScaledValue(Value *ScaleReg, int64_t Scale, const Type *AccessTy, ExtAddrMode &AddrMode, SmallVector<Instruction*, 16> &AddrModeInsts, diff --git a/lib/Transforms/Scalar/CondPropagate.cpp b/lib/Transforms/Scalar/CondPropagate.cpp index bed2b35..c1e4195 100644 --- a/lib/Transforms/Scalar/CondPropagate.cpp +++ b/lib/Transforms/Scalar/CondPropagate.cpp @@ -48,10 +48,10 @@ namespace { void SimplifyPredecessors(SwitchInst *SI); void RevectorBlockTo(BasicBlock *FromBB, BasicBlock *ToBB); }; - - char CondProp::ID = 0; - RegisterPass<CondProp> X("condprop", "Conditional Propagation"); } + +char CondProp::ID = 0; +static RegisterPass<CondProp> X("condprop", "Conditional Propagation"); FunctionPass *llvm::createCondPropagationPass() { return new CondProp(); diff --git a/lib/Transforms/Scalar/ConstantProp.cpp b/lib/Transforms/Scalar/ConstantProp.cpp index 60b915a..90e8dad 100644 --- a/lib/Transforms/Scalar/ConstantProp.cpp +++ b/lib/Transforms/Scalar/ConstantProp.cpp @@ -43,12 +43,12 @@ namespace { AU.setPreservesCFG(); } }; - - char ConstantPropagation::ID = 0; - RegisterPass<ConstantPropagation> X("constprop", - "Simple constant propagation"); } +char ConstantPropagation::ID = 0; +static RegisterPass<ConstantPropagation> +X("constprop", "Simple constant propagation"); + FunctionPass *llvm::createConstantPropagationPass() { return new ConstantPropagation(); } diff --git a/lib/Transforms/Scalar/DCE.cpp b/lib/Transforms/Scalar/DCE.cpp index 539dd22..a63fcb6 100644 --- a/lib/Transforms/Scalar/DCE.cpp +++ b/lib/Transforms/Scalar/DCE.cpp @@ -52,11 +52,12 @@ namespace { AU.setPreservesCFG(); } }; - - char DeadInstElimination::ID = 0; - RegisterPass<DeadInstElimination> X("die", "Dead Instruction Elimination"); } +char DeadInstElimination::ID = 0; +static RegisterPass<DeadInstElimination> +X("die", "Dead Instruction Elimination"); + Pass *llvm::createDeadInstEliminationPass() { return new DeadInstElimination(); } @@ -76,11 +77,11 @@ namespace { AU.setPreservesCFG(); } }; - - char DCE::ID = 0; - RegisterPass<DCE> Y("dce", "Dead Code Elimination"); } +char DCE::ID = 0; +static RegisterPass<DCE> Y("dce", "Dead Code Elimination"); + bool DCE::runOnFunction(Function &F) { // Start out with all of the instructions in the worklist... std::vector<Instruction*> WorkList; diff --git a/lib/Transforms/Scalar/DeadStoreElimination.cpp b/lib/Transforms/Scalar/DeadStoreElimination.cpp index 89afa91..bbb3a8a 100644 --- a/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/lib/Transforms/Scalar/DeadStoreElimination.cpp @@ -92,10 +92,11 @@ namespace { AU.addPreserved<MemoryDependenceAnalysis>(); } }; - char DSE::ID = 0; - RegisterPass<DSE> X("dse", "Dead Store Elimination"); } +char DSE::ID = 0; +static RegisterPass<DSE> X("dse", "Dead Store Elimination"); + FunctionPass *llvm::createDeadStoreEliminationPass() { return new DSE(); } bool DSE::runOnBasicBlock(BasicBlock &BB) { diff --git a/lib/Transforms/Scalar/GCSE.cpp b/lib/Transforms/Scalar/GCSE.cpp index 39a1b25..35752bb 100644 --- a/lib/Transforms/Scalar/GCSE.cpp +++ b/lib/Transforms/Scalar/GCSE.cpp @@ -52,11 +52,12 @@ namespace { AU.addRequired<ValueNumbering>(); } }; - - char GCSE::ID = 0; - RegisterPass<GCSE> X("gcse", "Global Common Subexpression Elimination"); } +char GCSE::ID = 0; +static RegisterPass<GCSE> +X("gcse", "Global Common Subexpression Elimination"); + // createGCSEPass - The public interface to this file... FunctionPass *llvm::createGCSEPass() { return new GCSE(); } diff --git a/lib/Transforms/Scalar/GVNPRE.cpp b/lib/Transforms/Scalar/GVNPRE.cpp index 3bd6bff..80d74e6 100644 --- a/lib/Transforms/Scalar/GVNPRE.cpp +++ b/lib/Transforms/Scalar/GVNPRE.cpp @@ -45,6 +45,8 @@ using namespace llvm; // ValueTable Class //===----------------------------------------------------------------------===// +namespace { + /// This class holds the mapping between values and value numbers. It is used /// as an efficient mechanism to determine the expression-wise equivalence of /// two values. @@ -123,6 +125,7 @@ struct Expression { } }; +} namespace { class VISIBILITY_HIDDEN ValueTable { @@ -596,6 +599,8 @@ unsigned ValueTable::size() { return nextValueNumber; } +namespace { + //===----------------------------------------------------------------------===// // ValueNumberedSet Class //===----------------------------------------------------------------------===// @@ -652,6 +657,8 @@ class ValueNumberedSet { } }; +} + //===----------------------------------------------------------------------===// // GVNPRE Pass //===----------------------------------------------------------------------===// diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 4305422..4de19a9 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -94,11 +94,12 @@ namespace { void DeleteTriviallyDeadInstructions(std::set<Instruction*> &Insts); }; - - char IndVarSimplify::ID = 0; - RegisterPass<IndVarSimplify> X("indvars", "Canonicalize Induction Variables"); } +char IndVarSimplify::ID = 0; +static RegisterPass<IndVarSimplify> +X("indvars", "Canonicalize Induction Variables"); + LoopPass *llvm::createIndVarSimplifyPass() { return new IndVarSimplify(); } diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index f359187..0662055 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -8,8 +8,8 @@ //===----------------------------------------------------------------------===// // // InstructionCombining - Combine instructions to form fewer, simple -// instructions. This pass does not modify the CFG This pass is where algebraic -// simplification happens. +// instructions. This pass does not modify the CFG. This pass is where +// algebraic simplification happens. // // This pass combines things like: // %Y = add i32 %X, 1 @@ -384,11 +384,12 @@ namespace { unsigned GetOrEnforceKnownAlignment(Value *V, unsigned PrefAlign = 0); }; - - char InstCombiner::ID = 0; - RegisterPass<InstCombiner> X("instcombine", "Combine redundant instructions"); } +char InstCombiner::ID = 0; +static RegisterPass<InstCombiner> +X("instcombine", "Combine redundant instructions"); + // getComplexity: Assign a complexity or rank value to LLVM Values... // 0 -> undef, 1 -> Const, 2 -> Other, 3 -> Arg, 3 -> Unary, 4 -> OtherInst static unsigned getComplexity(Value *V) { @@ -2151,6 +2152,7 @@ Instruction *AssociativeOpt(BinaryOperator &Root, const Functor &F) { return 0; } +namespace { // AddRHS - Implements: X + X --> X << 1 struct AddRHS { @@ -2178,6 +2180,8 @@ struct AddMaskingAnd { } }; +} + static Value *FoldOperationIntoSelectOperand(Instruction &I, Value *SO, InstCombiner *IC) { if (CastInst *CI = dyn_cast<CastInst>(&I)) { @@ -4635,6 +4639,8 @@ Instruction *InstCombiner::visitOr(BinaryOperator &I) { return Changed ? &I : 0; } +namespace { + // XorSelf - Implements: X ^ X --> 0 struct XorSelf { Value *RHS; @@ -4645,6 +4651,7 @@ struct XorSelf { } }; +} Instruction *InstCombiner::visitXor(BinaryOperator &I) { bool Changed = SimplifyCommutative(I); diff --git a/lib/Transforms/Scalar/JumpThreading.cpp b/lib/Transforms/Scalar/JumpThreading.cpp index 991b111..d79a6ce 100644 --- a/lib/Transforms/Scalar/JumpThreading.cpp +++ b/lib/Transforms/Scalar/JumpThreading.cpp @@ -63,10 +63,12 @@ namespace { bool ProcessBranchOnLogical(Value *V, BasicBlock *BB, bool isAnd); bool ProcessBranchOnCompare(CmpInst *Cmp, BasicBlock *BB); }; - char JumpThreading::ID = 0; - RegisterPass<JumpThreading> X("jump-threading", "Jump Threading"); } +char JumpThreading::ID = 0; +static RegisterPass<JumpThreading> +X("jump-threading", "Jump Threading"); + // Public interface to the Jump Threading pass FunctionPass *llvm::createJumpThreadingPass() { return new JumpThreading(); } diff --git a/lib/Transforms/Scalar/LICM.cpp b/lib/Transforms/Scalar/LICM.cpp index 2d53532..695a4fb 100644 --- a/lib/Transforms/Scalar/LICM.cpp +++ b/lib/Transforms/Scalar/LICM.cpp @@ -58,11 +58,11 @@ STATISTIC(NumMovedLoads, "Number of load insts hoisted or sunk"); STATISTIC(NumMovedCalls, "Number of call insts hoisted or sunk"); STATISTIC(NumPromoted , "Number of memory locations promoted to registers"); -namespace { - static cl::opt<bool> - DisablePromotion("disable-licm-promotion", cl::Hidden, - cl::desc("Disable memory promotion in LICM pass")); +static cl::opt<bool> +DisablePromotion("disable-licm-promotion", cl::Hidden, + cl::desc("Disable memory promotion in LICM pass")); +namespace { struct VISIBILITY_HIDDEN LICM : public LoopPass { static char ID; // Pass identification, replacement for typeid LICM() : LoopPass((intptr_t)&ID) {} @@ -216,11 +216,11 @@ namespace { std::vector<std::pair<AllocaInst*, Value*> > &PromotedValues, std::map<Value*, AllocaInst*> &Val2AlMap); }; - - char LICM::ID = 0; - RegisterPass<LICM> X("licm", "Loop Invariant Code Motion"); } +char LICM::ID = 0; +static RegisterPass<LICM> X("licm", "Loop Invariant Code Motion"); + LoopPass *llvm::createLICMPass() { return new LICM(); } /// Hoist expressions out of the specified loop. Note, alias info for inner diff --git a/lib/Transforms/Scalar/LoopDeletion.cpp b/lib/Transforms/Scalar/LoopDeletion.cpp index 02a5ca9..c26a66c 100644 --- a/lib/Transforms/Scalar/LoopDeletion.cpp +++ b/lib/Transforms/Scalar/LoopDeletion.cpp @@ -52,10 +52,10 @@ namespace { AU.addPreservedID(LCSSAID); } }; - - char LoopDeletion::ID = 0; - RegisterPass<LoopDeletion> X ("loop-deletion", "Delete dead loops"); } + +char LoopDeletion::ID = 0; +static RegisterPass<LoopDeletion> X("loop-deletion", "Delete dead loops"); LoopPass* llvm::createLoopDeletionPass() { return new LoopDeletion(); diff --git a/lib/Transforms/Scalar/LoopIndexSplit.cpp b/lib/Transforms/Scalar/LoopIndexSplit.cpp index a6bd9ff..6113b24 100644 --- a/lib/Transforms/Scalar/LoopIndexSplit.cpp +++ b/lib/Transforms/Scalar/LoopIndexSplit.cpp @@ -195,11 +195,12 @@ namespace { // Induction variable's final loop exit value operand number in exit condition.. unsigned ExitValueNum; }; - - char LoopIndexSplit::ID = 0; - RegisterPass<LoopIndexSplit> X ("loop-index-split", "Index Split Loops"); } +char LoopIndexSplit::ID = 0; +static RegisterPass<LoopIndexSplit> +X("loop-index-split", "Index Split Loops"); + LoopPass *llvm::createLoopIndexSplitPass() { return new LoopIndexSplit(); } diff --git a/lib/Transforms/Scalar/LoopRotation.cpp b/lib/Transforms/Scalar/LoopRotation.cpp index 91a96bc..d8362a5 100644 --- a/lib/Transforms/Scalar/LoopRotation.cpp +++ b/lib/Transforms/Scalar/LoopRotation.cpp @@ -102,10 +102,10 @@ namespace { LPPassManager *LPM_Ptr; SmallVector<RenameData, MAX_HEADER_SIZE> LoopHeaderInfo; }; - - char LoopRotate::ID = 0; - RegisterPass<LoopRotate> X ("loop-rotate", "Rotate Loops"); } + +char LoopRotate::ID = 0; +static RegisterPass<LoopRotate> X("loop-rotate", "Rotate Loops"); LoopPass *llvm::createLoopRotatePass() { return new LoopRotate(); } diff --git a/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 4dc7d60..6d66d14 100644 --- a/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -194,10 +194,12 @@ private: Loop *L, bool isOnlyStride); void DeleteTriviallyDeadInstructions(SmallPtrSet<Instruction*,16> &Insts); }; - char LoopStrengthReduce::ID = 0; - RegisterPass<LoopStrengthReduce> X("loop-reduce", "Loop Strength Reduction"); } +char LoopStrengthReduce::ID = 0; +static RegisterPass<LoopStrengthReduce> +X("loop-reduce", "Loop Strength Reduction"); + LoopPass *llvm::createLoopStrengthReducePass(const TargetLowering *TLI) { return new LoopStrengthReduce(TLI); } diff --git a/lib/Transforms/Scalar/LoopUnroll.cpp b/lib/Transforms/Scalar/LoopUnroll.cpp index 0db9641..d329970 100644 --- a/lib/Transforms/Scalar/LoopUnroll.cpp +++ b/lib/Transforms/Scalar/LoopUnroll.cpp @@ -44,17 +44,15 @@ using namespace llvm; STATISTIC(NumCompletelyUnrolled, "Number of loops completely unrolled"); STATISTIC(NumUnrolled, "Number of loops unrolled (completely or otherwise)"); -namespace { - static cl::opt<unsigned> - UnrollThreshold - ("unroll-threshold", cl::init(100), cl::Hidden, - cl::desc("The cut-off point for automatic loop unrolling")); +static cl::opt<unsigned> +UnrollThreshold("unroll-threshold", cl::init(100), cl::Hidden, + cl::desc("The cut-off point for automatic loop unrolling")); - static cl::opt<unsigned> - UnrollCount - ("unroll-count", cl::init(0), cl::Hidden, - cl::desc("Use this unroll count for all loops, for testing purposes")); +static cl::opt<unsigned> +UnrollCount("unroll-count", cl::init(0), cl::Hidden, + cl::desc("Use this unroll count for all loops, for testing purposes")); +namespace { class VISIBILITY_HIDDEN LoopUnroll : public LoopPass { LoopInfo *LI; // The current loop information public: @@ -81,10 +79,11 @@ namespace { AU.addPreserved<LoopInfo>(); } }; - char LoopUnroll::ID = 0; - RegisterPass<LoopUnroll> X("loop-unroll", "Unroll loops"); } +char LoopUnroll::ID = 0; +static RegisterPass<LoopUnroll> X("loop-unroll", "Unroll loops"); + LoopPass *llvm::createLoopUnrollPass() { return new LoopUnroll(); } /// ApproximateLoopSize - Approximate the size of the loop. diff --git a/lib/Transforms/Scalar/LoopUnswitch.cpp b/lib/Transforms/Scalar/LoopUnswitch.cpp index 5af0a57..7806987 100644 --- a/lib/Transforms/Scalar/LoopUnswitch.cpp +++ b/lib/Transforms/Scalar/LoopUnswitch.cpp @@ -54,11 +54,11 @@ STATISTIC(NumSelects , "Number of selects unswitched"); STATISTIC(NumTrivial , "Number of unswitches that are trivial"); STATISTIC(NumSimplify, "Number of simplifications of unswitched code"); -namespace { - static cl::opt<unsigned> - Threshold("loop-unswitch-threshold", cl::desc("Max loop size to unswitch"), - cl::init(10), cl::Hidden); +static cl::opt<unsigned> +Threshold("loop-unswitch-threshold", cl::desc("Max loop size to unswitch"), + cl::init(10), cl::Hidden); +namespace { class VISIBILITY_HIDDEN LoopUnswitch : public LoopPass { LoopInfo *LI; // Loop information LPPassManager *LPM; @@ -144,9 +144,9 @@ namespace { std::vector<Instruction*> &Worklist, Loop *l); void RemoveLoopFromHierarchy(Loop *L); }; - char LoopUnswitch::ID = 0; - RegisterPass<LoopUnswitch> X("loop-unswitch", "Unswitch loops"); } +char LoopUnswitch::ID = 0; +static RegisterPass<LoopUnswitch> X("loop-unswitch", "Unswitch loops"); LoopPass *llvm::createLoopUnswitchPass(bool Os) { return new LoopUnswitch(Os); @@ -459,11 +459,11 @@ static inline void RemapInstruction(Instruction *I, // OrigPreheader is loop pre-header before this pass started // updating CFG. NewPrehader is loops new pre-header. However, after CFG // manipulation, loop L may not exist. So rely on input parameter NewPreheader. -void CloneDomInfo(BasicBlock *NewBB, BasicBlock *Orig, - BasicBlock *NewPreheader, BasicBlock *OrigPreheader, - BasicBlock *OrigHeader, - DominatorTree *DT, DominanceFrontier *DF, - DenseMap<const Value*, Value*> &VM) { +static void CloneDomInfo(BasicBlock *NewBB, BasicBlock *Orig, + BasicBlock *NewPreheader, BasicBlock *OrigPreheader, + BasicBlock *OrigHeader, + DominatorTree *DT, DominanceFrontier *DF, + DenseMap<const Value*, Value*> &VM) { // If NewBB alreay has found its place in domiantor tree then no need to do // anything. diff --git a/lib/Transforms/Scalar/PredicateSimplifier.cpp b/lib/Transforms/Scalar/PredicateSimplifier.cpp index 1b36d84..5c79444 100644 --- a/lib/Transforms/Scalar/PredicateSimplifier.cpp +++ b/lib/Transforms/Scalar/PredicateSimplifier.cpp @@ -2646,12 +2646,12 @@ namespace { } } } - - char PredicateSimplifier::ID = 0; - RegisterPass<PredicateSimplifier> X("predsimplify", - "Predicate Simplifier"); } +char PredicateSimplifier::ID = 0; +static RegisterPass<PredicateSimplifier> +X("predsimplify", "Predicate Simplifier"); + FunctionPass *llvm::createPredicateSimplifierPass() { return new PredicateSimplifier(); } diff --git a/lib/Transforms/Scalar/Reassociate.cpp b/lib/Transforms/Scalar/Reassociate.cpp index 0a118cd..e2d133c 100644 --- a/lib/Transforms/Scalar/Reassociate.cpp +++ b/lib/Transforms/Scalar/Reassociate.cpp @@ -64,7 +64,7 @@ static void PrintOps(Instruction *I, const std::vector<ValueEntry> &Ops) { << "," << Ops[i].Rank; } -namespace { +namespace { class VISIBILITY_HIDDEN Reassociate : public FunctionPass { std::map<BasicBlock*, unsigned> RankMap; std::map<Value*, unsigned> ValueRankMap; @@ -92,11 +92,11 @@ namespace { void RemoveDeadBinaryOp(Value *V); }; - - char Reassociate::ID = 0; - RegisterPass<Reassociate> X("reassociate", "Reassociate expressions"); } +char Reassociate::ID = 0; +static RegisterPass<Reassociate> X("reassociate", "Reassociate expressions"); + // Public interface to the Reassociate pass FunctionPass *llvm::createReassociatePass() { return new Reassociate(); } diff --git a/lib/Transforms/Scalar/Reg2Mem.cpp b/lib/Transforms/Scalar/Reg2Mem.cpp index eda0c0e..b31b1d1 100644 --- a/lib/Transforms/Scalar/Reg2Mem.cpp +++ b/lib/Transforms/Scalar/Reg2Mem.cpp @@ -111,10 +111,11 @@ namespace { return false; } }; - - char RegToMem::ID = 0; - RegisterPass<RegToMem> X("reg2mem", "Demote all values to stack slots"); } + +char RegToMem::ID = 0; +static RegisterPass<RegToMem> +X("reg2mem", "Demote all values to stack slots"); // createDemoteRegisterToMemory - Provide an entry point to create this pass. // diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index 168e544..9c17b77 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -1435,11 +1435,11 @@ namespace { AU.setPreservesCFG(); } }; - - char SCCP::ID = 0; - RegisterPass<SCCP> X("sccp", "Sparse Conditional Constant Propagation"); } // end anonymous namespace +char SCCP::ID = 0; +static RegisterPass<SCCP> +X("sccp", "Sparse Conditional Constant Propagation"); // createSCCPPass - This is the public interface to this file... FunctionPass *llvm::createSCCPPass() { @@ -1543,12 +1543,12 @@ namespace { IPSCCP() : ModulePass((intptr_t)&ID) {} bool runOnModule(Module &M); }; - - char IPSCCP::ID = 0; - RegisterPass<IPSCCP> - Y("ipsccp", "Interprocedural Sparse Conditional Constant Propagation"); } // end anonymous namespace +char IPSCCP::ID = 0; +static RegisterPass<IPSCCP> +Y("ipsccp", "Interprocedural Sparse Conditional Constant Propagation"); + // createIPSCCPPass - This is the public interface to this file... ModulePass *llvm::createIPSCCPPass() { return new IPSCCP(); diff --git a/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/lib/Transforms/Scalar/ScalarReplAggregates.cpp index 51aad84..0cd10ef 100644 --- a/lib/Transforms/Scalar/ScalarReplAggregates.cpp +++ b/lib/Transforms/Scalar/ScalarReplAggregates.cpp @@ -124,11 +124,11 @@ namespace { unsigned Offset); static Instruction *isOnlyCopiedFromConstantGlobal(AllocationInst *AI); }; - - char SROA::ID = 0; - RegisterPass<SROA> X("scalarrepl", "Scalar Replacement of Aggregates"); } +char SROA::ID = 0; +static RegisterPass<SROA> X("scalarrepl", "Scalar Replacement of Aggregates"); + // Public interface to the ScalarReplAggregates pass FunctionPass *llvm::createScalarReplAggregatesPass(signed int Threshold) { return new SROA(Threshold); diff --git a/lib/Transforms/Scalar/SimplifyCFG.cpp b/lib/Transforms/Scalar/SimplifyCFG.cpp index 48342bd..a42bc34 100644 --- a/lib/Transforms/Scalar/SimplifyCFG.cpp +++ b/lib/Transforms/Scalar/SimplifyCFG.cpp @@ -45,10 +45,11 @@ namespace { virtual bool runOnFunction(Function &F); }; - char CFGSimplifyPass::ID = 0; - RegisterPass<CFGSimplifyPass> X("simplifycfg", "Simplify the CFG"); } +char CFGSimplifyPass::ID = 0; +static RegisterPass<CFGSimplifyPass> X("simplifycfg", "Simplify the CFG"); + // Public interface to the CFGSimplification pass FunctionPass *llvm::createCFGSimplificationPass() { return new CFGSimplifyPass(); diff --git a/lib/Transforms/Scalar/TailDuplication.cpp b/lib/Transforms/Scalar/TailDuplication.cpp index f9b8ace..40da808 100644 --- a/lib/Transforms/Scalar/TailDuplication.cpp +++ b/lib/Transforms/Scalar/TailDuplication.cpp @@ -37,10 +37,11 @@ using namespace llvm; STATISTIC(NumEliminated, "Number of unconditional branches eliminated"); +static cl::opt<unsigned> +Threshold("taildup-threshold", cl::desc("Max block size to tail duplicate"), + cl::init(6), cl::Hidden); + namespace { - cl::opt<unsigned> - Threshold("taildup-threshold", cl::desc("Max block size to tail duplicate"), - cl::init(6), cl::Hidden); class VISIBILITY_HIDDEN TailDup : public FunctionPass { bool runOnFunction(Function &F); public: @@ -51,10 +52,11 @@ namespace { inline bool shouldEliminateUnconditionalBranch(TerminatorInst *TI); inline void eliminateUnconditionalBranch(BranchInst *BI); }; - char TailDup::ID = 0; - RegisterPass<TailDup> X("tailduplicate", "Tail Duplication"); } +char TailDup::ID = 0; +static RegisterPass<TailDup> X("tailduplicate", "Tail Duplication"); + // Public interface to the Tail Duplication pass FunctionPass *llvm::createTailDuplicationPass() { return new TailDup(); } diff --git a/lib/Transforms/Scalar/TailRecursionElimination.cpp b/lib/Transforms/Scalar/TailRecursionElimination.cpp index 78b088a..b9de782 100644 --- a/lib/Transforms/Scalar/TailRecursionElimination.cpp +++ b/lib/Transforms/Scalar/TailRecursionElimination.cpp @@ -80,10 +80,11 @@ namespace { bool CanMoveAboveCall(Instruction *I, CallInst *CI); Value *CanTransformAccumulatorRecursion(Instruction *I, CallInst *CI); }; - char TailCallElim::ID = 0; - RegisterPass<TailCallElim> X("tailcallelim", "Tail Call Elimination"); } +char TailCallElim::ID = 0; +static RegisterPass<TailCallElim> X("tailcallelim", "Tail Call Elimination"); + // Public interface to the TailCallElimination pass FunctionPass *llvm::createTailCallEliminationPass() { return new TailCallElim(); diff --git a/lib/Transforms/Utils/BasicInliner.cpp b/lib/Transforms/Utils/BasicInliner.cpp index a3f294d..5c2c698 100644 --- a/lib/Transforms/Utils/BasicInliner.cpp +++ b/lib/Transforms/Utils/BasicInliner.cpp @@ -26,11 +26,9 @@ using namespace llvm; -namespace { - static cl::opt<unsigned> - BasicInlineThreshold("inline-threshold", cl::Hidden, cl::init(200), - cl::desc("Control the amount of basic inlining to perform (default = 200)")); -} +static cl::opt<unsigned> +BasicInlineThreshold("inline-threshold", cl::Hidden, cl::init(200), + cl::desc("Control the amount of basic inlining to perform (default = 200)")); namespace llvm { diff --git a/lib/Transforms/Utils/BreakCriticalEdges.cpp b/lib/Transforms/Utils/BreakCriticalEdges.cpp index e230ca6..4bf7bac 100644 --- a/lib/Transforms/Utils/BreakCriticalEdges.cpp +++ b/lib/Transforms/Utils/BreakCriticalEdges.cpp @@ -48,12 +48,12 @@ namespace { AU.addPreservedID(LoopSimplifyID); } }; - - char BreakCriticalEdges::ID = 0; - RegisterPass<BreakCriticalEdges> X("break-crit-edges", - "Break critical edges in CFG"); } +char BreakCriticalEdges::ID = 0; +static RegisterPass<BreakCriticalEdges> +X("break-crit-edges", "Break critical edges in CFG"); + // Publically exposed interface to pass... const PassInfo *llvm::BreakCriticalEdgesID = X.getPassInfo(); FunctionPass *llvm::createBreakCriticalEdgesPass() { diff --git a/lib/Transforms/Utils/LCSSA.cpp b/lib/Transforms/Utils/LCSSA.cpp index 3931467..ff5f863 100644 --- a/lib/Transforms/Utils/LCSSA.cpp +++ b/lib/Transforms/Utils/LCSSA.cpp @@ -94,10 +94,10 @@ namespace { return std::binary_search(LoopBlocks.begin(), LoopBlocks.end(), B); } }; - - char LCSSA::ID = 0; - RegisterPass<LCSSA> X("lcssa", "Loop-Closed SSA Form Pass"); } + +char LCSSA::ID = 0; +static RegisterPass<LCSSA> X("lcssa", "Loop-Closed SSA Form Pass"); LoopPass *llvm::createLCSSAPass() { return new LCSSA(); } const PassInfo *llvm::LCSSAID = X.getPassInfo(); diff --git a/lib/Transforms/Utils/LoopSimplify.cpp b/lib/Transforms/Utils/LoopSimplify.cpp index 8e30e04..9351837 100644 --- a/lib/Transforms/Utils/LoopSimplify.cpp +++ b/lib/Transforms/Utils/LoopSimplify.cpp @@ -95,12 +95,12 @@ namespace { SmallVectorImpl<BasicBlock*> &SplitPreds, Loop *L); }; - - char LoopSimplify::ID = 0; - RegisterPass<LoopSimplify> - X("loopsimplify", "Canonicalize natural loops", true); } +char LoopSimplify::ID = 0; +static RegisterPass<LoopSimplify> +X("loopsimplify", "Canonicalize natural loops", true); + // Publically exposed interface to pass... const PassInfo *llvm::LoopSimplifyID = X.getPassInfo(); FunctionPass *llvm::createLoopSimplifyPass() { return new LoopSimplify(); } diff --git a/lib/Transforms/Utils/LowerAllocations.cpp b/lib/Transforms/Utils/LowerAllocations.cpp index 8708f99..edce5e1 100644 --- a/lib/Transforms/Utils/LowerAllocations.cpp +++ b/lib/Transforms/Utils/LowerAllocations.cpp @@ -66,12 +66,12 @@ namespace { /// bool runOnBasicBlock(BasicBlock &BB); }; - - char LowerAllocations::ID = 0; - RegisterPass<LowerAllocations> - X("lowerallocs", "Lower allocations from instructions to calls"); } +char LowerAllocations::ID = 0; +static RegisterPass<LowerAllocations> +X("lowerallocs", "Lower allocations from instructions to calls"); + // Publically exposed interface to pass... const PassInfo *llvm::LowerAllocationsID = X.getPassInfo(); // createLowerAllocationsPass - Interface to this file... diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp index 3d356b7..0530e52 100644 --- a/lib/Transforms/Utils/LowerInvoke.cpp +++ b/lib/Transforms/Utils/LowerInvoke.cpp @@ -98,12 +98,12 @@ namespace { AllocaInst *InvokeNum, SwitchInst *CatchSwitch); bool insertExpensiveEHSupport(Function &F); }; - - char LowerInvoke::ID = 0; - RegisterPass<LowerInvoke> - X("lowerinvoke", "Lower invoke and unwind, for unwindless code generators"); } +char LowerInvoke::ID = 0; +static RegisterPass<LowerInvoke> +X("lowerinvoke", "Lower invoke and unwind, for unwindless code generators"); + const PassInfo *llvm::LowerInvokePassID = X.getPassInfo(); // Public Interface To the LowerInvoke pass. diff --git a/lib/Transforms/Utils/LowerSwitch.cpp b/lib/Transforms/Utils/LowerSwitch.cpp index d75880f..9ddb2cd 100644 --- a/lib/Transforms/Utils/LowerSwitch.cpp +++ b/lib/Transforms/Utils/LowerSwitch.cpp @@ -77,12 +77,12 @@ namespace { return CI1->getValue().slt(CI2->getValue()); } }; - - char LowerSwitch::ID = 0; - RegisterPass<LowerSwitch> - X("lowerswitch", "Lower SwitchInst's to branches"); } +char LowerSwitch::ID = 0; +static RegisterPass<LowerSwitch> +X("lowerswitch", "Lower SwitchInst's to branches"); + // Publically exposed interface to pass... const PassInfo *llvm::LowerSwitchID = X.getPassInfo(); // createLowerSwitchPass - Interface to this file... diff --git a/lib/Transforms/Utils/Mem2Reg.cpp b/lib/Transforms/Utils/Mem2Reg.cpp index f9b1d8d..e402bb9 100644 --- a/lib/Transforms/Utils/Mem2Reg.cpp +++ b/lib/Transforms/Utils/Mem2Reg.cpp @@ -48,11 +48,11 @@ namespace { AU.addPreservedID(LowerAllocationsID); } }; - - char PromotePass::ID = 0; - RegisterPass<PromotePass> X("mem2reg", "Promote Memory to Register"); } // end of anonymous namespace +char PromotePass::ID = 0; +static RegisterPass<PromotePass> X("mem2reg", "Promote Memory to Register"); + bool PromotePass::runOnFunction(Function &F) { std::vector<AllocaInst*> Allocas; |