- Jun 20, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22265
-
- Jun 18, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22254
-
Reid Spencer authored
GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. llvm-svn: 22249
-
- Jun 17, 2005
-
-
Chris Lattner authored
It is actually always true. This fixes PR586 and Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll llvm-svn: 22236
-
Chris Lattner authored
Transforms/InstCombine/2005-06-16-RangeCrash.ll llvm-svn: 22234
-
Chris Lattner authored
llvm-svn: 22230
-
- Jun 16, 2005
-
-
Chris Lattner authored
llvm-svn: 22227
-
Chris Lattner authored
llvm-svn: 22225
-
Chris Lattner authored
is always ubyte, get the type being shifted). This unbreaks espresso llvm-svn: 22224
-
- Jun 15, 2005
-
-
Chris Lattner authored
BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll llvm-svn: 22221
-
Chris Lattner authored
Do not perform undefined out of range shifts. llvm-svn: 22217
-
Reid Spencer authored
allows test programs to succeed. Actual fix for this is forthcoming. llvm-svn: 22213
-
- Jun 13, 2005
-
-
Reid Spencer authored
fix the bzip2 test. A better hack is needed. llvm-svn: 22209
-
- Jun 09, 2005
-
-
Chris Lattner authored
llvm-svn: 22206
-
- Jun 04, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22192
-
- May 14, 2005
-
-
Chris Lattner authored
llvm-svn: 22024
-
- May 13, 2005
-
-
Chris Lattner authored
instruction. This is useful for catching optimizers that don't preserve calling conventions llvm-svn: 21928
-
Chris Lattner authored
fixes Ptrdist/anagram with x86 llcbeta llvm-svn: 21925
-
Chris Lattner authored
llvm-svn: 21924
-
- May 10, 2005
-
-
Chris Lattner authored
llvm-svn: 21839
-
Chris Lattner authored
suitable for tail calls. llvm-svn: 21836
-
- May 09, 2005
-
-
Chris Lattner authored
llvm-svn: 21809
-
- May 08, 2005
-
-
Chris Lattner authored
llvm-svn: 21788
-
Chris Lattner authored
llvm-svn: 21786
-
Chris Lattner authored
llvm-svn: 21785
-
Chris Lattner authored
This makes reassociate realize that loads should be treated as unmovable, and gives distinct ranks to distinct values defined in the same basic block, allowing reassociate to do its thing. llvm-svn: 21783
-
Chris Lattner authored
llvm-svn: 21781
-
Chris Lattner authored
llvm-svn: 21780
-
Chris Lattner authored
llvm-svn: 21778
-
Chris Lattner authored
llvm-svn: 21776
-
Chris Lattner authored
in. This tends to get cases like this: X = cast ubyte to int Y = shr int X, ... Tested by: shift.ll:test24 llvm-svn: 21775
-
Chris Lattner authored
llvm-svn: 21772
-
Chris Lattner authored
llvm-svn: 21771
-
Chris Lattner authored
llvm-svn: 21770
-
- May 07, 2005
-
-
Chris Lattner authored
of trying to do local reassociation tweaks at each level, only process an expression tree once (at its root). This does not improve the reassociation pass in any real way. llvm-svn: 21768
-
Chris Lattner authored
Reassociate/shifttest.ll llvm-svn: 21761
-
Chris Lattner authored
llvm-svn: 21759
-
- May 06, 2005
-
-
Chris Lattner authored
llvm-svn: 21737
-
Chris Lattner authored
and.ll:test31 llvm-svn: 21717
-
Chris Lattner authored
the result, turn signed shift rights into unsigned shift rights if possible. This leads to later simplification and happens *often* in 176.gcc. For example, this testcase: struct xxx { unsigned int code : 8; }; enum codes { A, B, C, D, E, F }; int foo(struct xxx *P) { if ((enum codes)P->code == A) bar(); } used to be compiled to: int %foo(%struct.xxx* %P) { %tmp.1 = getelementptr %struct.xxx* %P, int 0, uint 0 ; <uint*> [#uses=1] %tmp.2 = load uint* %tmp.1 ; <uint> [#uses=1] %tmp.3 = cast uint %tmp.2 to int ; <int> [#uses=1] %tmp.4 = shl int %tmp.3, ubyte 24 ; <int> [#uses=1] %tmp.5 = shr int %tmp.4, ubyte 24 ; <int> [#uses=1] %tmp.6 = cast int %tmp.5 to sbyte ; <sbyte> [#uses=1] %tmp.8 = seteq sbyte %tmp.6, 0 ; <bool> [#uses=1] br bool %tmp.8, label %then, label %UnifiedReturnBlock Now it is compiled to: %tmp.1 = getelementptr %struct.xxx* %P, int 0, uint 0 ; <uint*> [#uses=1] %tmp.2 = load uint* %tmp.1 ; <uint> [#uses=1] %tmp.2 = cast uint %tmp.2 to sbyte ; <sbyte> [#uses=1] %tmp.8 = seteq sbyte %tmp.2, 0 ; <bool> [#uses=1] br bool %tmp.8, label %then, label %UnifiedReturnBlock which is the difference between this: foo: subl $4, %esp movl 8(%esp), %eax movl (%eax), %eax shll $24, %eax sarl $24, %eax testb %al, %al jne .LBBfoo_2 and this: foo: subl $4, %esp movl 8(%esp), %eax movl (%eax), %eax testb %al, %al jne .LBBfoo_2 This occurs 3243 times total in the External tests, 215x in povray, 6x in each f2c'd program, 1451x in 176.gcc, 7x in crafty, 20x in perl, 25x in gap, 3x in m88ksim, 25x in ijpeg. Maybe this will cause a little jump on gcc tommorow :) llvm-svn: 21715
-