diff options
author | Devang Patel <dpatel@apple.com> | 2006-11-07 22:35:17 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2006-11-07 22:35:17 +0000 |
commit | 889739c4d188d28c167644bced9df0f3131317d7 (patch) | |
tree | efc5f268adc540adb1e94ee7dbefbf33db1d4732 /include/llvm/PassManager.h | |
parent | b30803bc17a5be655b7c4ef356e75ae5524b0931 (diff) |
Introduce PassManagerAnalysisHelper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31522 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/PassManager.h')
-rw-r--r-- | include/llvm/PassManager.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/llvm/PassManager.h b/include/llvm/PassManager.h index 7e1d903d55..5d2aa14fbf 100644 --- a/include/llvm/PassManager.h +++ b/include/llvm/PassManager.h @@ -88,6 +88,36 @@ public: 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. |