[llvm-commits] CVS: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp ConstantMerge.cpp DeadArgumentElimination.cpp DeadTypeElimination.cpp ExtractFunction.cpp GlobalDCE.cpp GlobalOpt.cpp IPConstantPropagation.cpp IndMemRemoval.cpp InlineSimple.cpp Inliner.cpp Inliner.h Internalize.cpp LoopExtractor.cpp LowerSetJmp.cpp PruneEH.cpp RaiseAllocations.cpp SimplifyLibCalls.cpp StripDeadPrototypes.cpp StripSymbols.cpp

Devang Patel dpatel at apple.com
Tue May 1 14:17:47 PDT 2007



Changes in directory llvm/lib/Transforms/IPO:

ArgumentPromotion.cpp updated: 1.39 -> 1.40
ConstantMerge.cpp updated: 1.39 -> 1.40
DeadArgumentElimination.cpp updated: 1.40 -> 1.41
DeadTypeElimination.cpp updated: 1.62 -> 1.63
ExtractFunction.cpp updated: 1.20 -> 1.21
GlobalDCE.cpp updated: 1.45 -> 1.46
GlobalOpt.cpp updated: 1.101 -> 1.102
IPConstantPropagation.cpp updated: 1.23 -> 1.24
IndMemRemoval.cpp updated: 1.15 -> 1.16
InlineSimple.cpp updated: 1.78 -> 1.79
Inliner.cpp updated: 1.37 -> 1.38
Inliner.h updated: 1.9 -> 1.10
Internalize.cpp updated: 1.45 -> 1.46
LoopExtractor.cpp updated: 1.24 -> 1.25
LowerSetJmp.cpp updated: 1.40 -> 1.41
PruneEH.cpp updated: 1.31 -> 1.32
RaiseAllocations.cpp updated: 1.40 -> 1.41
SimplifyLibCalls.cpp updated: 1.112 -> 1.113
StripDeadPrototypes.cpp updated: 1.5 -> 1.6
StripSymbols.cpp updated: 1.15 -> 1.16
---
Log message:

Do not use typeinfo to identify pass in pass manager.


---
Diffs of the changes:  (+85 -10)

 ArgumentPromotion.cpp       |    4 ++++
 ConstantMerge.cpp           |    4 ++++
 DeadArgumentElimination.cpp |    5 +++++
 DeadTypeElimination.cpp     |    4 ++++
 ExtractFunction.cpp         |    6 +++++-
 GlobalDCE.cpp               |    4 ++++
 GlobalOpt.cpp               |    3 +++
 IPConstantPropagation.cpp   |    4 ++++
 IndMemRemoval.cpp           |    4 ++++
 InlineSimple.cpp            |    2 ++
 Inliner.cpp                 |    4 +++-
 Inliner.h                   |    1 +
 Internalize.cpp             |    6 ++++--
 LoopExtractor.cpp           |   15 ++++++++++++---
 LowerSetJmp.cpp             |    4 ++++
 PruneEH.cpp                 |    5 +++++
 RaiseAllocations.cpp        |    5 ++++-
 SimplifyLibCalls.cpp        |    4 ++++
 StripDeadPrototypes.cpp     |    5 ++++-
 StripSymbols.cpp            |    6 +++++-
 20 files changed, 85 insertions(+), 10 deletions(-)


Index: llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
diff -u llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.39 llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.40
--- llvm/lib/Transforms/IPO/ArgumentPromotion.cpp:1.39	Thu Mar  1 15:00:32 2007
+++ llvm/lib/Transforms/IPO/ArgumentPromotion.cpp	Tue May  1 16:15:46 2007
@@ -63,12 +63,16 @@
     }
 
     virtual bool runOnSCC(const std::vector<CallGraphNode *> &SCC);
+    static const int ID; // Pass identifcation, replacement for typeid
+    ArgPromotion() : CallGraphSCCPass((intptr_t)&ID) {}
+
   private:
     bool PromoteArguments(CallGraphNode *CGN);
     bool isSafeToPromoteArgument(Argument *Arg) const;
     Function *DoPromotion(Function *F, std::vector<Argument*> &ArgsToPromote);
   };
 
+  const int ArgPromotion::ID = 0;
   RegisterPass<ArgPromotion> X("argpromotion",
                                "Promote 'by reference' arguments to scalars");
 }


Index: llvm/lib/Transforms/IPO/ConstantMerge.cpp
diff -u llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.39 llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.40
--- llvm/lib/Transforms/IPO/ConstantMerge.cpp:1.39	Sat Apr 14 13:06:52 2007
+++ llvm/lib/Transforms/IPO/ConstantMerge.cpp	Tue May  1 16:15:46 2007
@@ -29,12 +29,16 @@
 
 namespace {
   struct VISIBILITY_HIDDEN ConstantMerge : public ModulePass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    ConstantMerge() : ModulePass((intptr_t)&ID) {}
+
     // run - For this pass, process all of the globals in the module,
     // eliminating duplicate constants.
     //
     bool runOnModule(Module &M);
   };
 
+  const int ConstantMerge::ID = 0;
   RegisterPass<ConstantMerge>X("constmerge","Merge Duplicate Global Constants");
 }
 


Index: llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
diff -u llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.40 llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.41
--- llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp:1.40	Mon Feb 12 20:10:56 2007
+++ llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp	Tue May  1 16:15:46 2007
@@ -76,6 +76,8 @@
     std::multimap<Function*, CallSite> CallSites;
 
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    DAE() : ModulePass((intptr_t)&ID) {}
     bool runOnModule(Module &M);
 
     virtual bool ShouldHackArguments() const { return false; }
@@ -93,14 +95,17 @@
 
     void RemoveDeadArgumentsFromFunction(Function *F);
   };
+  const int DAE::ID = 0;
   RegisterPass<DAE> X("deadargelim", "Dead Argument Elimination");
 
   /// DAH - DeadArgumentHacking pass - Same as dead argument elimination, but
   /// deletes arguments to functions which are external.  This is only for use
   /// by bugpoint.
   struct DAH : public DAE {
+    static const int ID;
     virtual bool ShouldHackArguments() const { return true; }
   };
+  const int DAH::ID = 0;
   RegisterPass<DAH> Y("deadarghaX0r",
                       "Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)");
 }


Index: llvm/lib/Transforms/IPO/DeadTypeElimination.cpp
diff -u llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.62 llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.63
--- llvm/lib/Transforms/IPO/DeadTypeElimination.cpp:1.62	Mon Feb  5 17:32:05 2007
+++ llvm/lib/Transforms/IPO/DeadTypeElimination.cpp	Tue May  1 16:15:46 2007
@@ -26,6 +26,9 @@
 
 namespace {
   struct VISIBILITY_HIDDEN DTE : public ModulePass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    DTE() : ModulePass((intptr_t)&ID) {}
+
     // doPassInitialization - For this pass, it removes global symbol table
     // entries for primitive types.  These are never used for linking in GCC and
     // they make the output uglier to look at, so we nuke them.
@@ -40,6 +43,7 @@
       AU.addRequired<FindUsedTypes>();
     }
   };
+  const int DTE::ID = 0;
   RegisterPass<DTE> X("deadtypeelim", "Dead Type Elimination");
 }
 


Index: llvm/lib/Transforms/IPO/ExtractFunction.cpp
diff -u llvm/lib/Transforms/IPO/ExtractFunction.cpp:1.20 llvm/lib/Transforms/IPO/ExtractFunction.cpp:1.21
--- llvm/lib/Transforms/IPO/ExtractFunction.cpp:1.20	Sat Feb 10 19:08:35 2007
+++ llvm/lib/Transforms/IPO/ExtractFunction.cpp	Tue May  1 16:15:46 2007
@@ -25,13 +25,16 @@
     bool deleteFunc;
     bool reLink;
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+
     /// FunctionExtractorPass - If deleteFn is true, this pass deletes as the
     /// specified function. Otherwise, it deletes as much of the module as
     /// possible, except for the function specified.
     ///
     FunctionExtractorPass(Function *F = 0, bool deleteFn = true,
                           bool relinkCallees = false)
-      : Named(F), deleteFunc(deleteFn), reLink(relinkCallees) {}
+      : ModulePass((intptr_t)&ID), Named(F), deleteFunc(deleteFn), 
+      reLink(relinkCallees) {}
 
     bool runOnModule(Module &M) {
       if (Named == 0) {
@@ -131,6 +134,7 @@
     }
   };
 
+  const int FunctionExtractorPass::ID = 0;
   RegisterPass<FunctionExtractorPass> X("extract", "Function Extractor");
 }
 


Index: llvm/lib/Transforms/IPO/GlobalDCE.cpp
diff -u llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.45 llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.46
--- llvm/lib/Transforms/IPO/GlobalDCE.cpp:1.45	Sun Apr 29 13:02:48 2007
+++ llvm/lib/Transforms/IPO/GlobalDCE.cpp	Tue May  1 16:15:46 2007
@@ -30,6 +30,9 @@
 
 namespace {
   struct VISIBILITY_HIDDEN GlobalDCE : public ModulePass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    GlobalDCE() : ModulePass((intptr_t)&ID) {}
+ 
     // run - Do the GlobalDCE pass on the specified module, optionally updating
     // the specified callgraph to reflect the changes.
     //
@@ -46,6 +49,7 @@
     bool SafeToDestroyConstant(Constant* C);
     bool RemoveUnusedGlobalValue(GlobalValue &GV);
   };
+  const int GlobalDCE::ID = 0;
   RegisterPass<GlobalDCE> X("globaldce", "Dead Global Elimination");
 }
 


Index: llvm/lib/Transforms/IPO/GlobalOpt.cpp
diff -u llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.101 llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.102
--- llvm/lib/Transforms/IPO/GlobalOpt.cpp:1.101	Thu Apr 12 13:32:50 2007
+++ llvm/lib/Transforms/IPO/GlobalOpt.cpp	Tue May  1 16:15:46 2007
@@ -50,6 +50,8 @@
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<TargetData>();
     }
+    static const int ID; // Pass identifcation, replacement for typeid
+    GlobalOpt() : ModulePass((intptr_t)&ID) {}
 
     bool runOnModule(Module &M);
 
@@ -61,6 +63,7 @@
     bool ProcessInternalGlobal(GlobalVariable *GV,Module::global_iterator &GVI);
   };
 
+  const int GlobalOpt::ID = 0;
   RegisterPass<GlobalOpt> X("globalopt", "Global Variable Optimizer");
 }
 


Index: llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
diff -u llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.23 llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.24
--- llvm/lib/Transforms/IPO/IPConstantPropagation.cpp:1.23	Mon Feb  5 17:32:05 2007
+++ llvm/lib/Transforms/IPO/IPConstantPropagation.cpp	Tue May  1 16:15:46 2007
@@ -33,11 +33,15 @@
   /// IPCP - The interprocedural constant propagation pass
   ///
   struct VISIBILITY_HIDDEN IPCP : public ModulePass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    IPCP() : ModulePass((intptr_t)&ID) {}
+
     bool runOnModule(Module &M);
   private:
     bool PropagateConstantsIntoArguments(Function &F);
     bool PropagateConstantReturn(Function &F);
   };
+  const int IPCP::ID = 0;
   RegisterPass<IPCP> X("ipconstprop", "Interprocedural constant propagation");
 }
 


Index: llvm/lib/Transforms/IPO/IndMemRemoval.cpp
diff -u llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.15 llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.16
--- llvm/lib/Transforms/IPO/IndMemRemoval.cpp:1.15	Mon Apr 16 13:10:23 2007
+++ llvm/lib/Transforms/IPO/IndMemRemoval.cpp	Tue May  1 16:15:46 2007
@@ -32,8 +32,12 @@
 namespace {
   class VISIBILITY_HIDDEN IndMemRemPass : public ModulePass {
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    IndMemRemPass() : ModulePass((intptr_t)&ID) {}
+
     virtual bool runOnModule(Module &M);
   };
+  const int IndMemRemPass::ID = 0;
   RegisterPass<IndMemRemPass> X("indmemrem","Indirect Malloc and Free Removal");
 } // end anonymous namespace
 


Index: llvm/lib/Transforms/IPO/InlineSimple.cpp
diff -u llvm/lib/Transforms/IPO/InlineSimple.cpp:1.78 llvm/lib/Transforms/IPO/InlineSimple.cpp:1.79
--- llvm/lib/Transforms/IPO/InlineSimple.cpp:1.78	Mon Feb  5 17:32:05 2007
+++ llvm/lib/Transforms/IPO/InlineSimple.cpp	Tue May  1 16:15:46 2007
@@ -54,8 +54,10 @@
   class VISIBILITY_HIDDEN SimpleInliner : public Inliner {
     std::map<const Function*, FunctionInfo> CachedFunctionInfo;
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
     int getInlineCost(CallSite CS);
   };
+  const int SimpleInliner::ID = 0;
   RegisterPass<SimpleInliner> X("inline", "Function Integration/Inlining");
 }
 


Index: llvm/lib/Transforms/IPO/Inliner.cpp
diff -u llvm/lib/Transforms/IPO/Inliner.cpp:1.37 llvm/lib/Transforms/IPO/Inliner.cpp:1.38
--- llvm/lib/Transforms/IPO/Inliner.cpp:1.37	Tue Jan 30 17:28:39 2007
+++ llvm/lib/Transforms/IPO/Inliner.cpp	Tue May  1 16:15:46 2007
@@ -36,7 +36,9 @@
         cl::desc("Control the amount of inlining to perform (default = 200)"));
 }
 
-Inliner::Inliner() : InlineThreshold(InlineLimit) {}
+const int Inliner::ID = 0;
+Inliner::Inliner() 
+  : CallGraphSCCPass((intptr_t)&ID), InlineThreshold(InlineLimit) {}
 
 /// getAnalysisUsage - For this class, we declare that we require and preserve
 /// the call graph.  If the derived class implements this method, it should


Index: llvm/lib/Transforms/IPO/Inliner.h
diff -u llvm/lib/Transforms/IPO/Inliner.h:1.9 llvm/lib/Transforms/IPO/Inliner.h:1.10
--- llvm/lib/Transforms/IPO/Inliner.h:1.9	Tue Jan 30 17:28:39 2007
+++ llvm/lib/Transforms/IPO/Inliner.h	Tue May  1 16:15:46 2007
@@ -27,6 +27,7 @@
 /// perform the inlining operations that does not depend on the policy.
 ///
 struct Inliner : public CallGraphSCCPass {
+  static const int ID;
   Inliner();
 
   /// getAnalysisUsage - For this class, we declare that we require and preserve


Index: llvm/lib/Transforms/IPO/Internalize.cpp
diff -u llvm/lib/Transforms/IPO/Internalize.cpp:1.45 llvm/lib/Transforms/IPO/Internalize.cpp:1.46
--- llvm/lib/Transforms/IPO/Internalize.cpp:1.45	Mon Apr 16 13:10:23 2007
+++ llvm/lib/Transforms/IPO/Internalize.cpp	Tue May  1 16:15:46 2007
@@ -46,16 +46,18 @@
     std::set<std::string> ExternalNames;
     bool DontInternalize;
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
     InternalizePass(bool InternalizeEverything = true);
     InternalizePass(const std::vector <const char *>& exportList);
     void LoadFile(const char *Filename);
     virtual bool runOnModule(Module &M);
   };
+  const int InternalizePass::ID = 0;
   RegisterPass<InternalizePass> X("internalize", "Internalize Global Symbols");
 } // end anonymous namespace
 
 InternalizePass::InternalizePass(bool InternalizeEverything) 
-  : DontInternalize(false){
+  : ModulePass((intptr_t)&ID), DontInternalize(false){
   if (!APIFile.empty())           // If a filename is specified, use it
     LoadFile(APIFile.c_str());
   else if (!APIList.empty())      // Else, if a list is specified, use it.
@@ -66,7 +68,7 @@
 }
 
 InternalizePass::InternalizePass(const std::vector<const char *>&exportList) 
-  : DontInternalize(false){
+  : ModulePass((intptr_t)&ID), DontInternalize(false){
   for(std::vector<const char *>::const_iterator itr = exportList.begin();
         itr != exportList.end(); itr++) {
     ExternalNames.insert(*itr);


Index: llvm/lib/Transforms/IPO/LoopExtractor.cpp
diff -u llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.24 llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.25
--- llvm/lib/Transforms/IPO/LoopExtractor.cpp:1.24	Sat Apr  7 00:31:27 2007
+++ llvm/lib/Transforms/IPO/LoopExtractor.cpp	Tue May  1 16:15:46 2007
@@ -34,9 +34,11 @@
   // Module passes to require FunctionPasses, so we can't get loop info if we're
   // not a function pass.
   struct VISIBILITY_HIDDEN LoopExtractor : public FunctionPass {
+    static const int ID; // Pass identifcation, replacement for typeid
     unsigned NumLoops;
 
-    LoopExtractor(unsigned numLoops = ~0) : NumLoops(numLoops) {}
+    LoopExtractor(unsigned numLoops = ~0) 
+      : FunctionPass((intptr_t)&ID), NumLoops(numLoops) {}
 
     virtual bool runOnFunction(Function &F);
 
@@ -49,14 +51,17 @@
     }
   };
 
+  const int LoopExtractor::ID = 0;
   RegisterPass<LoopExtractor>
   X("loop-extract", "Extract loops into new functions");
 
   /// SingleLoopExtractor - For bugpoint.
   struct SingleLoopExtractor : public LoopExtractor {
+    static const int ID; // Pass identifcation, replacement for typeid
     SingleLoopExtractor() : LoopExtractor(1) {}
   };
 
+  const int SingleLoopExtractor::ID = 0;
   RegisterPass<SingleLoopExtractor>
   Y("loop-extract-single", "Extract at most one loop into a new function");
 } // End anonymous namespace
@@ -147,11 +152,15 @@
   class BlockExtractorPass : public ModulePass {
     std::vector<BasicBlock*> BlocksToNotExtract;
   public:
-    BlockExtractorPass(std::vector<BasicBlock*> &B) : BlocksToNotExtract(B) {}
-    BlockExtractorPass() {}
+    static const int ID; // Pass identifcation, replacement for typeid
+    BlockExtractorPass(std::vector<BasicBlock*> &B) 
+      : ModulePass((intptr_t)&ID), BlocksToNotExtract(B) {}
+    BlockExtractorPass() : ModulePass((intptr_t)&ID) {}
 
     bool runOnModule(Module &M);
   };
+
+  const int BlockExtractorPass::ID = 0;
   RegisterPass<BlockExtractorPass>
   XX("extract-blocks", "Extract Basic Blocks From Module (for bugpoint use)");
 }


Index: llvm/lib/Transforms/IPO/LowerSetJmp.cpp
diff -u llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.40 llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.41
--- llvm/lib/Transforms/IPO/LowerSetJmp.cpp:1.40	Mon Feb 12 20:10:56 2007
+++ llvm/lib/Transforms/IPO/LowerSetJmp.cpp	Tue May  1 16:15:46 2007
@@ -109,6 +109,9 @@
 
     bool IsTransformableFunction(const std::string& Name);
   public:
+    static const int ID; // Pass identifcation, replacement for typeid
+    LowerSetJmp() : ModulePass((intptr_t)&ID) {}
+
     void visitCallInst(CallInst& CI);
     void visitInvokeInst(InvokeInst& II);
     void visitReturnInst(ReturnInst& RI);
@@ -118,6 +121,7 @@
     bool doInitialization(Module& M);
   };
 
+  const int LowerSetJmp::ID = 0;
   RegisterPass<LowerSetJmp> X("lowersetjmp", "Lower Set Jump");
 } // end anonymous namespace
 


Index: llvm/lib/Transforms/IPO/PruneEH.cpp
diff -u llvm/lib/Transforms/IPO/PruneEH.cpp:1.31 llvm/lib/Transforms/IPO/PruneEH.cpp:1.32
--- llvm/lib/Transforms/IPO/PruneEH.cpp:1.31	Mon Feb 12 20:10:56 2007
+++ llvm/lib/Transforms/IPO/PruneEH.cpp	Tue May  1 16:15:46 2007
@@ -35,6 +35,9 @@
 
 namespace {
   struct VISIBILITY_HIDDEN PruneEH : public CallGraphSCCPass {
+    static const int ID; // Pass identifcation, replacement for typeid
+    PruneEH() : CallGraphSCCPass((intptr_t)&ID) {}
+
     /// DoesNotUnwind - This set contains all of the functions which we have
     /// determined cannot unwind.
     std::set<CallGraphNode*> DoesNotUnwind;
@@ -49,6 +52,8 @@
     bool SimplifyFunction(Function *F);
     void DeleteBasicBlock(BasicBlock *BB);
   };
+
+  const int PruneEH::ID = 0;
   RegisterPass<PruneEH> X("prune-eh", "Remove unused exception handling info");
 }
 


Index: llvm/lib/Transforms/IPO/RaiseAllocations.cpp
diff -u llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.40 llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.41
--- llvm/lib/Transforms/IPO/RaiseAllocations.cpp:1.40	Sun Mar  4 18:00:42 2007
+++ llvm/lib/Transforms/IPO/RaiseAllocations.cpp	Tue May  1 16:15:46 2007
@@ -35,7 +35,9 @@
     Function *MallocFunc;   // Functions in the module we are processing
     Function *FreeFunc;     // Initialized by doPassInitializationVirt
   public:
-    RaiseAllocations() : MallocFunc(0), FreeFunc(0) {}
+    static const int ID; // Pass identifcation, replacement for typeid
+    RaiseAllocations() 
+      : ModulePass((intptr_t)&ID), MallocFunc(0), FreeFunc(0) {}
 
     // doPassInitialization - For the raise allocations pass, this finds a
     // declaration for malloc and free if they exist.
@@ -47,6 +49,7 @@
     bool runOnModule(Module &M);
   };
 
+  const int RaiseAllocations::ID = 0;
   RegisterPass<RaiseAllocations>
   X("raiseallocs", "Raise allocations from calls to instructions");
 }  // end anonymous namespace


Index: llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp
diff -u llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.112 llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.113
--- llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp:1.112	Sun Apr 15 00:38:40 2007
+++ llvm/lib/Transforms/IPO/SimplifyLibCalls.cpp	Tue May  1 16:15:46 2007
@@ -152,6 +152,9 @@
 /// @brief A ModulePass for optimizing well-known function calls.
 class VISIBILITY_HIDDEN SimplifyLibCalls : public ModulePass {
 public:
+  static const int ID; // Pass identifcation, replacement for typeid
+  SimplifyLibCalls() : ModulePass((intptr_t)&ID) {}
+
   /// We need some target data for accurate signature details that are
   /// target dependent. So we require target data in our AnalysisUsage.
   /// @brief Require TargetData from AnalysisUsage.
@@ -373,6 +376,7 @@
   TargetData *TD;        ///< Cached TargetData
 };
 
+const int SimplifyLibCalls::ID = 0;
 // Register the pass
 RegisterPass<SimplifyLibCalls>
 X("simplify-libcalls", "Simplify well-known library calls");


Index: llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp
diff -u llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp:1.5 llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp:1.6
--- llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp:1.5	Sun Feb 18 16:10:58 2007
+++ llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp	Tue May  1 16:15:46 2007
@@ -27,9 +27,12 @@
 /// @brief Pass to remove unused function declarations.
 class VISIBILITY_HIDDEN StripDeadPrototypesPass : public ModulePass {
 public:
-  StripDeadPrototypesPass() { }
+  static const int ID; // Pass identifcation, replacement for typeid
+  StripDeadPrototypesPass() : ModulePass((intptr_t)&ID) { }
   virtual bool runOnModule(Module &M);
 };
+
+const int StripDeadPrototypesPass::ID = 0;
 RegisterPass<StripDeadPrototypesPass> X("strip-dead-prototypes", 
                                         "Strip Unused Function Prototypes");
 


Index: llvm/lib/Transforms/IPO/StripSymbols.cpp
diff -u llvm/lib/Transforms/IPO/StripSymbols.cpp:1.15 llvm/lib/Transforms/IPO/StripSymbols.cpp:1.16
--- llvm/lib/Transforms/IPO/StripSymbols.cpp:1.15	Sun Feb 11 23:18:08 2007
+++ llvm/lib/Transforms/IPO/StripSymbols.cpp	Tue May  1 16:15:47 2007
@@ -37,7 +37,9 @@
   class VISIBILITY_HIDDEN StripSymbols : public ModulePass {
     bool OnlyDebugInfo;
   public:
-    StripSymbols(bool ODI = false) : OnlyDebugInfo(ODI) {}
+    static const int ID; // Pass identifcation, replacement for typeid
+    StripSymbols(bool ODI = false) 
+      : ModulePass((intptr_t)&ID), OnlyDebugInfo(ODI) {}
 
     virtual bool runOnModule(Module &M);
 
@@ -45,6 +47,8 @@
       AU.setPreservesAll();
     }
   };
+
+  const int StripSymbols::ID = 0;
   RegisterPass<StripSymbols> X("strip", "Strip all symbols from a module");
 }
 






More information about the llvm-commits mailing list