- Oct 03, 2005
-
-
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
-
Chris Lattner authored
llvm-svn: 23447
-
Chris Lattner authored
ConstantFoldLoadThroughGEPConstantExpr function in the utils lib. llvm-svn: 23446
-
Chris Lattner authored
as ConstantFoldLoadThroughGEPConstantExpr. llvm-svn: 23445
-
Chris Lattner authored
pass. llvm-svn: 23444
-
Chris Lattner authored
llvm-svn: 23442
-
Chris Lattner authored
llvm-svn: 23441
-
Chris Lattner authored
llvm-svn: 23439
-
Chris Lattner authored
global ctors that are simple enough. This implements ctor-list-opt.ll:CTOR2. llvm-svn: 23437
-
Chris Lattner authored
llvm-svn: 23435
-
Chris Lattner authored
accepting the null even with a non-65535 init prio llvm-svn: 23434
-
Chris Lattner authored
Implement the start of global ctor optimization. It is currently smart enough to remove the global ctor for cases like this: struct foo { foo() {} } x; ... saving a bit of startup time for the program. llvm-svn: 23433
-
- Sep 25, 2005
-
-
Chris Lattner authored
SimplifyLibCalls/2005-05-20-sprintf-crash.ll llvm-svn: 23430
-
Chris Lattner authored
Match a bunch of idioms for sign extensions, implementing InstCombine/signext.ll llvm-svn: 23428
-
Chris Lattner authored
sprintf("%s", P)'s that have uses. s/hasNUses(0)/use_empty()/ llvm-svn: 23425
-
- Sep 23, 2005
-
-
Chris Lattner authored
llvm-svn: 23411
-
Chris Lattner authored
This implements SimplifyCFG/branch-fold.ll, and is useful on ?:/min/max heavy code llvm-svn: 23410
-
Chris Lattner authored
llvm-svn: 23408
-