[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp
Devang Patel
dpatel at apple.com
Fri Dec 8 14:58:03 PST 2006
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
More information about the llvm-commits
mailing list