- Oct 21, 2005
-
-
Chris Lattner authored
allow pointer types. llvm-svn: 23859
-
- Oct 20, 2005
-
-
Chris Lattner authored
inner loop like this: LBB_RateConvertMono8AltiVec_2: ; no_exit lis r2, ha16(.CPI_RateConvertMono8AltiVec_0) lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2) fmr f3, f3 fadd f0, f2, f0 fadd f3, f0, f3 fcmpu cr0, f3, f1 bge cr0, LBB_RateConvertMono8AltiVec_2 ; no_exit to an inner loop like this: LBB_RateConvertMono8AltiVec_1: ; no_exit fsub f2, f2, f1 fcmpu cr0, f2, f1 fmr f0, f2 bge cr0, LBB_RateConvertMono8AltiVec_1 ; no_exit Doh! good catch! llvm-svn: 23838
-
- Oct 18, 2005
-
-
Chris Lattner authored
all but main. If it's not set, we can still internalize, but only if an explicit symbol list is provided. llvm-svn: 23783
-
- Oct 17, 2005
-
-
Chris Lattner authored
llvm-svn: 23773
-
Chris Lattner authored
llvm-svn: 23772
-
Chris Lattner authored
llvm-svn: 23771
-
- Oct 11, 2005
-
-
Chris Lattner authored
out CSE's of base expressions it could build a result whose order was nondet. llvm-svn: 23698
-
Chris Lattner authored
from the end of a vector instead of the beginning llvm-svn: 23697
-
Chris Lattner authored
llvm-svn: 23695
-
- Oct 10, 2005
-
-
Chris Lattner authored
llvm-svn: 23677
-
- Oct 09, 2005
-
-
Chris Lattner authored
llvm-svn: 23674
-
Chris Lattner authored
llvm-svn: 23673
-
Chris Lattner authored
IV strides dependend on the pointer order of the strides in memory. Non-determinism is bad. llvm-svn: 23672
-
- Oct 07, 2005
-
-
Jeff Cohen authored
llvm-svn: 23656
-
- Oct 04, 2005
-
-
Chris Lattner authored
llvm-svn: 23618
-
Chris Lattner authored
and more correct than use_empty(). This fixes PR635 and SimplifyCFG/2005-10-02-InvokeSimplify.ll llvm-svn: 23616
-
- Oct 03, 2005
-
-
Chris Lattner authored
particular, it should realize that phi's use their values in the pred block not the phi block itself. This change turns our em3d loop from this: _test: cmpwi cr0, r4, 0 bgt cr0, LBB_test_2 ; entry.no_exit_crit_edge LBB_test_1: ; entry.loopexit_crit_edge li r2, 0 b LBB_test_6 ; loopexit LBB_test_2: ; entry.no_exit_crit_edge 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 LBB_test_5: ; endif.loopexit.loopexit_crit_edge addi r3, r2, 1 blr LBB_test_6: ; loopexit or r3, r2, r2 blr into: _test: cmpwi cr0, r4, 0 bgt cr0, LBB_test_2 ; entry.no_exit_crit_edge LBB_test_1: ; entry.loopexit_crit_edge li r2, 0 b LBB_test_5 ; loopexit LBB_test_2: ; entry.no_exit_crit_edge li r6, 0 LBB_test_3: ; no_exit lwz r2, 0(r3) cmpw cr0, r2, r5 or r2, r6, r6 beq cr0, LBB_test_5 ; loopexit LBB_test_4: ; endif addi r3, r3, 4 addi r6, r6, 1 cmpw cr0, r6, r4 or r2, r6, r6 blt cr0, LBB_test_3 ; no_exit LBB_test_5: ; loopexit or r3, r2, r2 blr Unfortunately, this is actually worse code, because the register coallescer is getting confused somehow. If it were doing its job right, it could turn the code into this: _test: cmpwi cr0, r4, 0 bgt cr0, LBB_test_2 ; entry.no_exit_crit_edge LBB_test_1: ; entry.loopexit_crit_edge li r6, 0 b LBB_test_5 ; loopexit LBB_test_2: ; entry.no_exit_crit_edge li r6, 0 LBB_test_3: ; no_exit lwz r2, 0(r3) cmpw cr0, r2, r5 beq cr0, LBB_test_5 ; loopexit LBB_test_4: ; endif addi r3, r3, 4 addi r6, r6, 1 cmpw cr0, r6, r4 blt cr0, LBB_test_3 ; no_exit LBB_test_5: ; loopexit or r3, r6, r6 blr ... which I'll work on next. :) llvm-svn: 23604
-
Chris Lattner authored
llvm-svn: 23603
-
Chris Lattner authored
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. llvm-svn: 23602
-
Chris Lattner authored
check the presplit pred, not the post-split pred. This was causing us to make the wrong decision in some cases, leaving the critical edge block in the loop. llvm-svn: 23601
-
- Oct 01, 2005
-
-
Jeff Cohen authored
llvm-svn: 23579
-
- Sep 29, 2005
-
-
Chris Lattner authored
LowerInvoke/2005-08-03-InvokeWithPHI.ll llvm-svn: 23525
-
Chris Lattner authored
bringing the LLC time down to the CBE time. llvm-svn: 23521
-
Chris Lattner authored
llvm-svn: 23519
-
Chris Lattner authored
llvm-svn: 23517
-
- Sep 28, 2005
-
-
Chris Lattner authored
llvm-svn: 23487
-
Chris Lattner authored
to right now. llvm-svn: 23485
-
Chris Lattner authored
and PR632. llvm-svn: 23484
-
- Sep 27, 2005
-
-
Chris Lattner authored
llvm-svn: 23478
-
Chris Lattner authored
is performed so it is only at most once per function that contains an invoke instead of once per invoke in the function. This patch has the following perks: 1. It fixes PR631, which complains about slowness. 2. If fixes PR240, which complains about non-volatile vars being live across setjmp/longjmps. 3. It improves (but does not fix) the jmpbuf alignment issue on itanium by not forcing the jmpbufs to always be 8-bytes off the alignment of the structure. 4. It speeds up 253.perlbmk from 338s to 13.70s (a 25x improvement!), making us now about 4% faster than GCC. Further improvements are also possible. llvm-svn: 23477
-
Chris Lattner authored
llvm-svn: 23476
-
Chris Lattner authored
llvm-svn: 23473
-
Chris Lattner authored
ctor-list-opt.ll:CTOR8 llvm-svn: 23465
-
Chris Lattner authored
potentially replaced at link-time. llvm-svn: 23463
-
Chris Lattner authored
because gccas runs globalopt before inlining. This implements ctor-list-opt.ll:CTOR7 llvm-svn: 23462
-
Chris Lattner authored
llvm-svn: 23460
-
- Sep 26, 2005
-
-
Chris Lattner authored
llvm-svn: 23453
-
Chris Lattner authored
llvm-svn: 23452
-
Chris Lattner authored
llvm-svn: 23450
-
Chris Lattner authored
ctor-list-opt.ll:CTOR5. llvm-svn: 23449
-