[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