[llvm-commits] [llvm] r103493 - /llvm/trunk/lib/VMCore/PassManager.cpp

Dan Gohman gohman at apple.com
Tue May 11 12:58:43 PDT 2010


Author: djg
Date: Tue May 11 14:58:43 2010
New Revision: 103493

URL: http://llvm.org/viewvc/llvm-project?rev=103493&view=rev
Log:
Teach the regular pass manager how to materialize functions as needed.

Modified:
    llvm/trunk/lib/VMCore/PassManager.cpp

Modified: llvm/trunk/lib/VMCore/PassManager.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/PassManager.cpp?rev=103493&r1=103492&r2=103493&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/PassManager.cpp (original)
+++ llvm/trunk/lib/VMCore/PassManager.cpp Tue May 11 14:58:43 2010
@@ -1444,8 +1444,16 @@
 bool FPPassManager::runOnModule(Module &M) {
   bool Changed = doInitialization(M);
 
-  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
+  for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
+    Function &F = *I;
+    if (F.isMaterializable()) {
+      std::string errstr;
+      if (F.Materialize(&errstr))
+        report_fatal_error("Error reading bitcode file: " + Twine(errstr));
+    }
+
     runOnFunction(*I);
+  }
 
   return doFinalization(M) || Changed;
 }





More information about the llvm-commits mailing list