summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-09-29 22:57:02 +0000
committerOwen Anderson <resistor@mac.com>2010-09-29 22:57:02 +0000
commit235859d66cf3faf7453f59b92cc4056ae1855d0d (patch)
treeb559be27bd52d193b709bf291d493fb766bef480 /include
parent3881cb7a5d54c0011b40997adcd742e1c7b91abd (diff)
Early CFG simplification can fold conditionals down to selects, which is often a good thing, but it can also
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Support/StandardPasses.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/Support/StandardPasses.h b/include/llvm/Support/StandardPasses.h
index 1b40ede14b8..6e76426b205 100644
--- a/include/llvm/Support/StandardPasses.h
+++ b/include/llvm/Support/StandardPasses.h
@@ -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.