diff options
author | Chris Lattner <sabre@nondot.org> | 2008-11-27 05:07:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-11-27 05:07:53 +0000 |
commit | 98d89d1b1baf26d2ffa004b117d5d4e5f4b624d2 (patch) | |
tree | 36ed4976890972bf6b558e10395f0bd4538b4e4b /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | |
parent | e9095f55c7e2f5d88f84a2b5e94a6e6f08c03332 (diff) | |
download | llvm-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