*** empty log message ***
authorChris Lattner <sabre@nondot.org>
Tue, 23 Jul 2002 18:06:35 +0000 (18:06 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 23 Jul 2002 18:06:35 +0000 (18:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3016 91177308-0d34-0410-b5e6-96231b3b80d8

20 files changed:
lib/Transforms/IPO/GlobalDCE.cpp
lib/Transforms/IPO/Internalize.cpp
lib/Transforms/IPO/OldPoolAllocate.cpp
lib/Transforms/Instrumentation/EmitFunctions.cpp
lib/Transforms/Instrumentation/ProfilePaths/ProfilePaths.cpp
lib/Transforms/Scalar/ADCE.cpp
lib/Transforms/Scalar/ConstantProp.cpp
lib/Transforms/Scalar/DCE.cpp
lib/Transforms/Scalar/DecomposeMultiDimRefs.cpp
lib/Transforms/Scalar/GCSE.cpp
lib/Transforms/Scalar/IndVarSimplify.cpp
lib/Transforms/Scalar/InstructionCombining.cpp
lib/Transforms/Scalar/LICM.cpp
lib/Transforms/Scalar/PiNodeInsertion.cpp
lib/Transforms/Scalar/Reassociate.cpp
lib/Transforms/Scalar/SCCP.cpp
lib/Transforms/Scalar/SimplifyCFG.cpp
lib/Transforms/Scalar/SymbolStripping.cpp
lib/Transforms/Utils/PromoteMemoryToRegister.cpp
lib/Transforms/Utils/UnifyFunctionExitNodes.cpp

index c419ad1a0cf9596eb9f2d49176cbfe08021ab137..494b3630c49a5baa58b22b10a64e728cdc04d089 100644 (file)
@@ -70,8 +70,6 @@ static bool RemoveUnreachableGlobalVariables(Module &M) {
 
 namespace {
   struct GlobalDCE : public Pass {
-    const char *getPassName() const { return "Dead Global Elimination"; }
-
     // run - Do the GlobalDCE pass on the specified module, optionally updating
     // the specified callgraph to reflect the changes.
     //
@@ -88,6 +86,7 @@ namespace {
       AU.addRequired(CallGraph::ID);
     }
   };
+  RegisterPass<GlobalDCE> X("globaldce", "Dead Global Elimination");
 }
 
 Pass *createGlobalDCEPass() { return new GlobalDCE(); }
index ff0b7906a0caa3e8196a6b2f095cf4102557bd5c..6be64fce2db3d47c0348fcbe334a768bd7615678 100644 (file)
@@ -14,9 +14,8 @@
 
 static Statistic<> NumChanged("internalize\t- Number of functions internal'd");
 
+namespace {
 class InternalizePass : public Pass {
-  const char *getPassName() const { return "Internalize Functions"; }
-
   virtual bool run(Module &M) {
     bool FoundMain = false;   // Look for a function named main...
     for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
@@ -42,6 +41,9 @@ class InternalizePass : public Pass {
   }
 };
 
+RegisterPass<InternalizePass> X("internalize", "Internalize Functions");
+} // end anonymous namespace
+
 Pass *createInternalizePass() {
   return new InternalizePass();
 }
index eb463b8e1360a1e1907ec1555d7a5ff0104fb0c4..dca8b97ca058aecbeefcdaf6055cca40b323c434 100644 (file)
@@ -207,8 +207,6 @@ namespace {
 
   // Define the pass class that we implement...
   struct PoolAllocate : public Pass {
-    const char *getPassName() const { return "Pool Allocate"; }
-
     PoolAllocate() {
       switch (ReqPointerSize) {
       case Ptr32bits: POINTERTYPE = Type::UIntTy; break;
@@ -316,6 +314,9 @@ namespace {
                            map<DSNode*, PoolInfo> &PoolDescs);
 
   };
+
+  RegisterPass<PoolAllocate> X("poolalloc",
+                               "Pool allocate disjoint datastructures");
 }
 
 // isNotPoolableAlloc - This is a predicate that returns true if the specified
index 2d9b9a7c93c2691f9fdeb8ae8b49d93e05e3adb0..3506cb90566c447e434a5ee18af4b36794102fc8 100644 (file)
 
 using std::vector;
 
-struct EmitFunctionTable : public Pass {
-  const char *getPassName() const { return "EmitFunctionTablePass"; }
-
-  bool run(Module &M);
-};
+namespace {
+  struct EmitFunctionTable : public Pass {
+    bool run(Module &M);
+  };
+  
+  RegisterPass<EmitFunctionTable> X("emitfuncs", "Emit a Function Table");
+}
 
 // Create a new pass to add function table
 //
index 391bc5bb8951ad586dbc792485450e2377828949..95cd5bea9a90a182454b87b7205930ee8bd80148 100644 (file)
@@ -37,8 +37,6 @@
 using std::vector;
 
 struct ProfilePaths : public FunctionPass {
-  const char *getPassName() const { return "ProfilePaths"; }
-
   bool runOnFunction(Function &F);
 
   // Before this pass, make sure that there is only one 
@@ -49,6 +47,8 @@ struct ProfilePaths : public FunctionPass {
   }
 };
 
+static RegisterPass<ProfilePaths> X("paths", "Profile Paths");
+
 // createProfilePathsPass - Create a new pass to add path profiling
 //
 Pass *createProfilePathsPass() {
index 35189e36838b68eb98e5febb47ba4782cca50b54..d70980e2078a3b2f6faf03a802cc8311c690d050 100644 (file)
@@ -43,8 +43,6 @@ class ADCE : public FunctionPass {
   // The public interface for this class
   //
 public:
-  const char *getPassName() const { return "Aggressive Dead Code Elimination"; }
-  
   // Execute the Aggressive Dead Code Elimination Algorithm
   //
   virtual bool runOnFunction(Function &F) {
@@ -86,11 +84,11 @@ private:
   }
 };
 
+  RegisterPass<ADCE> X("adce", "Aggressive Dead Code Elimination");
 } // End of anonymous namespace
 
 Pass *createAggressiveDCEPass() { return new ADCE(); }
 
-
 void ADCE::markBlockAlive(BasicBlock *BB) {
   // Mark the basic block as being newly ALIVE... and mark all branches that
   // this block is control dependant on as being alive also...
index 51bd6cb32f662091dfef265cb07c4b147350af16..025b8a79b238253d16d5e52a558e92f6c2606d2c 100644 (file)
@@ -24,14 +24,14 @@ static Statistic<> NumInstKilled("constprop - Number of instructions killed");
 
 namespace {
   struct ConstantPropogation : public FunctionPass {
-    const char *getPassName() const { return "Simple Constant Propogation"; }
-
     bool runOnFunction(Function &F);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.preservesCFG();
     }
   };
+
+RegisterPass<ConstantPropogation> X("constprop", "Simple constant propogation");
 }
 
 Pass *createConstantPropogationPass() {
index 1f5def63e487e404b40d8f65b479df14dcb7a800..bfc41b14bca6f5ac769122e89dad2521caa8a17b 100644 (file)
@@ -26,8 +26,6 @@ static Statistic<> DCEEliminated("dce\t\t- Number of insts removed");
 
 namespace {
   struct DeadInstElimination : public BasicBlockPass {
-    const char *getPassName() const { return "Dead Instruction Elimination"; }
-    
     virtual bool runOnBasicBlock(BasicBlock &BB) {
       bool Changed = false;
       for (BasicBlock::iterator DI = BB.begin(); DI != BB.end(); )
@@ -43,6 +41,8 @@ namespace {
       AU.preservesCFG();
     }
   };
+  
+  RegisterPass<DeadInstElimination> X("die", "Dead Instruction Elimination");
 }
 
 Pass *createDeadInstEliminationPass() {
@@ -57,14 +57,14 @@ Pass *createDeadInstEliminationPass() {
 
 namespace {
   struct DCE : public FunctionPass {
-    const char *getPassName() const { return "Dead Code Elimination"; }
-
     virtual bool runOnFunction(Function &F);
 
      virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.preservesCFG();
     }
  };
+
+  RegisterPass<DCE> Y("dce", "Dead Code Elimination");
 }
 
 bool DCE::runOnFunction(Function &F) {
index b18095027bd4fe314d2128e1a8e00436fea41e79..5d873cda2e1f0c90bd401fd38225069cc6dc2edc 100644 (file)
@@ -21,13 +21,14 @@ static Statistic<> NumAdded("lowerrefs\t\t- New instructions added");
 
 namespace {
   struct DecomposePass : public BasicBlockPass {
-    const char *getPassName() const { return "Decompose Subscripting Exps"; }
-
     virtual bool runOnBasicBlock(BasicBlock &BB);
 
   private:
     static void decomposeArrayRef(BasicBlock::iterator &BBI);
   };
+
+RegisterPass<DecomposePass> X("lowerrefs", "Decompose multi-dimensional "
+                              "structure/array references");
 }
 
 Pass *createDecomposeMultiDimRefsPass() {
index 56bb191e16dd474a16323ca177b39ce0e4a5e15d..568f3db4f34802868aaf4763cdbe928409cd9c31 100644 (file)
@@ -42,10 +42,6 @@ namespace {
     //
     map<BasicBlock*, bool>  BBContainsStore;
   public:
-    const char *getPassName() const {
-      return "Global Common Subexpression Elimination";
-    }
-
     virtual bool runOnFunction(Function &F);
 
     // Visitation methods, these are invoked depending on the type of
@@ -87,6 +83,8 @@ namespace {
       AU.addRequired(ImmediateDominators::ID); 
     }
   };
+
+  RegisterPass<GCSE> X("gcse", "Global Common Subexpression Elimination");
 }
 
 // createGCSEPass - The public interface to this file...
index acd1deb711030bb10c963696891d5f29d42b4b68..35fe697f0f9c63feccf6c3732c636343e0e671a3 100644 (file)
@@ -184,10 +184,6 @@ static bool TransformLoop(LoopInfo *Loops, Loop *Loop) {
 
 namespace {
   struct InductionVariableSimplify : public FunctionPass {
-    const char *getPassName() const {
-      return "Induction Variable Cannonicalize";
-    }
-
     virtual bool runOnFunction(Function &) {
       LoopInfo &LI = getAnalysis<LoopInfo>();
 
@@ -202,9 +198,10 @@ namespace {
       AU.preservesCFG();
     }
   };
+  RegisterPass<InductionVariableSimplify> X("indvars",
+                                           "Cannonicalize Induction Variables");
 }
 
 Pass *createIndVarSimplifyPass() {
   return new InductionVariableSimplify();
 }
-
index 1ff2c0fecddbae97bada5d394c68cf13640793ed..ba2bbe0b05cf65e421dbcdba67c587d3120070ce 100644 (file)
@@ -46,8 +46,6 @@ namespace {
     }
 
   public:
-    const char *getPassName() const { return "Instruction Combining"; }
-
     virtual bool runOnFunction(Function &F);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -80,6 +78,8 @@ namespace {
     // visitInstruction - Specify what to return for unhandled instructions...
     Instruction *visitInstruction(Instruction &I) { return 0; }
   };
+
+  RegisterPass<InstCombiner> X("instcombine", "Combine redundant instructions");
 }
 
 
index 99ee45e3cd76353e8a50dd1d052d775230185e8f..99450bbd255c8e2147eca80dd1ce966019ef38d0 100644 (file)
@@ -34,8 +34,6 @@ static Statistic<> NumHoistedPH("licm\t\t- Number of insts hoisted to a loop "
 
 namespace {
   struct LICM : public FunctionPass, public InstVisitor<LICM> {
-    const char *getPassName() const { return "Loop Invariant Code Motion"; }
-
     virtual bool runOnFunction(Function &F);
 
     // This transformation requires natural loop information...
@@ -104,6 +102,8 @@ namespace {
       hoist(I);
     }
   };
+
+  RegisterPass<LICM> X("licm", "Loop Invariant Code Motion");
 }
 
 Pass *createLICMPass() { return new LICM(); }
index 2c16049684d71b26b498b78b7dbdec42fca5a51a..81f3cb3e9338c62212ff6552ac22e49d642cbb35 100644 (file)
@@ -40,8 +40,6 @@ static Statistic<> NumInserted("pinodes\t\t- Number of Pi nodes inserted");
 
 namespace {
   struct PiNodeInserter : public FunctionPass {
-    const char *getPassName() const { return "Pi Node Insertion"; }
-    
     virtual bool runOnFunction(Function &F);
     
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -56,6 +54,8 @@ namespace {
     //
     bool insertPiNodeFor(Value *V, BasicBlock *BB, Value *Rep = 0);
   };
+
+  RegisterPass<PiNodeInserter> X("pinodes", "Pi Node Insertion");
 }
 
 Pass *createPiNodeInsertionPass() { return new PiNodeInserter(); }
index 7ccbd7bf4207b11ba3763404ee03c681e5042bfa..05758039d944f5f38b019f190a18d8ccb9eaa927 100644 (file)
@@ -35,10 +35,6 @@ namespace {
   class Reassociate : public FunctionPass {
     map<BasicBlock*, unsigned> RankMap;
   public:
-    const char *getPassName() const {
-      return "Expression Reassociation";
-    }
-
     bool runOnFunction(Function &F);
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
@@ -50,6 +46,8 @@ namespace {
     bool ReassociateExpr(BinaryOperator *I);
     bool ReassociateBB(BasicBlock *BB);
   };
+
+  RegisterPass<Reassociate> X("reassociate", "Reassociate expressions");
 }
 
 Pass *createReassociatePass() { return new Reassociate(); }
index 4d752e9589e3a97fd0a1bf84074d4b99bd726d41..b32481e48bb9cea826822755e7042b7a672ef33a 100644 (file)
@@ -94,10 +94,6 @@ class SCCP : public FunctionPass, public InstVisitor<SCCP> {
   std::vector<BasicBlock*>  BBWorkList;  // The BasicBlock work list
 public:
 
-  const char *getPassName() const {
-    return "Sparse Conditional Constant Propogation";
-  }
-
   // runOnFunction - Run the Sparse Conditional Constant Propogation algorithm,
   // and return true if the function was modified.
   //
@@ -223,6 +219,8 @@ private:
     visit(I);
   }
 };
+
+  RegisterPass<SCCP> X("sccp", "Sparse Conditional Constant Propogation");
 } // end anonymous namespace
 
 
@@ -233,7 +231,6 @@ Pass *createSCCPPass() {
 }
 
 
-
 //===----------------------------------------------------------------------===//
 // SCCP Class Implementation
 
index 08611d2349a65f6d666f35df6f2b70ef88dae977..6774dc17a310fe1d4995ba31182bb5bf689b1db5 100644 (file)
@@ -24,10 +24,9 @@ static Statistic<> NumSimpl("cfgsimplify\t- Number of blocks simplified");
 
 namespace {
   struct CFGSimplifyPass : public FunctionPass {
-    const char *getPassName() const { return "Simplify CFG"; }
-    
     virtual bool runOnFunction(Function &F);
   };
+  RegisterPass<CFGSimplifyPass> X("simplifycfg", "Simplify the CFG");
 }
 
 Pass *createCFGSimplificationPass() {
index 46f4e4477cbd084eeb4cb9ec6cf87932782cd0d4..4ad5af3a7f8de8076d7408fbe3a25fa62e512022 100644 (file)
@@ -44,8 +44,6 @@ static bool StripSymbolTable(SymbolTable *SymTab) {
 
 namespace {
   struct SymbolStripping : public FunctionPass {
-    const char *getPassName() const { return "Strip Symbols from Functions"; }
-
     virtual bool runOnFunction(Function &F) {
       return StripSymbolTable(F.getSymbolTable());
     }
@@ -53,13 +51,15 @@ namespace {
       AU.setPreservesAll();
     }
   };
+  RegisterPass<SymbolStripping> X("strip", "Strip symbols from functions");
 
   struct FullSymbolStripping : public SymbolStripping {
-    const char *getPassName() const { return "Strip Symbols from Module"; }
     virtual bool doInitialization(Module &M) {
       return StripSymbolTable(M.getSymbolTable());
     }
   };
+  RegisterPass<FullSymbolStripping> Y("mstrip",
+                                    "Strip symbols from module and functions");
 }
 
 Pass *createSymbolStrippingPass() {
index 8a81ac713176a84414a783a937cc029d567a789f..378e9799a8c107d427d516ca6f3cc1f5275c9f7b 100644 (file)
@@ -47,8 +47,6 @@ namespace {
     map<BasicBlock*,vector<PHINode*> > NewPhiNodes; // the PhiNodes we're adding
 
   public:
-    const char *getPassName() const { return "Promote Memory to Register"; }
-
     // runOnFunction - To run this pass, first we calculate the alloca
     // instructions that are safe for promotion, then we promote each one.
     //
@@ -68,6 +66,7 @@ namespace {
     void FindSafeAllocas(Function &F);
   };
 
+  RegisterPass<PromotePass> X("mem2reg", "Promote Memory to Register");
 }  // end of anonymous namespace
 
 
index 9a65fcecf440d7dd0b983e19d8480b00fd91d175..ef7d63e7cdbf14437e7fa71fdbbc320871310dd6 100644 (file)
@@ -17,6 +17,8 @@ using std::vector;
 
 AnalysisID UnifyFunctionExitNodes::ID(AnalysisID::create<UnifyFunctionExitNodes>());
 
+static RegisterPass<UnifyFunctionExitNodes>
+X("mergereturn", "Unify function exit nodes");
 
 // UnifyAllExitNodes - Unify all exit nodes of the CFG by creating a new
 // BasicBlock, and converting all returns to unconditional branches to this