[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