diff options
-rw-r--r-- | tools/lto2/LTOCodeGenerator.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/lto2/LTOCodeGenerator.cpp b/tools/lto2/LTOCodeGenerator.cpp index 4c5850acb4..b7962be50b 100644 --- a/tools/lto2/LTOCodeGenerator.cpp +++ b/tools/lto2/LTOCodeGenerator.cpp @@ -370,7 +370,7 @@ bool LTOCodeGenerator::generateAssemblyCode(std::ostream& out, std::string& errM // The IPO passes may leave cruft around. Clean up after them. passes.add(createInstructionCombiningPass()); - + passes.add(createJumpThreadingPass()); // Thread jumps. passes.add(createScalarReplAggregatesPass()); // Break up allocas // Run a few AA driven optimizations here and now, to cleanup the code. @@ -384,6 +384,8 @@ bool LTOCodeGenerator::generateAssemblyCode(std::ostream& out, std::string& errM // Cleanup and simplify the code after the scalar optimizations. passes.add(createInstructionCombiningPass()); + passes.add(createJumpThreadingPass()); // Thread jumps. + // Delete basic blocks, which optimization passes may have killed... passes.add(createCFGSimplificationPass()); |