[llvm-commits] CVS: llvm/include/llvm/Pass.h

Devang Patel dpatel at apple.com
Tue Jan 16 11:46:26 PST 2007



Changes in directory llvm/include/llvm:

Pass.h updated: 1.73 -> 1.74
---
Log message:

Setup pass manager before scheduling required analysis.


---
Diffs of the changes:  (+9 -2)

 Pass.h |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/Pass.h
diff -u llvm/include/llvm/Pass.h:1.73 llvm/include/llvm/Pass.h:1.74
--- llvm/include/llvm/Pass.h:1.73	Wed Jan 10 19:10:24 2007
+++ llvm/include/llvm/Pass.h	Tue Jan 16 13:46:08 2007
@@ -108,6 +108,8 @@
   void dump() const; // dump - call print(std::cerr, 0);
 
   virtual void assignPassManager(PMStack &PMS) {}
+  virtual void setupPassManager(PMStack &PMS) {}
+
   // Access AnalysisResolver
   inline void setResolver(AnalysisResolver *AR) { Resolver = AR; }
   inline AnalysisResolver *getResolver() { return Resolver; }
@@ -201,6 +203,7 @@
   virtual bool runPass(BasicBlock&) { return false; }
 
   virtual void assignPassManager(PMStack &PMS);
+
   // Force out-of-line virtual method.
   virtual ~ModulePass();
 };
@@ -267,6 +270,7 @@
   bool run(Function &F);
 
   virtual void assignPassManager(PMStack &PMS);
+  virtual void setupPassManager(PMStack &PMS);
 };
 
 
@@ -321,6 +325,7 @@
   virtual bool runPass(BasicBlock &BB);
 
   virtual void assignPassManager(PMStack &PMS);
+  virtual void setupPassManager(PMStack &PMS);
 };
 
 /// Different types of internal pass managers. External pass managers
@@ -337,8 +342,10 @@
 
 /// PMStack
 /// Top level pass manager (see PasManager.cpp) maintains active Pass Managers 
-/// using PMStack. Each Pass implements assignPassManager() to connect itself
-/// with appropriate manager. assignPassManager() walks PMStack to find
+/// using PMStack. Each Pass implements setupPassManager() and 
+/// assignPassManager() to connect itself with appropriate manager. 
+/// setupPassManager() creates new pass manager if required before adding 
+/// required analysis passes. assignPassManager() walks PMStack to find
 /// suitable manager.
 ///
 /// PMStack is just a wrapper around standard deque that overrides pop() and






More information about the llvm-commits mailing list