mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-13 10:32:06 +00:00
Do not keep yet another list of pass managers in PassManagerImpl_New.
Use one provided by toplevel manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32380 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e61b7478e5
commit
a083e94f79
@ -137,6 +137,10 @@ public:
|
|||||||
return ImmutablePasses;
|
return ImmutablePasses;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addPassManager(Pass *Manager) {
|
||||||
|
PassManagers.push_back(Manager);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/// Collection of pass managers
|
/// Collection of pass managers
|
||||||
@ -479,9 +483,6 @@ private:
|
|||||||
/// Add a pass into a passmanager queue.
|
/// Add a pass into a passmanager queue.
|
||||||
bool addPass(Pass *p);
|
bool addPass(Pass *p);
|
||||||
|
|
||||||
// Collection of pass managers
|
|
||||||
std::vector<ModulePassManager_New *> PassManagers;
|
|
||||||
|
|
||||||
// Active Pass Manager
|
// Active Pass Manager
|
||||||
ModulePassManager_New *activeManager;
|
ModulePassManager_New *activeManager;
|
||||||
};
|
};
|
||||||
@ -1018,7 +1019,7 @@ bool PassManagerImpl_New::addPass(Pass *P) {
|
|||||||
|
|
||||||
if (!activeManager || !activeManager->addPass(P)) {
|
if (!activeManager || !activeManager->addPass(P)) {
|
||||||
activeManager = new ModulePassManager_New(getDepth() + 1);
|
activeManager = new ModulePassManager_New(getDepth() + 1);
|
||||||
PassManagers.push_back(activeManager);
|
addPassManager(activeManager);
|
||||||
return activeManager->addPass(P);
|
return activeManager->addPass(P);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -1029,10 +1030,10 @@ bool PassManagerImpl_New::addPass(Pass *P) {
|
|||||||
bool PassManagerImpl_New::run(Module &M) {
|
bool PassManagerImpl_New::run(Module &M) {
|
||||||
|
|
||||||
bool Changed = false;
|
bool Changed = false;
|
||||||
for (std::vector<ModulePassManager_New *>::iterator itr = PassManagers.begin(),
|
for (std::vector<Pass *>::iterator I = passManagersBegin(),
|
||||||
e = PassManagers.end(); itr != e; ++itr) {
|
E = passManagersEnd(); I != E; ++I) {
|
||||||
ModulePassManager_New *pm = *itr;
|
ModulePassManager_New *MP = dynamic_cast<ModulePassManager_New *>(*I);
|
||||||
Changed |= pm->runOnModule(M);
|
Changed |= MP->runOnModule(M);
|
||||||
}
|
}
|
||||||
return Changed;
|
return Changed;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user