diff options
author | Devang Patel <dpatel@apple.com> | 2006-12-07 19:54:15 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2006-12-07 19:54:15 +0000 |
commit | dc48f203cdc5a0b8f79d28bab6219161061fd73b (patch) | |
tree | 217c9ce03d1e1428ce38d4b4c4df872712a619ea | |
parent | 06e86561a5261a59f5c391d5cc5cb4aa38dca83c (diff) |
Add a handle to the top level pass manager in PMDataManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32317 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/VMCore/PassManager.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp index bf306e9d5c..0dff67f272 100644 --- a/lib/VMCore/PassManager.cpp +++ b/lib/VMCore/PassManager.cpp @@ -160,7 +160,8 @@ void PMTopLevelManager::collectLastUses(std::vector<Pass *> &LastUses, LastUses.push_back(LUI->first); } - +//===----------------------------------------------------------------------===// +// PMDataManager /// PMDataManager provides the common place to manage the analysis data /// used by pass managers. @@ -168,6 +169,10 @@ class PMDataManager { public: + PMDataManager() : TPM(NULL) { + initializeAnalysisInfo(); + } + /// Return true IFF pass P's required analysis set does not required new /// manager. bool manageablePass(Pass *P); @@ -222,6 +227,10 @@ public: // TODO : Check if pass P is available. } + // Access toplevel manager + PMTopLevelManager *getTopLevelManager() { return TPM; } + void setTopLevelManager(PMTopLevelManager *T) { TPM = T; } + private: // Set of available Analysis. This information is used while scheduling // pass. If a pass requires an analysis which is not not available then @@ -235,6 +244,10 @@ private: // Collection of pass that are managed by this manager std::vector<Pass *> PassVector; + + // Top level manager. + // TODO : Make it a reference. + PMTopLevelManager *TPM; }; /// BasicBlockPassManager_New manages BasicBlockPass. It batches all the |