Early CFG simplification can fold conditionals down to selects, which is often a...
authorOwen Anderson <resistor@mac.com>
Wed, 29 Sep 2010 22:57:02 +0000 (22:57 +0000)
committerOwen Anderson <resistor@mac.com>
Wed, 29 Sep 2010 22:57:02 +0000 (22:57 +0000)
hide jump threading opportunities by turning control flow into data flow.  Run an early JumpThreading pass
(adds approximately an additional 1% to optimization time on SPEC), allowing it to get a shot at these cases
first.  Fixes <rdar://problem/8447345>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115099 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/StandardPasses.h

index 1b40ede14b849744b899381bededd2af4f24b721..6e76426b2057cb6647c44e7810d3a46b3b364fd6 100644 (file)
@@ -104,6 +104,7 @@ namespace llvm {
       PM->add(createDeadArgEliminationPass());  // Dead argument elimination
     }
     PM->add(createInstructionCombiningPass());  // Clean up after IPCP & DAE
+    PM->add(createJumpThreadingPass());         // Clean up after IPCP & DAE
     PM->add(createCFGSimplificationPass());     // Clean up after IPCP & DAE
     
     // Start of CallGraph SCC passes.