| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
RET chain, value1, sign1, value2, sign2
llvm-svn: 28509
|
| |
|
|
| |
llvm-svn: 28465
|
| |
|
|
| |
llvm-svn: 28461
|
| |
|
|
|
|
| |
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
|
| |
|
|
| |
llvm-svn: 28437
|
| |
|
|
| |
llvm-svn: 28435
|
| |
|
|
| |
llvm-svn: 28433
|
| |
|
|
| |
llvm-svn: 28386
|
| |
|
|
|
|
| |
use getPackedTypeBreakdown at all here.
llvm-svn: 28365
|
| |
|
|
| |
llvm-svn: 28364
|
| |
|
|
|
|
|
|
| |
VBIT_VECTOR nodes. There were some confusion about the semantics of
getPackedTypeBreakdown(). e.g. for <4 x f32> it returns 1 and v4f32, not 4,
and f32.
llvm-svn: 28352
|
| |
|
|
|
|
|
|
|
|
|
|
| |
use UpdateNodeOperands to just update the operands! This is important because
getNode will allocate a new node if the node returns a flag and this breaks
assumptions in the legalizer that you can legalize some things multiple times
and get exactly the same results.
This latent bug was exposed by my ppc patch last night, and this fixes
gsm/toast.
llvm-svn: 28348
|
| |
|
|
|
|
| |
change.
llvm-svn: 28347
|
| |
|
|
| |
llvm-svn: 28340
|
| |
|
|
|
|
| |
produce it.
llvm-svn: 28338
|
| |
|
|
| |
llvm-svn: 28329
|
| |
|
|
|
|
|
| |
it doesn't currently use/maintain the chain properly. Also, make the
X86ISelLowering.cpp file 80-col clean.
llvm-svn: 28320
|
| |
|
|
|
|
|
|
|
| |
This code should be emitted after legalize, so it can't be in sdisel.
Note that the EmitFunctionEntryCode hook should be updated to operate on the
DAG. The X86 backend is the only one currently using this hook.
llvm-svn: 28315
|
| |
|
|
|
|
| |
for each argument.
llvm-svn: 28313
|
| |
|
|
| |
llvm-svn: 28279
|
| |
|
|
| |
llvm-svn: 28278
|
| |
|
|
| |
llvm-svn: 28274
|
| |
|
|
| |
llvm-svn: 28255
|
| |
|
|
| |
llvm-svn: 28254
|
| |
|
|
| |
llvm-svn: 28252
|
| |
|
|
|
|
|
|
|
|
| |
%tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1]
%tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1]
%bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1]
To setne, not setune, which causes an assertion fault.
llvm-svn: 28244
|
| |
|
|
|
|
|
| |
TargetData.h. This should make recompiles a bit faster with my current
TargetData tinkering.
llvm-svn: 28238
|
| |
|
|
| |
llvm-svn: 28235
|
| |
|
|
|
|
| |
simplify tf(x,y,y,z) -> tf(x,y,z).
llvm-svn: 28233
|
| |
|
|
|
|
|
| |
If a two-address code whose first operand has uses below, it should be commuted
when possible.
llvm-svn: 28230
|
| |
|
|
|
|
|
| |
separate file. Added an initial implementation of top-down register pressure
reduction list scheduler.
llvm-svn: 28226
|
| |
|
|
| |
llvm-svn: 28212
|
| |
|
|
| |
llvm-svn: 28207
|
| |
|
|
|
|
|
| |
the distance between the def and another use is much longer). This is under
option control for now "-sched-lower-defnuse".
llvm-svn: 28201
|
| |
|
|
| |
llvm-svn: 28200
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
short test2(short X, short x) {
int Y = (short)(X+x);
return Y >> 1;
}
to:
_test2:
add r2, r3, r4
extsh r2, r2
srawi r3, r2, 1
blr
instead of:
_test2:
add r2, r3, r4
extsh r2, r2
srwi r2, r2, 1
extsh r3, r2
blr
llvm-svn: 28175
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_test4:
srawi r3, r3, 16
blr
instead of:
_test4:
srwi r2, r3, 16
extsh r3, r2
blr
for:
short test4(unsigned X) {
return (X >> 16);
}
llvm-svn: 28174
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
short test4(unsigned X) {
return (X >> 16);
}
to:
_test4:
movl 4(%esp), %eax
sarl $16, %eax
ret
instead of:
_test4:
movl $-65536, %eax
andl 4(%esp), %eax
sarl $16, %eax
ret
llvm-svn: 28171
|
| |
|
|
| |
llvm-svn: 28167
|
| |
|
|
|
|
| |
to be only 31.25% dense, rather than 75% dense.
llvm-svn: 28165
|
| |
|
|
| |
llvm-svn: 28161
|
| |
|
|
| |
llvm-svn: 28152
|
| |
|
|
| |
llvm-svn: 28151
|
| |
|
|
| |
llvm-svn: 28150
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sign_extend_inreg operations. Though ComputeNumSignBits is still rudimentary,
this is enough to compile this:
short test(short X, short x) {
int Y = X+x;
return (Y >> 1);
}
short test2(short X, short x) {
int Y = (short)(X+x);
return Y >> 1;
}
into:
_test:
add r2, r3, r4
srawi r3, r2, 1
blr
_test2:
add r2, r3, r4
extsh r2, r2
srawi r3, r2, 1
blr
instead of:
_test:
add r2, r3, r4
srawi r2, r2, 1
extsh r3, r2
blr
_test2:
add r2, r3, r4
extsh r2, r2
srawi r2, r2, 1
extsh r3, r2
blr
llvm-svn: 28146
|
| |
|
|
|
|
|
|
| |
a cast immediately before a PHI node.
This fixes Regression/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll
llvm-svn: 28143
|
| |
|
|
|
|
|
|
|
|
| |
27,28c27
< movzwl %di, %edi
< movl %edi, %ebx
---
> movw %di, %bx
llvm-svn: 28137
|
| |
|
|
| |
llvm-svn: 28136
|
| |
|
|
| |
llvm-svn: 28130
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generated:
movl 8(%esp), %eax
movl %eax, %edx
addl $4316, %edx
cmpb $1, %cl
ja LBB1_2 #cond_false
LBB1_1: #cond_true
movl L_QuantizationTables720$non_lazy_ptr, %ecx
movl %ecx, (%edx)
movl L_QNOtoQuantTableShift720$non_lazy_ptr, %edx
movl %edx, 4460(%eax)
ret
...
Now we generate:
movl 8(%esp), %eax
cmpb $1, %cl
ja LBB1_2 #cond_false
LBB1_1: #cond_true
movl L_QuantizationTables720$non_lazy_ptr, %ecx
movl %ecx, 4316(%eax)
movl L_QNOtoQuantTableShift720$non_lazy_ptr, %ecx
movl %ecx, 4460(%eax)
ret
... which uses one fewer register.
llvm-svn: 28129
|