- Nov 14, 2004
-
-
Brian Gaeke authored
not zero. llvm-svn: 17728
-
Chris Lattner authored
of the array is just two. This occurs 8 times in gcc, 6 times in crafty, and 12 times in 099.go. This implements ScalarRepl/sroa_two.ll llvm-svn: 17727
-
Chris Lattner authored
llvm-svn: 17726
-
Brian Gaeke authored
llvm-svn: 17725
-
Chris Lattner authored
llvm-svn: 17724
-
Brian Gaeke authored
llvm-svn: 17723
-
Brian Gaeke authored
llvm-svn: 17722
-
Brian Gaeke authored
llvm-svn: 17721
-
Tanya Lattner authored
setting path to prcontext.tcl script. Right now it searches for tclsh in your path, but this should be obtained from configure. llvm-svn: 17720
-
Chris Lattner authored
llvm-svn: 17719
-
Chris Lattner authored
argument pointers. This is only valid to do if the function already unconditionally loaded an argument or if the pointer passed in is known to be valid. Make sure to do the required checks. This fixed ArgumentPromotion/control-flow.ll and the Burg program. llvm-svn: 17718
-
Chris Lattner authored
llvm-svn: 17717
-
Chris Lattner authored
llvm-svn: 17716
-
Chris Lattner authored
llvm-svn: 17715
-
Chris Lattner authored
llvm-svn: 17714
-
Tanya Lattner authored
llvm-svn: 17713
-
Tanya Lattner authored
Adding subdirectory dg.exp files in order to be able to use dejagnu to only run specific tests (located in some subdirectory of Regression) llvm-svn: 17712
-
- Nov 13, 2004
-
-
Tanya Lattner authored
llvm-svn: 17711
-
Chris Lattner authored
CBackend/2004-11-13-FunctionPointerCast.llx llvm-svn: 17710
-
Chris Lattner authored
llvm-svn: 17709
-
Tanya Lattner authored
llvm-svn: 17708
-
Chris Lattner authored
shld is a very high latency operation. Instead of emitting it for shifts of two or three, open code the equivalent operation which is faster on athlon and P4 (by a substantial margin). For example, instead of compiling this: long long X2(long long Y) { return Y << 2; } to: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx shldl $2, %eax, %edx shll $2, %eax ret Compile it to: X2: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx shrl $30, %edx leal (%edx,%ecx,4), %edx shll $2, %eax ret Likewise, for << 3, compile to: X3: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx shrl $29, %edx leal (%edx,%ecx,8), %edx shll $3, %eax ret This matches icc, except that icc open codes the shifts as adds on the P4. llvm-svn: 17707
-
Chris Lattner authored
llvm-svn: 17706
-
Chris Lattner authored
long long X3_2(long long Y) { return Y+Y; } int X(int Y) { return Y+Y; } into: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx addl %eax, %eax adcl %edx, %edx ret X: movl 4(%esp), %eax addl %eax, %eax ret instead of: X3_2: movl 4(%esp), %eax movl 8(%esp), %edx shldl $1, %eax, %edx shll $1, %eax ret X: movl 4(%esp), %eax shll $1, %eax ret llvm-svn: 17705
-
Chris Lattner authored
for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold: Y+Y+Y+Y+Y+Y+Y+Y into %tmp.8 = shl long %Y, ubyte 3 ; <long> [#uses=1] instead of %tmp.4 = shl long %Y, ubyte 2 ; <long> [#uses=1] %tmp.12 = shl long %Y, ubyte 2 ; <long> [#uses=1] %tmp.8 = add long %tmp.4, %tmp.12 ; <long> [#uses=1] This implements add.ll:test25 Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18 llvm-svn: 17704
-
Chris Lattner authored
llvm-svn: 17703
-
Chris Lattner authored
llvm-svn: 17702
-
Chris Lattner authored
(X + (X << C2)) --> X * ((1 << C2) + 1) ((X << C2) + X) --> X * ((1 << C2) + 1) This means that we now canonicalize "Y+Y+Y" into: %tmp.2 = mul long %Y, 3 ; <long> [#uses=1] instead of: %tmp.10 = shl long %Y, ubyte 1 ; <long> [#uses=1] %tmp.6 = add long %Y, %tmp.10 ; <long> [#uses=1] llvm-svn: 17701
-
Chris Lattner authored
will actually get it. llvm-svn: 17700
-
Chris Lattner authored
llvm-svn: 17699
-
Chris Lattner authored
llvm-svn: 17698
-
Chris Lattner authored
instructions, setting DefBlock to a block it did not have dom info for. llvm-svn: 17697
-
- Nov 12, 2004
-
-
Chris Lattner authored
llvm-svn: 17696
-
Reid Spencer authored
llvm-svn: 17695
-
Reid Spencer authored
lib/Linker/LinkModules.cpp llvm-svn: 17694
-
Reid Spencer authored
lib/Linker/LinkArchives.cpp llvm-svn: 17693
-
Reid Spencer authored
* Provide the correct set of input directories to the TAGS target * Provide a CTAGS target for building Vi style ctags files. llvm-svn: 17688
-
Reid Spencer authored
llvm-svn: 17687
-
Reid Spencer authored
llvm-svn: 17686
-
Reid Spencer authored
llvm-svn: 17685
-