- May 06, 2005
-
-
Chris Lattner authored
llvm-svn: 21746
-
Chris Lattner authored
llvm-svn: 21745
-
Chris Lattner authored
llvm-svn: 21744
-
Chris Lattner authored
llvm-svn: 21743
-
Chris Lattner authored
varargs munging code llvm-svn: 21742
-
Chris Lattner authored
not change code after testing it without retesting! llvm-svn: 21741
-
Chris Lattner authored
llvm-svn: 21740
-
Chris Lattner authored
llvm-svn: 21739
-
Chris Lattner authored
llvm-svn: 21738
-
Chris Lattner authored
llvm-svn: 21737
-
Chris Lattner authored
llvm-svn: 21736
-
Chris Lattner authored
llvm-svn: 21735
-
Chris Lattner authored
llvm-svn: 21734
-
Chris Lattner authored
llvm-svn: 21733
-
Chris Lattner authored
llvm-svn: 21730
-
Chris Lattner authored
llvm-svn: 21729
-
Chris Lattner authored
llvm-svn: 21728
-
Chris Lattner authored
llvm-svn: 21727
-
Chris Lattner authored
llvm-svn: 21726
-
Chris Lattner authored
llvm-svn: 21723
-
Chris Lattner authored
Alexander Friedman. llvm-svn: 21722
-
Chris Lattner authored
llvm-svn: 21721
-
Chris Lattner authored
llvm-svn: 21720
-
Chris Lattner authored
llvm-svn: 21719
-
Chris Lattner authored
llvm-svn: 21718
-
Chris Lattner authored
and.ll:test31 llvm-svn: 21717
-
Chris Lattner authored
llvm-svn: 21716
-
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
-
Chris Lattner authored
llvm-svn: 21714
-
Chris Lattner authored
llvm-svn: 21713
-
Chris Lattner authored
llvm-svn: 21712
-
Chris Lattner authored
llvm-svn: 21711
-
Chris Lattner authored
llvm-svn: 21710
-
Chris Lattner authored
llvm-svn: 21709
-
Chris Lattner authored
llvm-svn: 21708
-
Misha Brukman authored
* Remove commented-out debug printouts llvm-svn: 21707
-
Misha Brukman authored
llvm-svn: 21706
-
Misha Brukman authored
* Output single-character strings as chars llvm-svn: 21705
-
Misha Brukman authored
llvm-svn: 21704
-
Misha Brukman authored
llvm-svn: 21703
-