mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-27 13:20:29 +00:00
Implement top level FunctionPassManager::run(Function &F)
llvm-svn: 32381
This commit is contained in:
parent
ddcef36da4
commit
1342f262e3
@ -401,6 +401,7 @@ public:
|
||||
/// so, return true.
|
||||
bool runOnModule(Module &M);
|
||||
bool runOnFunction(Function &F);
|
||||
bool run(Function &F);
|
||||
|
||||
/// doInitialization - Run all of the initializers for the function passes.
|
||||
///
|
||||
@ -800,7 +801,7 @@ bool FunctionPassManager_New::run(Function &F) {
|
||||
cerr << "Error reading bytecode file: " << errstr << "\n";
|
||||
abort();
|
||||
}
|
||||
return FPM->runOnFunction(F);
|
||||
return FPM->run(F);
|
||||
}
|
||||
|
||||
|
||||
@ -934,6 +935,19 @@ inline bool FunctionPassManagerImpl_New::doFinalization(Module &M) {
|
||||
return Changed;
|
||||
}
|
||||
|
||||
// Execute all the passes managed by this top level manager.
|
||||
// Return true if any function is modified by a pass.
|
||||
bool FunctionPassManagerImpl_New::run(Function &F) {
|
||||
|
||||
bool Changed = false;
|
||||
for (std::vector<Pass *>::iterator I = passManagersBegin(),
|
||||
E = passManagersEnd(); I != E; ++I) {
|
||||
FunctionPass *FP = dynamic_cast<FunctionPass *>(*I);
|
||||
Changed |= FP->runOnFunction(F);
|
||||
}
|
||||
return Changed;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ModulePassManager implementation
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user