diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-29 22:57:02 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-29 22:57:02 +0000 |
commit | 235859d66cf3faf7453f59b92cc4056ae1855d0d (patch) | |
tree | b559be27bd52d193b709bf291d493fb766bef480 /include/llvm | |
parent | 3881cb7a5d54c0011b40997adcd742e1c7b91abd (diff) | |
download | external_llvm-235859d66cf3faf7453f59b92cc4056ae1855d0d.zip external_llvm-235859d66cf3faf7453f59b92cc4056ae1855d0d.tar.gz external_llvm-235859d66cf3faf7453f59b92cc4056ae1855d0d.tar.bz2 |
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/llvm')
-rw-r--r-- | include/llvm/Support/StandardPasses.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/Support/StandardPasses.h b/include/llvm/Support/StandardPasses.h index 1b40ede..6e76426 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. |