From a6275ccdf5e1aa208afde56c498e2b13e16442f0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 26 Jul 2002 21:12:46 +0000 Subject: [PATCH] * 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@3113 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/IPA/FindUnsafePointerTypes.cpp | 2 ++ lib/Analysis/IPA/FindUsedTypes.cpp | 2 ++ lib/Transforms/IPO/InlineSimple.cpp | 2 +- lib/Transforms/IPO/RaiseAllocations.cpp | 4 ++-- lib/Transforms/Instrumentation/EmitFunctions.cpp | 2 +- lib/Transforms/Instrumentation/TraceValues.cpp | 4 ++-- lib/Transforms/LevelRaise.cpp | 2 +- lib/Transforms/Scalar/ADCE.cpp | 2 +- lib/Transforms/Scalar/ConstantProp.cpp | 2 +- lib/Transforms/Scalar/DCE.cpp | 4 ++-- lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp | 4 ++-- lib/Transforms/Scalar/GCSE.cpp | 2 +- lib/Transforms/Scalar/IndVarSimplify.cpp | 2 +- lib/Transforms/Scalar/InstructionCombining.cpp | 2 +- lib/Transforms/Scalar/LICM.cpp | 2 +- lib/Transforms/Scalar/PiNodeInsertion.cpp | 2 +- lib/Transforms/Scalar/Reassociate.cpp | 2 +- lib/Transforms/Scalar/SCCP.cpp | 2 +- lib/Transforms/Scalar/SimplifyCFG.cpp | 2 +- lib/Transforms/Scalar/SymbolStripping.cpp | 6 +++--- lib/Transforms/Utils/LowerAllocations.cpp | 2 +- lib/Transforms/Utils/PromoteMemoryToRegister.cpp | 2 +- lib/VMCore/AsmWriter.cpp | 6 ++++-- 23 files changed, 34 insertions(+), 28 deletions(-) diff --git a/lib/Analysis/IPA/FindUnsafePointerTypes.cpp b/lib/Analysis/IPA/FindUnsafePointerTypes.cpp index 1180766f157..2678fcf07d4 100644 --- a/lib/Analysis/IPA/FindUnsafePointerTypes.cpp +++ b/lib/Analysis/IPA/FindUnsafePointerTypes.cpp @@ -23,6 +23,8 @@ #include "llvm/Support/InstIterator.h" #include "Support/CommandLine.h" +static RegisterAnalysis +X("unsafepointertypes", "Find Unsafe Pointer Types"); AnalysisID FindUnsafePointerTypes::ID(AnalysisID::create()); // Provide a command line option to turn on printing of which instructions cause diff --git a/lib/Analysis/IPA/FindUsedTypes.cpp b/lib/Analysis/IPA/FindUsedTypes.cpp index f91b8ae226e..1139cf3df8b 100644 --- a/lib/Analysis/IPA/FindUsedTypes.cpp +++ b/lib/Analysis/IPA/FindUsedTypes.cpp @@ -11,6 +11,8 @@ #include "llvm/Module.h" #include "llvm/Support/InstIterator.h" +static RegisterAnalysis +X("printusedtypes", "Find Used Types"); AnalysisID FindUsedTypes::ID(AnalysisID::create()); // IncorporateType - Incorporate one type and all of its subtypes into the diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp index 3c76a339eca..924ad5c93af 100644 --- a/lib/Transforms/IPO/InlineSimple.cpp +++ b/lib/Transforms/IPO/InlineSimple.cpp @@ -261,7 +261,7 @@ namespace { return doFunctionInlining(F); } }; - RegisterPass X("inline", "Function Integration/Inlining"); + RegisterOpt X("inline", "Function Integration/Inlining"); } Pass *createFunctionInliningPass() { return new FunctionInlining(); } diff --git a/lib/Transforms/IPO/RaiseAllocations.cpp b/lib/Transforms/IPO/RaiseAllocations.cpp index fae1767a3e5..0f10dad3c41 100644 --- a/lib/Transforms/IPO/RaiseAllocations.cpp +++ b/lib/Transforms/IPO/RaiseAllocations.cpp @@ -39,8 +39,8 @@ public: bool runOnBasicBlock(BasicBlock &BB); }; -RegisterPass -X("raiseallocs", "Raise allocations from calls to instructions"); + RegisterOpt + X("raiseallocs", "Raise allocations from calls to instructions"); } // end anonymous namespace diff --git a/lib/Transforms/Instrumentation/EmitFunctions.cpp b/lib/Transforms/Instrumentation/EmitFunctions.cpp index 3506cb90566..0218a146a69 100644 --- a/lib/Transforms/Instrumentation/EmitFunctions.cpp +++ b/lib/Transforms/Instrumentation/EmitFunctions.cpp @@ -17,7 +17,7 @@ namespace { bool run(Module &M); }; - RegisterPass X("emitfuncs", "Emit a Function Table"); + RegisterOpt X("emitfuncs", "Emit a Function Table"); } // Create a new pass to add function table diff --git a/lib/Transforms/Instrumentation/TraceValues.cpp b/lib/Transforms/Instrumentation/TraceValues.cpp index 52c7c0aa649..3239e73c981 100644 --- a/lib/Transforms/Instrumentation/TraceValues.cpp +++ b/lib/Transforms/Instrumentation/TraceValues.cpp @@ -97,8 +97,8 @@ namespace { }; // Register the passes... - RegisterPass X("tracem","Insert Function trace code only"); - RegisterPass Y("trace","Insert BB and Function trace code"); + RegisterOpt X("tracem","Insert Function trace code only"); + RegisterOpt Y("trace","Insert BB and Function trace code"); } // end anonymous namespace diff --git a/lib/Transforms/LevelRaise.cpp b/lib/Transforms/LevelRaise.cpp index 420cc79c7b1..b2008b08a13 100644 --- a/lib/Transforms/LevelRaise.cpp +++ b/lib/Transforms/LevelRaise.cpp @@ -545,5 +545,5 @@ Pass *createRaisePointerReferencesPass(const TargetData &TD) { return new RaisePointerReferences(TD); } -static RegisterPass +static RegisterOpt X("raise", "Raise Pointer References", createRaisePointerReferencesPass); diff --git a/lib/Transforms/Scalar/ADCE.cpp b/lib/Transforms/Scalar/ADCE.cpp index 058ef1b5055..40ae87b5bbf 100644 --- a/lib/Transforms/Scalar/ADCE.cpp +++ b/lib/Transforms/Scalar/ADCE.cpp @@ -84,7 +84,7 @@ private: } }; - RegisterPass X("adce", "Aggressive Dead Code Elimination"); + RegisterOpt X("adce", "Aggressive Dead Code Elimination"); } // End of anonymous namespace Pass *createAggressiveDCEPass() { return new ADCE(); } diff --git a/lib/Transforms/Scalar/ConstantProp.cpp b/lib/Transforms/Scalar/ConstantProp.cpp index 025b8a79b23..5da909e2020 100644 --- a/lib/Transforms/Scalar/ConstantProp.cpp +++ b/lib/Transforms/Scalar/ConstantProp.cpp @@ -31,7 +31,7 @@ namespace { } }; -RegisterPass X("constprop", "Simple constant propogation"); + RegisterOpt X("constprop","Simple constant propogation"); } Pass *createConstantPropogationPass() { diff --git a/lib/Transforms/Scalar/DCE.cpp b/lib/Transforms/Scalar/DCE.cpp index bfc41b14bca..2903699a8d1 100644 --- a/lib/Transforms/Scalar/DCE.cpp +++ b/lib/Transforms/Scalar/DCE.cpp @@ -42,7 +42,7 @@ namespace { } }; - RegisterPass X("die", "Dead Instruction Elimination"); + RegisterOpt X("die", "Dead Instruction Elimination"); } Pass *createDeadInstEliminationPass() { @@ -64,7 +64,7 @@ namespace { } }; - RegisterPass Y("dce", "Dead Code Elimination"); + RegisterOpt Y("dce", "Dead Code Elimination"); } bool DCE::runOnFunction(Function &F) { diff --git a/lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp b/lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp index 5d873cda2e1..f0a807497a7 100644 --- a/lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp +++ b/lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp @@ -27,8 +27,8 @@ namespace { static void decomposeArrayRef(BasicBlock::iterator &BBI); }; -RegisterPass X("lowerrefs", "Decompose multi-dimensional " - "structure/array references"); + RegisterOpt X("lowerrefs", "Decompose multi-dimensional " + "structure/array references"); } Pass *createDecomposeMultiDimRefsPass() { diff --git a/lib/Transforms/Scalar/GCSE.cpp b/lib/Transforms/Scalar/GCSE.cpp index 568f3db4f34..c8f87759767 100644 --- a/lib/Transforms/Scalar/GCSE.cpp +++ b/lib/Transforms/Scalar/GCSE.cpp @@ -84,7 +84,7 @@ namespace { } }; - RegisterPass X("gcse", "Global Common Subexpression Elimination"); + RegisterOpt X("gcse", "Global Common Subexpression Elimination"); } // createGCSEPass - The public interface to this file... diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 35fe697f0f9..411ab11fece 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -198,7 +198,7 @@ namespace { AU.preservesCFG(); } }; - RegisterPass X("indvars", + RegisterOpt X("indvars", "Cannonicalize Induction Variables"); } diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index ba2bbe0b05c..230b5536571 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -79,7 +79,7 @@ namespace { Instruction *visitInstruction(Instruction &I) { return 0; } }; - RegisterPass X("instcombine", "Combine redundant instructions"); + RegisterOpt X("instcombine", "Combine redundant instructions"); } diff --git a/lib/Transforms/Scalar/LICM.cpp b/lib/Transforms/Scalar/LICM.cpp index 99450bbd255..9f3c75705af 100644 --- a/lib/Transforms/Scalar/LICM.cpp +++ b/lib/Transforms/Scalar/LICM.cpp @@ -103,7 +103,7 @@ namespace { } }; - RegisterPass X("licm", "Loop Invariant Code Motion"); + RegisterOpt X("licm", "Loop Invariant Code Motion"); } Pass *createLICMPass() { return new LICM(); } diff --git a/lib/Transforms/Scalar/PiNodeInsertion.cpp b/lib/Transforms/Scalar/PiNodeInsertion.cpp index 81f3cb3e933..399b5fee88c 100644 --- a/lib/Transforms/Scalar/PiNodeInsertion.cpp +++ b/lib/Transforms/Scalar/PiNodeInsertion.cpp @@ -55,7 +55,7 @@ namespace { bool insertPiNodeFor(Value *V, BasicBlock *BB, Value *Rep = 0); }; - RegisterPass X("pinodes", "Pi Node Insertion"); + RegisterOpt X("pinodes", "Pi Node Insertion"); } Pass *createPiNodeInsertionPass() { return new PiNodeInserter(); } diff --git a/lib/Transforms/Scalar/Reassociate.cpp b/lib/Transforms/Scalar/Reassociate.cpp index a6ad88a9ea6..24d7dcebe8e 100644 --- a/lib/Transforms/Scalar/Reassociate.cpp +++ b/lib/Transforms/Scalar/Reassociate.cpp @@ -47,7 +47,7 @@ namespace { bool ReassociateBB(BasicBlock *BB); }; - RegisterPass X("reassociate", "Reassociate expressions"); + RegisterOpt X("reassociate", "Reassociate expressions"); } Pass *createReassociatePass() { return new Reassociate(); } diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index b32481e48bb..b721ca0965c 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -220,7 +220,7 @@ private: } }; - RegisterPass X("sccp", "Sparse Conditional Constant Propogation"); + RegisterOpt X("sccp", "Sparse Conditional Constant Propogation"); } // end anonymous namespace diff --git a/lib/Transforms/Scalar/SimplifyCFG.cpp b/lib/Transforms/Scalar/SimplifyCFG.cpp index 6774dc17a31..f26d5a01f82 100644 --- a/lib/Transforms/Scalar/SimplifyCFG.cpp +++ b/lib/Transforms/Scalar/SimplifyCFG.cpp @@ -26,7 +26,7 @@ namespace { struct CFGSimplifyPass : public FunctionPass { virtual bool runOnFunction(Function &F); }; - RegisterPass X("simplifycfg", "Simplify the CFG"); + RegisterOpt X("simplifycfg", "Simplify the CFG"); } Pass *createCFGSimplificationPass() { diff --git a/lib/Transforms/Scalar/SymbolStripping.cpp b/lib/Transforms/Scalar/SymbolStripping.cpp index 4ad5af3a7f8..2f3d1aad6a8 100644 --- a/lib/Transforms/Scalar/SymbolStripping.cpp +++ b/lib/Transforms/Scalar/SymbolStripping.cpp @@ -51,15 +51,15 @@ namespace { AU.setPreservesAll(); } }; - RegisterPass X("strip", "Strip symbols from functions"); + RegisterOpt X("strip", "Strip symbols from functions"); struct FullSymbolStripping : public SymbolStripping { virtual bool doInitialization(Module &M) { return StripSymbolTable(M.getSymbolTable()); } }; - RegisterPass Y("mstrip", - "Strip symbols from module and functions"); + RegisterOpt Y("mstrip", + "Strip symbols from module and functions"); } Pass *createSymbolStrippingPass() { diff --git a/lib/Transforms/Utils/LowerAllocations.cpp b/lib/Transforms/Utils/LowerAllocations.cpp index 486061fdf73..7e0960dbf72 100644 --- a/lib/Transforms/Utils/LowerAllocations.cpp +++ b/lib/Transforms/Utils/LowerAllocations.cpp @@ -52,7 +52,7 @@ Pass *createLowerAllocationsPass(const TargetData &TD) { return new LowerAllocations(TD); } -static RegisterPass +static RegisterOpt X("lowerallocs", "Lower allocations from instructions to calls (TD)", createLowerAllocationsPass); diff --git a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp index 378e9799a8c..0a92d0d9060 100644 --- a/lib/Transforms/Utils/PromoteMemoryToRegister.cpp +++ b/lib/Transforms/Utils/PromoteMemoryToRegister.cpp @@ -66,7 +66,7 @@ namespace { void FindSafeAllocas(Function &F); }; - RegisterPass X("mem2reg", "Promote Memory to Register"); + RegisterOpt X("mem2reg", "Promote Memory to Register"); } // end of anonymous namespace diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index e33d9f400ab..c1af5e4c856 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -29,8 +29,10 @@ using std::map; using std::vector; using std::ostream; -static RegisterPass X("printm", "Print module to stderr"); -static RegisterPass Y("print", "Print function to stderr"); +static RegisterPass +X("printm", "Print module to stderr",PassInfo::Analysis|PassInfo::Optimization); +static RegisterPass +Y("print","Print function to stderr",PassInfo::Analysis|PassInfo::Optimization); static void WriteAsOperandInternal(ostream &Out, const Value *V, bool PrintName, map &TypeTable,