[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp
Devang Patel
dpatel at apple.com
Fri Dec 8 14:47:40 PST 2006
Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.66 -> 1.67
---
Log message:
Do not keep yet another list of pass managers in PassManagerImpl_New.
Use one provided by toplevel manager.
---
Diffs of the changes: (+9 -8)
PassManager.cpp | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.66 llvm/lib/VMCore/PassManager.cpp:1.67
--- llvm/lib/VMCore/PassManager.cpp:1.66 Fri Dec 8 16:34:02 2006
+++ llvm/lib/VMCore/PassManager.cpp Fri Dec 8 16:47:25 2006
@@ -137,6 +137,10 @@
return ImmutablePasses;
}
+ void addPassManager(Pass *Manager) {
+ PassManagers.push_back(Manager);
+ }
+
private:
/// Collection of pass managers
@@ -479,9 +483,6 @@
/// Add a pass into a passmanager queue.
bool addPass(Pass *p);
- // Collection of pass managers
- std::vector<ModulePassManager_New *> PassManagers;
-
// Active Pass Manager
ModulePassManager_New *activeManager;
};
@@ -1018,7 +1019,7 @@
if (!activeManager || !activeManager->addPass(P)) {
activeManager = new ModulePassManager_New(getDepth() + 1);
- PassManagers.push_back(activeManager);
+ addPassManager(activeManager);
return activeManager->addPass(P);
}
return true;
@@ -1029,10 +1030,10 @@
bool PassManagerImpl_New::run(Module &M) {
bool Changed = false;
- for (std::vector<ModulePassManager_New *>::iterator itr = PassManagers.begin(),
- e = PassManagers.end(); itr != e; ++itr) {
- ModulePassManager_New *pm = *itr;
- Changed |= pm->runOnModule(M);
+ for (std::vector<Pass *>::iterator I = passManagersBegin(),
+ E = passManagersEnd(); I != E; ++I) {
+ ModulePassManager_New *MP = dynamic_cast<ModulePassManager_New *>(*I);
+ Changed |= MP->runOnModule(M);
}
return Changed;
}
More information about the llvm-commits
mailing list