- Sep 14, 2005
-
-
Chris Lattner authored
'set's. llvm-svn: 23343
-
Chris Lattner authored
llvm-svn: 23342
-
Chris Lattner authored
llvm-svn: 23341
-
Chris Lattner authored
methods. llvm-svn: 23340
-
Chris Lattner authored
can use/define class methods llvm-svn: 23339
-
- Sep 13, 2005
-
-
Chris Lattner authored
llvm-svn: 23338
-
Chris Lattner authored
llvm-svn: 23337
-
Chris Lattner authored
methods. Use it to simplify some code. llvm-svn: 23336
-
Chris Lattner authored
llvm-svn: 23335
-
Chris Lattner authored
with incoming arguments instead of the pregs themselves. This fixes the scheduler from causing problems by moving a copyfromreg for an argument to after a select_cc node (now it can, and bad things won't happen). llvm-svn: 23334
-
Chris Lattner authored
llvm-svn: 23333
-
Chris Lattner authored
llvm-svn: 23332
-
Chris Lattner authored
into particular vregs, emit copies into the entry MBB. llvm-svn: 23331
-
Chris Lattner authored
llvm-svn: 23330
-
Chris Lattner authored
llvm-svn: 23329
-
Chris Lattner authored
This is useful for 178.galgel where resolution of dope vectors (by the optimizer) causes the scales to become apparent. llvm-svn: 23328
-
Chris Lattner authored
Fix an issue where LSR would miss rewriting a use of an IV expression by a PHI node that is not the original PHI. This fixes up a dot-product loop in galgel, speeding it up from 18.47s to 16.13s. llvm-svn: 23327
-
Duraid Madina authored
llvm-svn: 23326
-
Chris Lattner authored
indentation, no functionality change llvm-svn: 23325
-
Chris Lattner authored
if () { store A -> P; } else { store B -> P; } into a PHI node with one store, in the most trival case. This implements load.ll:test10. llvm-svn: 23324
-
Chris Lattner authored
llvm-svn: 23323
-
Chris Lattner authored
each other. This implements InstCombine/load.ll:test9 llvm-svn: 23322
-
Chris Lattner authored
llvm-svn: 23321
-
Chris Lattner authored
load are exactly consequtive. This is picked up by other passes, but this triggers thousands of times in fortran programs that use static locals (and is thus a compile-time speedup). llvm-svn: 23320
-
- Sep 12, 2005
-
-
Chris Lattner authored
llvm-svn: 23319
-
Chris Lattner authored
code for IV uses outside of loops that are not dominated by the latch block. We should only convert these uses to use the post-inc value if they ARE dominated by the latch block. Also use a new LoopInfo method to simplify some code. This fixes Transforms/LoopStrengthReduce/2005-09-12-UsesOutOutsideOfLoop.ll llvm-svn: 23318
-
Chris Lattner authored
llvm-svn: 23317
-
Chris Lattner authored
llvm-svn: 23316
-
Chris Lattner authored
llvm-svn: 23315
-
Chris Lattner authored
llvm-svn: 23314
-
Chris Lattner authored
li r2, 0 LBB_test_1: ; no_exit.2 li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmpwi cr0, r2, 701 blt cr0, LBB_test_1 ; no_exit.2 LBB_test_2: ; loopexit.2.loopexit addi r2, r2, 1 stw r2, 0(r4) blr [zion ~/llvm]$ cat > ~/xx Uses of IV's outside of the loop should use hte post-incremented version of the IV, not the preincremented version. This helps many loops (e.g. in sixtrack) which used to generate code like this (this is the code from the dont-hoist-simple-loop-constants.ll testcase): _test: li r2, 0 **** IV starts at 0 LBB_test_1: ; no_exit.2 or r5, r2, r2 **** Copy for loop exit li r2, 0 stw r2, 0(r3) addi r3, r3, 4 addi r2, r5, 1 addi r6, r5, 2 **** IV+2 cmpwi cr0, r6, 701 blt cr0, LBB_test_1 ; no_exit.2 LBB_test_2: ; loopexit.2.loopexit addi r2, r5, 2 **** IV+2 stw r2, 0(r4) blr And now generated code like this: _test: li r2, 1 *** IV starts at 1 LBB_test_1: ; no_exit.2 li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmpwi cr0, r2, 701 *** IV.postinc + 0 blt cr0, LBB_test_1 LBB_test_2: ; loopexit.2.loopexit stw r2, 0(r4) *** IV.postinc + 0 blr llvm-svn: 23313
-
Chris Lattner authored
llvm-svn: 23312
-
Chris Lattner authored
llvm-svn: 23311
-
Chris Lattner authored
llvm-svn: 23310
-
- Sep 11, 2005
-
-
Chris Lattner authored
llvm-svn: 23309
-
- Sep 10, 2005
-
-
Jeff Cohen authored
llvm-svn: 23308
-
Jeff Cohen authored
llvm-svn: 23307
-
Chris Lattner authored
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. llvm-svn: 23306
-
Chris Lattner authored
llvm-svn: 23305
-
Chris Lattner authored
llvm-svn: 23304
-