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

Devang Patel dpatel at apple.com
Tue Nov 7 13:32:15 PST 2006



Changes in directory llvm/include/llvm:

PassManager.h updated: 1.15 -> 1.16
---
Log message:

Add BasicBlockPassManager_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.15 llvm/include/llvm/PassManager.h:1.16
--- llvm/include/llvm/PassManager.h:1.15	Sun Sep  3 23:07:39 2006
+++ llvm/include/llvm/PassManager.h	Tue Nov  7 15:31:57 2006
@@ -17,6 +17,9 @@
 #ifndef LLVM_PASSMANAGER_H
 #define LLVM_PASSMANAGER_H
 
+#include "llvm/Pass.h"
+#include <vector>
+
 namespace llvm {
 
 class Pass;
@@ -85,6 +88,26 @@
   bool doFinalization();
 };
 
+/// BasicBlockpassManager_New manages BasicBlockPass. It batches all the
+/// pass together and sequence them to process one basic block before
+/// processing next basic block.
+class BasicBlockPassManager_New: public Pass {
+
+public:
+  BasicBlockPassManager_New() { }
+
+  /// Add a pass into a passmanager queue. 
+  bool addPass(Pass *p);
+  
+  /// Execute all of the passes scheduled for execution.  Keep track of
+  /// whether any of the passes modifies the function, and if so, return true.
+  bool runOnFunction(Function &F);
+
+private:
+  // Collection of pass that are not yet scheduled
+  std::vector<Pass *> PassVector;
+};
+
 } // End llvm namespace
 
 #endif






More information about the llvm-commits mailing list