summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit6d33f59952b005d895fa840569e81bebcc089838 (patch)
treebdd4800fea1874e9b5220ce01e0c770defdda732 /llvm/include
parent4a010fd1eac964a9d60fa87dfc1841dcb666335b (diff)
downloadbcm5719-llvm-6d33f59952b005d895fa840569e81bebcc089838.tar.gz
bcm5719-llvm-6d33f59952b005d895fa840569e81bebcc089838.zip
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>. llvm-svn: 115099
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Support/StandardPasses.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/include/llvm/Support/StandardPasses.h b/llvm/include/llvm/Support/StandardPasses.h
index 1b40ede14b8..6e76426b205 100644
--- a/llvm/include/llvm/Support/StandardPasses.h
+++ b/llvm/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.
OpenPOWER on IntegriCloud