aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-11-27 05:07:53 +0000
committerChris Lattner <sabre@nondot.org>2008-11-27 05:07:53 +0000
commit98d89d1b1baf26d2ffa004b117d5d4e5f4b624d2 (patch)
tree36ed4976890972bf6b558e10395f0bd4538b4e4b /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
parente9095f55c7e2f5d88f84a2b5e94a6e6f08c03332 (diff)
downloadllvm-98d89d1b1baf26d2ffa004b117d5d4e5f4b624d2.zip
llvm-98d89d1b1baf26d2ffa004b117d5d4e5f4b624d2.tar.gz
llvm-98d89d1b1baf26d2ffa004b117d5d4e5f4b624d2.tar.bz2
Make jump threading substantially more powerful, in the following ways:
1. Make it fold blocks separated by an unconditional branch. This enables jump threading to see a broader scope. 2. Make jump threading able to eliminate locally redundant loads when they feed the branch condition of a block. This frequently occurs due to reg2mem running. 3. Make jump threading able to eliminate *partially redundant* loads when they feed the branch condition of a block. This is common in code with lots of loads and stores like C++ code and 255.vortex. This implements thread-loads.ll and rdar://6402033. Per the fixme's, several pieces of this should be moved into Transforms/Utils. llvm-svn: 60148
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
0 files changed, 0 insertions, 0 deletions