summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-05-27 20:42:44 +0000
committerDevang Patel <dpatel@apple.com>2008-05-27 20:42:44 +0000
commit8b16aeb879b5e3b2449285a7eb2891e6a946baea (patch)
treea4aa4fc0e9a071b53e8ed7cb1a7034696d5f7826
parent4ec1b4e3f9aaae697e8eff91fcbb7918eb70640d (diff)
downloadbcm5719-llvm-8b16aeb879b5e3b2449285a7eb2891e6a946baea.tar.gz
bcm5719-llvm-8b16aeb879b5e3b2449285a7eb2891e6a946baea.zip
Add instcombine after global optimizations.
llvm-svn: 51611
-rw-r--r--llvm/tools/lto2/LTOCodeGenerator.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/tools/lto2/LTOCodeGenerator.cpp b/llvm/tools/lto2/LTOCodeGenerator.cpp
index ae97694a920..13ba0db0f6d 100644
--- a/llvm/tools/lto2/LTOCodeGenerator.cpp
+++ b/llvm/tools/lto2/LTOCodeGenerator.cpp
@@ -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
OpenPOWER on IntegriCloud