- Aug 25, 2006
-
-
Owen Anderson authored
llvm-svn: 29874
-
Owen Anderson authored
I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly tester. llvm-svn: 29868
-
Owen Anderson authored
forgot to put in the analysis usage. llvm-svn: 29867
-
- Aug 18, 2006
-
-
Reid Spencer authored
llvm-svn: 29765
-
- Jul 14, 2006
-
-
Owen Anderson authored
This should fix PR 831. llvm-svn: 29141
-
- Jul 13, 2006
-
-
Chris Lattner authored
llvm-svn: 29134
-
- Jul 12, 2006
-
-
Owen Anderson authored
llvm-svn: 29126
-
- Jul 11, 2006
-
-
Owen Anderson authored
didn't start showing up until after the recent instcombine fixes. llvm-svn: 29102
-
- Jun 27, 2006
-
-
Owen Anderson authored
will make Shootout-C/nestedloop faster. llvm-svn: 28924
-
- Jun 17, 2006
-
-
Chris Lattner authored
"LCSSA" phi node causes indvars to break dominance properties. This fixes causes indvars to avoid inserting aggressive code in this case, instead indvars should be fixed to be more aggressive in the face of lcssa phi's. llvm-svn: 28850
-
- Nov 18, 2005
-
-
Chris Lattner authored
half the problem. llvm-svn: 24414
-
- Nov 17, 2005
-
-
Chris Lattner authored
compiling mysql reported by Ted Kremenek. llvm-svn: 24402
-
- Aug 10, 2005
-
-
Chris Lattner authored
constant stride. This implements Transforms/IndVarsSimplify/variable-stride-ivs.ll llvm-svn: 22744
-
- Jul 30, 2005
-
-
Nate Begeman authored
other passes may use it. llvm-svn: 22557
-
- Jun 15, 2005
-
-
Chris Lattner authored
BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll llvm-svn: 22221
-
- Apr 22, 2005
-
-
Misha Brukman authored
llvm-svn: 21427
-
- Feb 14, 2005
-
-
Chris Lattner authored
llvm-svn: 20181
-
- Feb 12, 2005
-
-
Chris Lattner authored
and PR504. llvm-svn: 20129
-
- Oct 27, 2004
-
-
Chris Lattner authored
and work better with VC++. Patch contributed by Morten Ofstad! llvm-svn: 17281
-
- Oct 12, 2004
-
-
Chris Lattner authored
marker from one ilist into the middle of another basic block! llvm-svn: 16925
-
Chris Lattner authored
pointer recurrences into expressions from this: %P_addr.0.i.0 = phi sbyte* [ getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), %entry ], [ %inc.0.i, %no_exit.i ] %inc.0.i = getelementptr sbyte* %P_addr.0.i.0, int 1 ; <sbyte*> [#uses=2] into this: %inc.0.i = getelementptr sbyte* getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), int %inc.0.i.rec Actually create something nice, like this: %inc.0.i = getelementptr [8 x sbyte]* %.str_1, int 0, int %inc.0.i.rec llvm-svn: 16924
-
- Sep 20, 2004
-
-
Chris Lattner authored
llvm-svn: 16432
-
- Sep 15, 2004
-
-
Reid Spencer authored
Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368
-
- Sep 02, 2004
-
-
Reid Spencer authored
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
-
- Jul 26, 2004
-
-
Chris Lattner authored
llvm-svn: 15227
-
- Jun 24, 2004
-
-
Chris Lattner authored
Second, disable substitution of quadratic addrec expressions to avoid putting multiplies in loops! llvm-svn: 14358
-
- Jun 20, 2004
-
-
Chris Lattner authored
llvm-svn: 14262
-
- Jun 19, 2004
-
-
Chris Lattner authored
llvm-svn: 14249
-
- Apr 23, 2004
-
-
Chris Lattner authored
still room for cleanup, but at least the code modification is out of the analysis now. llvm-svn: 13135
-
- Apr 22, 2004
-
-
Chris Lattner authored
llvm-svn: 13108
-
Chris Lattner authored
llvm-svn: 13106
-
Chris Lattner authored
loop. This eliminates the extra add from the previous case, but it's not clear that this will be a performance win overall. Tommorows test results will tell. :) llvm-svn: 13103
-
Chris Lattner authored
types in them. Instead of creating an induction variable for all types, it creates a single induction variable and casts to the other sizes. This generates this code: no_exit: ; preds = %entry, %no_exit %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=4] *** %j.0.0 = cast uint %indvar to short ; <short> [#uses=1] %indvar = cast uint %indvar to int ; <int> [#uses=1] %tmp.7 = getelementptr short* %P, uint %indvar ; <short*> [#uses=1] store short %j.0.0, short* %tmp.7 %inc.0 = add int %indvar, 1 ; <int> [#uses=2] %tmp.2 = setlt int %inc.0, %N ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1] br bool %tmp.2, label %no_exit, label %loopexit instead of: no_exit: ; preds = %entry, %no_exit %indvar = phi ushort [ %indvar.next, %no_exit ], [ 0, %entry ] ; <ushort> [#uses=2] *** %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=3] %indvar = cast uint %indvar to int ; <int> [#uses=1] %indvar = cast ushort %indvar to short ; <short> [#uses=1] %tmp.7 = getelementptr short* %P, uint %indvar ; <short*> [#uses=1] store short %indvar, short* %tmp.7 %inc.0 = add int %indvar, 1 ; <int> [#uses=2] %tmp.2 = setlt int %inc.0, %N ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 *** %indvar.next = add ushort %indvar, 1 br bool %tmp.2, label %no_exit, label %loopexit This is an improvement in register pressure, but probably doesn't happen that often. The more important fix will be to get rid of the redundant add. llvm-svn: 13101
-
- Apr 19, 2004
-
-
Chris Lattner authored
structure to being dynamically computed on demand. This makes updating loop information MUCH easier. llvm-svn: 13045
-
- Apr 17, 2004
-
-
Chris Lattner authored
exit values. llvm-svn: 13018
-
Chris Lattner authored
the trip count for the loop, insert one so that we can canonicalize the exit condition. llvm-svn: 13015
-
- Apr 16, 2004
-
-
Chris Lattner authored
llvm-svn: 12980
-
- Apr 15, 2004
-
-
Chris Lattner authored
the back-edge block, we must check the preincremented value. llvm-svn: 12968
-
Chris Lattner authored
Instead of producing code like this: Loop: X = phi 0, X2 ... X2 = X + 1 if (X != N-1) goto Loop We now generate code that looks like this: Loop: X = phi 0, X2 ... X2 = X + 1 if (X2 != N) goto Loop This has two big advantages: 1. The trip count of the loop is now explicit in the code, allowing the direct implementation of Loop::getTripCount() 2. This reduces register pressure in the loop, and allows X and X2 to be put into the same register. As a consequence of the second point, the code we generate for loops went from: .LBB2: # no_exit.1 ... mov %EDI, %ESI inc %EDI cmp %ESI, 2 mov %ESI, %EDI jne .LBB2 # PC rel: no_exit.1 To: .LBB2: # no_exit.1 ... inc %ESI cmp %ESI, 3 jne .LBB2 # PC rel: no_exit.1 ... which has two fewer moves, and uses one less register. llvm-svn: 12961
-
- Apr 02, 2004
-
-
Chris Lattner authored
This also implements some new features for the indvars pass, including linear function test replacement, exit value substitution, and it works with a much more general class of induction variables and loops. llvm-svn: 12620
-