Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.67 -> 1.68 --- Log message: Implement top level FunctionPassManager::run(Function &F) --- Diffs of the changes: (+15 -1) PassManager.cpp | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletion(-) Index: llvm/lib/VMCore/PassManager.cpp diff -u llvm/lib/VMCore/PassManager.cpp:1.67 llvm/lib/VMCore/PassManager.cpp:1.68 --- llvm/lib/VMCore/PassManager.cpp:1.67 Fri Dec 8 16:47:25 2006 +++ llvm/lib/VMCore/PassManager.cpp Fri Dec 8 16:57:48 2006 @@ -401,6 +401,7 @@ /// 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 @@ cerr << "Error reading bytecode file: " << errstr << "\n"; abort(); } - return FPM->runOnFunction(F); + return FPM->run(F); } @@ -934,6 +935,19 @@ 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 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits