diff options
author | Devang Patel <dpatel@apple.com> | 2008-05-27 20:42:44 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-05-27 20:42:44 +0000 |
commit | 3b75d20c1abd32687fd1d8c4eebcff77160e1b22 (patch) | |
tree | fa430dfd34efeb299d0856cbcaf531ad258eba60 | |
parent | 201694b0c6a08332a2878ca803f5159740f5121e (diff) |
Add instcombine after global optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51611 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/lto2/LTOCodeGenerator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/lto2/LTOCodeGenerator.cpp b/tools/lto2/LTOCodeGenerator.cpp index ae97694a92..13ba0db0f6 100644 --- a/tools/lto2/LTOCodeGenerator.cpp +++ b/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 |