llvm/lib/Transforms
Chris Lattner 1902ff4d82 This break is bogus and I have no idea why it was there. Basically it prevents
memoizing code when IV's are used by phinodes outside of loops.  In a simple
example, we were getting this code before (note that r6 and r7 are isomorphic
IV's):

        li r6, 0
        or r7, r6, r6
LBB_test_3:     ; no_exit
        lwz r2, 0(r3)
        cmpw cr0, r2, r5
        or r2, r7, r7
        beq cr0, LBB_test_5     ; loopexit
LBB_test_4:     ; endif
        addi r2, r7, 1
        addi r7, r7, 1
        addi r3, r3, 4
        addi r6, r6, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

Now we get:

        li r6, 0
LBB_test_3:     ; no_exit
        or r2, r6, r6
        lwz r6, 0(r3)
        cmpw cr0, r6, r5
        beq cr0, LBB_test_6     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r2, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

this was noticed in em3d.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23602 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03 00:37:33 +00:00
..
Hello Remove trailing whitespace 2005-04-21 23:48:37 +00:00
Instrumentation Eliminate tabs and trailing spaces 2005-04-23 21:38:35 +00:00
IPO Fold isascii into a simple comparison. This speeds up 197.parser by 7.4%, 2005-09-29 06:17:27 +00:00
Scalar This break is bogus and I have no idea why it was there. Basically it prevents 2005-10-03 00:37:33 +00:00
Utils Fix VC++ warnings. 2005-10-01 03:57:14 +00:00
ExprTypeConvert.cpp ConvertibleToGEP always returns 0, remove some old crufty code which 2005-07-26 16:38:28 +00:00
LevelRaise.cpp ConvertibleToGEP always returns 0, remove some old crufty code which 2005-07-26 16:38:28 +00:00
Makefile
TransformInternals.cpp ConvertibleToGEP always returns 0, remove some old crufty code which 2005-07-26 16:38:28 +00:00
TransformInternals.h ConvertibleToGEP always returns 0, remove some old crufty code which 2005-07-26 16:38:28 +00:00