Add ImmutablePass into the list of info managed by top level pass
authorDevang Patel <dpatel@apple.com>
Thu, 7 Dec 2006 20:51:18 +0000 (20:51 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 7 Dec 2006 20:51:18 +0000 (20:51 +0000)
manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32322 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/PassManager.cpp

index 77820ad6a8e6bd41d4e3c57f7ec18769ada19395..18094320d6fa1be040164e2cff0defdec314fddb 100644 (file)
@@ -122,6 +122,16 @@ public:
     PassManagers.clear();
   }
 
+  /// Add immutable pass and initialize it.
+  inline void addImmutablePass(ImmutablePass *P) {
+    P->initializePass();
+    ImmutablePasses.push_back(P);
+  }
+
+  inline std::vector<ImmutablePass *>& getImmutablePasses() {
+    return ImmutablePasses;
+  }
+
 private:
   
   /// Collection of pass managers
@@ -130,6 +140,9 @@ private:
   // Map to keep track of last user of the analysis pass.
   // LastUser->second is the last user of Lastuser->first.
   std::map<Pass *, Pass *> LastUser;
+
+  /// Immutable passes are managed by top level manager.
+  std::vector<ImmutablePass *> ImmutablePasses;
 };
   
 /// Set pass P as the last user of the given analysis passes.