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 | 69e067fdd86d34cb81ccdffb82415b4f89144218 (patch) | |
tree | d46bd6e3e971ab351b6c1d2cd5fa268d3da580bd /lib/Transforms/Utils/Local.cpp | |
parent | dc52cf48dc8f790de2634dcc5b4f6fe203f4c765 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60148 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/Local.cpp')
0 files changed, 0 insertions, 0 deletions