- Nov 13, 2004
-
-
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
-
- Nov 11, 2004
-
-
Chris Lattner authored
llvm-svn: 17684
-
Reid Spencer authored
llvm-svn: 17682
-
Reid Spencer authored
explanation. llvm-svn: 17681
-
Chris Lattner authored
as IPCP opportunities. llvm-svn: 17680
-
Chris Lattner authored
llvm-svn: 17679
-
Chris Lattner authored
llvm-svn: 17678
-
Reid Spencer authored
just "install" in the runtime directory. llvm-svn: 17677
-
- Nov 10, 2004
-
-
Chris Lattner authored
This implements IPConstantProp/recursion.ll llvm-svn: 17666
-
Chris Lattner authored
llvm-svn: 17665
-
John Criswell authored
It's stosl (l for long == 32 bit). llvm-svn: 17658
-
- Nov 09, 2004
-
-
Chris Lattner authored
This allows to elimination of a bunch of global pool descriptor args from programs being pool allocated (and is also generally useful!) llvm-svn: 17657
-
Reid Spencer authored
llvm-svn: 17656
-
Reid Spencer authored
llvm-svn: 17655
-
Reid Spencer authored
* Implement createTemporaryFile for mkstemp(3) functionality * Fix isBytecodeFile to accept llvc magic # (compressed) as bytecode. llvm-svn: 17654
-
Reid Spencer authored
llvm-svn: 17652
-
John Criswell authored
This should fix the problem of not being able to link compressed LLVM bytecode files from LLVM libraries. llvm-svn: 17648
-
Reid Spencer authored
bzip2: block size 9 -> 5, reduces memory by 400Kbytes, doesn't affect speed or compression ratio on all but the largest bytecode files (>1MB) zip: level 9 -> 6, this speeds up compression time by ~30% but only degrades the compressed size by a few bytes per megabyte. Those few bytes aren't worth the effort. llvm-svn: 17647
-
Chris Lattner authored
nightly testers llvm-svn: 17646
-
Reid Spencer authored
llvm-svn: 17644
-
Reid Spencer authored
portion of the test suite. e.g.: make quck-test QUICKTEST=Regression/Bytecode llvm-svn: 17643
-
Chris Lattner authored
llvm-svn: 17642
-