aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/lto2/LTOCodeGenerator.cpp4
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());