Add instcombine after global optimizations.
authorDevang Patel <dpatel@apple.com>
Tue, 27 May 2008 20:42:44 +0000 (20:42 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 27 May 2008 20:42:44 +0000 (20:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51611 91177308-0d34-0410-b5e6-96231b3b80d8

tools/lto2/LTOCodeGenerator.cpp

index ae97694a9204736f54479ff51644376d950ec421..13ba0db0f6da2a0f2f6417a522efb3d69abc97dd 100644 (file)
@@ -360,6 +360,12 @@ bool LTOCodeGenerator::generateAssemblyCode(std::ostream& out, std::string& errM
     // Remove unused arguments from functions...
     passes.add(createDeadArgEliminationPass());
 
+    // Reduce the code after globalopt and ipsccp.  Both can open up significant
+    // simplification opportunities, and both can propagate functions through
+    // function pointers.  When this happens, we often have to resolve varargs
+    // calls, etc, so let instcombine do this.
+    passes.add(createInstructionCombiningPass());
+
     passes.add(createFunctionInliningPass()); // Inline small functions
 
     passes.add(createPruneEHPass());            // Remove dead EH info