diff options
author | Chris Lattner <sabre@nondot.org> | 2005-09-10 01:18:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-09-10 01:18:45 +0000 |
commit | 7259df3ab862d378427cf96cd69d1bc69aa2e5cb (patch) | |
tree | 70af6869845571b4d8b5ff2d8c1453d9a9257b66 /utils/TableGen/DAGISelEmitter.h | |
parent | be040812401b48ee2cb6886e5ffef448c38cf375 (diff) | |
download | external_llvm-7259df3ab862d378427cf96cd69d1bc69aa2e5cb.zip external_llvm-7259df3ab862d378427cf96cd69d1bc69aa2e5cb.tar.gz external_llvm-7259df3ab862d378427cf96cd69d1bc69aa2e5cb.tar.bz2 |
implement Transforms/LoopStrengthReduce/dont-hoist-simple-loop-constants.ll.
We used to emit this code for it:
_test:
li r2, 1 ;; Value tying up a register for the whole loop
li r5, 0
LBB_test_1: ; no_exit.2
or r6, r5, r5
li r5, 0
stw r5, 0(r3)
addi r5, r6, 1
addi r3, r3, 4
add r7, r2, r5 ;; should be addi r7, r5, 1
cmpwi cr0, r7, 701
blt cr0, LBB_test_1 ; no_exit.2
LBB_test_2: ; loopexit.2.loopexit
addi r2, r6, 2
stw r2, 0(r4)
blr
now we emit this:
_test:
li r2, 0
LBB_test_1: ; no_exit.2
or r5, r2, r2
li r2, 0
stw r2, 0(r3)
addi r3, r3, 4
addi r2, r5, 1
addi r6, r5, 2 ;; whoa, fold those adds!
cmpwi cr0, r6, 701
blt cr0, LBB_test_1 ; no_exit.2
LBB_test_2: ; loopexit.2.loopexit
addi r2, r5, 2
stw r2, 0(r4)
blr
more improvement coming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.h')
0 files changed, 0 insertions, 0 deletions