[llvm-commits] CVS: llvm/include/llvm/PassManager.h
Devang Patel
dpatel at apple.com
Tue Nov 7 14:35:45 PST 2006
Changes in directory llvm/include/llvm:
PassManager.h updated: 1.20 -> 1.21
---
Log message:
Introduce PassManagerAnalysisHelper.
---
Diffs of the changes: (+30 -0)
PassManager.h | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+)
Index: llvm/include/llvm/PassManager.h
diff -u llvm/include/llvm/PassManager.h:1.20 llvm/include/llvm/PassManager.h:1.21
--- llvm/include/llvm/PassManager.h:1.20 Tue Nov 7 16:23:34 2006
+++ llvm/include/llvm/PassManager.h Tue Nov 7 16:35:17 2006
@@ -88,6 +88,36 @@
bool doFinalization();
};
+/// PassManagerAnalysisHelper helpes pass manager analysis required by
+/// the managed passes.
+class PassManagerAnalysisHelper {
+
+public:
+
+ /// Return TRUE IFF pass P's required analysis set does not required new
+ /// manager.
+ bool manageablePass(Pass *P);
+
+ /// Return TRUE iff AnalysisID AID is currently available.
+ bool analysisCurrentlyAvailable(AnalysisID AID);
+
+ /// Augment RequiredSet by adding analysis required by pass P.
+ void noteDownRequiredAnalysis(Pass *P);
+
+ /// Remove AnalysisID from the RequiredSet
+ void removeAnalysis(AnalysisID AID);
+
+ /// Remove Analysis that is not preserved by the pass
+ void removeNotPreservedAnalysis(Pass *P);
+
+ /// Remove dead passes
+ void removeDeadPasses() { /* TODO : Implement */ }
+
+private:
+ // Required set of analysis for the passes managed by this manager
+ std::vector<AnalysisID> RequiredSet;
+};
+
/// BasicBlockpassManager_New manages BasicBlockPass. It batches all the
/// pass together and sequence them to process one basic block before
/// processing next basic block.
More information about the llvm-commits
mailing list