initialize and finalize function passes, pointed out by Cameron.
authorChris Lattner <sabre@nondot.org>
Sun, 22 May 2011 06:44:19 +0000 (06:44 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 22 May 2011 06:44:19 +0000 (06:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131843 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index 251edc482000fbeefd7097b0b997324a4463f64b..12f7fcb72bbadc0d6e63e50af71e91522384ef38 100644 (file)
@@ -682,9 +682,12 @@ int main(int argc, char **argv) {
   if (OptLevelO3)
     AddOptimizationPasses(Passes, *FPasses, 3);
 
-  if (OptLevelO1 || OptLevelO2 || OptLevelO3)
+  if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
+    FPasses->doInitialization();
     for (Module::iterator F = M->begin(), E = M->end(); F != E; ++F)
       FPasses->run(*F);
+    FPasses->doFinalization();
+  }
 
   // Check that the module is well formed on completion of optimization
   if (!NoVerify && !VerifyEach)