| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
which is undefined. "0" isn't a power of 2.
llvm-svn: 30947
|
| |
|
|
| |
llvm-svn: 30945
|
| |
|
|
|
|
| |
it just deletes empty MBB's. Soon it will do more :)
llvm-svn: 30941
|
| |
|
|
| |
llvm-svn: 30939
|
| |
|
|
| |
llvm-svn: 30927
|
| |
|
|
| |
llvm-svn: 30926
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
apply to rems as well as divs. This fixes PR945 and speeds up ReedSolomon
from 14.57s to 10.90s (which is now faster than gcc).
It compiles CodeGen/X86/rem.ll into:
_test1:
subl $4, %esp
movl %esi, (%esp)
movl $2155905153, %ecx
movl 8(%esp), %esi
movl %esi, %eax
imull %ecx
addl %esi, %edx
movl %edx, %eax
shrl $31, %eax
sarl $7, %edx
addl %eax, %edx
imull $255, %edx, %eax
subl %eax, %esi
movl %esi, %eax
movl (%esp), %esi
addl $4, %esp
ret
_test2:
movl 4(%esp), %eax
movl %eax, %ecx
sarl $31, %ecx
shrl $24, %ecx
addl %eax, %ecx
andl $4294967040, %ecx
subl %ecx, %eax
ret
_test3:
subl $4, %esp
movl %esi, (%esp)
movl $2155905153, %ecx
movl 8(%esp), %esi
movl %esi, %eax
mull %ecx
shrl $7, %edx
imull $255, %edx, %eax
subl %eax, %esi
movl %esi, %eax
movl (%esp), %esi
addl $4, %esp
ret
instead of div/idiv instructions.
llvm-svn: 30920
|
| |
|
|
| |
llvm-svn: 30916
|
| |
|
|
| |
llvm-svn: 30915
|
| |
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061009/038518.html
llvm-svn: 30906
|
| |
|
|
| |
llvm-svn: 30903
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It's turning:
movl -24(%ebp), %esp
subl $16, %esp
movl -24(%ebp), %ecx
into
movl -24(%ebp), %esp
subl $16, %esp
movl %esp, (%esp)
llvm-svn: 30902
|
| |
|
|
|
|
| |
the stack slot. This fixes PR943.
llvm-svn: 30898
|
| |
|
|
| |
llvm-svn: 30889
|
| |
|
|
| |
llvm-svn: 30884
|
| |
|
|
| |
llvm-svn: 30883
|
| |
|
|
| |
llvm-svn: 30880
|
| |
|
|
| |
llvm-svn: 30878
|
| |
|
|
|
|
| |
As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
llvm-svn: 30873
|
| |
|
|
| |
llvm-svn: 30869
|
| |
|
|
|
|
| |
SelectionDAGCSEMap ID.
llvm-svn: 30866
|
| |
|
|
| |
llvm-svn: 30861
|
| |
|
|
| |
llvm-svn: 30860
|
| |
|
|
| |
llvm-svn: 30857
|
| |
|
|
| |
llvm-svn: 30853
|
| |
|
|
| |
llvm-svn: 30844
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if TF depends on A and B, and A depends on B, TF just needs to depend on
A. With Jim's alias-analysis stuff enabled, this compiles the testcase in
PR892 into:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %edx, 28(%esp)
movl %eax, 32(%esp)
movl %eax, 24(%esp)
movl %edx, 36(%esp)
movl 52(%esp), %ecx
movl %ecx, 4(%esp)
movl %eax, 8(%esp)
movl %edx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
instead of:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %eax, 24(%esp)
movl %edx, 28(%esp)
movl 24(%esp), %eax
movl %eax, 32(%esp)
movl 28(%esp), %eax
movl %eax, 36(%esp)
movl 32(%esp), %eax
movl 36(%esp), %ecx
movl 52(%esp), %edx
movl %edx, 4(%esp)
movl %eax, 8(%esp)
movl %ecx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
llvm-svn: 30821
|
| |
|
|
| |
llvm-svn: 30818
|
| |
|
|
|
|
| |
part was always forced to be sextload, even when we needed an zextload.
llvm-svn: 30782
|
| |
|
|
| |
llvm-svn: 30780
|
| |
|
|
|
|
|
| |
section. This will fix alpha when Andrew implements
AlphaTargetMachine::getTargetLowering().
llvm-svn: 30779
|
| |
|
|
| |
llvm-svn: 30776
|
| |
|
|
|
|
| |
print the LLVM BB label.
llvm-svn: 30775
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
long long foo(long long X) {
return (long long)(signed char)(int)X;
}
Instead of:
_foo:
extsb r2, r4
srawi r3, r4, 31
mr r4, r2
blr
we now produce:
_foo:
extsb r4, r4
srawi r3, r4, 31
blr
This fixes a miscompilation in ConstantFolding.cpp.
llvm-svn: 30768
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 30760
|
| |
|
|
| |
llvm-svn: 30759
|
| |
|
|
| |
llvm-svn: 30758
|
| |
|
|
| |
llvm-svn: 30757
|
| |
|
|
| |
llvm-svn: 30753
|
| |
|
|
|
|
| |
allowing label differences to work. This fixes CodeGen/X86/pic_jumptable.ll
llvm-svn: 30744
|
| |
|
|
| |
llvm-svn: 30742
|
| |
|
|
| |
llvm-svn: 30736
|
| |
|
|
| |
llvm-svn: 30727
|
| |
|
|
| |
llvm-svn: 30721
|
| |
|
|
| |
llvm-svn: 30720
|
| |
|
|
| |
llvm-svn: 30715
|
| |
|
|
|
|
| |
extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714
|
| |
|
|
|
|
| |
is needed to support targets where {|} aren't special symbols.
llvm-svn: 30712
|
| |
|
|
| |
llvm-svn: 30711
|
| |
|
|
| |
llvm-svn: 30709
|