OSDN Git Service

add an instcombine pass to clean up after heavy-lifting IP passes
authorChris Lattner <sabre@nondot.org>
Sat, 3 Feb 2007 23:06:03 +0000 (23:06 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 3 Feb 2007 23:06:03 +0000 (23:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33843 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gccld/GenerateCode.cpp

index db1caa8..e70bda3 100644 (file)
@@ -239,6 +239,12 @@ int llvm::GenerateBytecode(Module *M, int StripLevel, bool Internalize,
     // Remove unused arguments from functions...
     addPass(Passes, 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.
+    addPass(Passes, createInstructionCombiningPass());
+    
     if (!DisableInline)
       addPass(Passes, createFunctionInliningPass()); // Inline small functions