[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