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

Devang Patel dpatel at apple.com
Tue Nov 7 14:03:30 PST 2006



Changes in directory llvm/include/llvm:

PassManager.h updated: 1.17 -> 1.18
---
Log message:

Add ModulePassManager_New.


---
Diffs of the changes:  (+23 -0)

 PassManager.h |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+)


Index: llvm/include/llvm/PassManager.h
diff -u llvm/include/llvm/PassManager.h:1.17 llvm/include/llvm/PassManager.h:1.18
--- llvm/include/llvm/PassManager.h:1.17	Tue Nov  7 15:49:50 2006
+++ llvm/include/llvm/PassManager.h	Tue Nov  7 16:03:15 2006
@@ -143,6 +143,29 @@
   BasicBlockPassManager_New *activeBBPassManager;
 };
 
+/// FunctionPassManager_New manages FunctionPasses.
+/// It batches all Module passes  passes and function pass managers together and
+/// sequence them to process one module.
+class ModulePassManager_New: public Pass {
+ 
+public:
+  ModulePassManager_New() { activeFunctionPassManager = NULL; }
+  
+  /// Add a pass into a passmanager queue. 
+  bool addPass(Pass *p);
+  
+  /// run - Execute all of the passes scheduled for execution.  Keep track of
+  /// whether any of the passes modifies the module, and if so, return true.
+  bool runOnModule(Module &M);
+  
+private:
+  // Collection of pass that are not yet scheduled
+  std::vector<Pass *> PassVector;
+  
+  // Active Pass Manager
+  FunctionPassManager_New *activeFunctionPassManager;
+};
+
 } // End llvm namespace
 
 #endif






More information about the llvm-commits mailing list