[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp

Devang Patel dpatel at apple.com
Thu Dec 7 11:54:30 PST 2006



Changes in directory llvm/lib/VMCore:

PassManager.cpp updated: 1.41 -> 1.42
---
Log message:

Add a handle to the top level pass manager in PMDataManager.


---
Diffs of the changes:  (+14 -1)

 PassManager.cpp |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletion(-)


Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.41 llvm/lib/VMCore/PassManager.cpp:1.42
--- llvm/lib/VMCore/PassManager.cpp:1.41	Thu Dec  7 13:39:39 2006
+++ llvm/lib/VMCore/PassManager.cpp	Thu Dec  7 13:54:15 2006
@@ -160,7 +160,8 @@
         LastUses.push_back(LUI->first);
 }
 
-
+//===----------------------------------------------------------------------===//
+// PMDataManager
 
 /// PMDataManager provides the common place to manage the analysis data
 /// used by pass managers.
@@ -168,6 +169,10 @@
 
 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 @@
     // 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 @@
 
   // 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






More information about the llvm-commits mailing list