- May 01, 2006
-
-
Chris Lattner authored
llvm-svn: 28039
-
Evan Cheng authored
llvm-svn: 28035
-
Evan Cheng authored
up the schedule. This helps code that looks like this: loads ... computations (first set) ... stores (first set) ... loads computations (seccond set) ... stores (seccond set) ... Without this change, the stores and computations are more likely to interleave: loads ... loads ... computations (first set) ... computations (second set) ... computations (first set) ... stores (first set) ... computations (second set) ... stores (stores set) ... This can increase the number of spills if we are unlucky. llvm-svn: 28033
-
Evan Cheng authored
llvm-svn: 28030
-
Evan Cheng authored
Remove temp. option -spiller-check-liveout, it didn't cause any failure nor performance regressions. llvm-svn: 28029
-
Chris Lattner authored
llvm-svn: 28026
-
- Apr 30, 2006
-
-
Evan Cheng authored
But this is incorrect if the spilled value live range extends beyond the current BB. It is currently controlled by a temporary option -spiller-check-liveout. llvm-svn: 28024
-
- Apr 29, 2006
-
-
Chris Lattner authored
with some changes I have to the new CFE. llvm-svn: 28022
-
- Apr 28, 2006
-
-
Evan Cheng authored
llvm-svn: 28012
-
Evan Cheng authored
FORMAL_ARGUMENTS SDOperand in the return result vector. llvm-svn: 28009
-
Chris Lattner authored
the same. In this case, don't emit a noop copy. llvm-svn: 28008
-
Evan Cheng authored
node can be folded. llvm-svn: 28003
-
Chris Lattner authored
and is already available, instead of falling back to emitting a load, fall back to emitting a reg-reg copy. This generates significantly better code for some SSE testcases, as SSE has lots of two-address instructions and none of them are read/modify/write. As one example, this change does: pshufd %XMM5, XMMWORD PTR [%ESP + 84], 255 xorps %XMM2, %XMM5 cmpltps %XMM1, %XMM0 - movaps XMMWORD PTR [%ESP + 52], %XMM0 - movapd %XMM6, XMMWORD PTR [%ESP + 52] + movaps %XMM6, %XMM0 cmpltps %XMM6, XMMWORD PTR [%ESP + 68] movapd XMMWORD PTR [%ESP + 52], %XMM6 movaps %XMM6, %XMM0 cmpltps %XMM6, XMMWORD PTR [%ESP + 36] cmpltps %XMM3, %XMM0 - movaps XMMWORD PTR [%ESP + 20], %XMM0 - movapd %XMM7, XMMWORD PTR [%ESP + 20] + movaps %XMM7, %XMM0 cmpltps %XMM7, XMMWORD PTR [%ESP + 4] movapd XMMWORD PTR [%ESP + 20], %XMM7 cmpltps %XMM4, %XMM0 ... which is far better than a store followed by a load! llvm-svn: 28001
-
- Apr 27, 2006
-
-
Evan Cheng authored
(VAND, VADD, etc.). Legalizer will assert otherwise. llvm-svn: 27991
-
Chris Lattner authored
PR748. llvm-svn: 27987
-
- Apr 26, 2006
-
-
Evan Cheng authored
llvm-svn: 27974
-
- Apr 23, 2006
-
-
Nate Begeman authored
the jump table's range check block. This re-enables 100% dense jump tables by default on PPC & x86 llvm-svn: 27952
-
Nate Begeman authored
these. llvm-svn: 27950
-
Nate Begeman authored
updating the machine CFG. llvm-svn: 27949
-
- Apr 22, 2006
-
-
Nate Begeman authored
x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. llvm-svn: 27947
-
- Apr 21, 2006
-
-
Chris Lattner authored
miscompares). Switch RISC targets to use the list-td scheduler, which isn't. llvm-svn: 27933
-
Chris Lattner authored
llvm-svn: 27930
-
Chris Lattner authored
llvm-gcc4 boostrap. Whenever a node is deleted by the dag combiner, it *must* be returned by the visit function, or the dag combiner will not know that the node has been processed (and will, e.g., send it to the target dag combine xforms). llvm-svn: 27922
-
- Apr 20, 2006
-
-
Chris Lattner authored
llvm-svn: 27899
-
Chris Lattner authored
llvm-svn: 27893
-
Evan Cheng authored
DAG combiner can turn a VAND V, <-1, 0, -1, -1>, i.e. vector clear elements, into a vector shuffle with a zero vector. It only does so when TLI tells it the xform is profitable. llvm-svn: 27874
-
Chris Lattner authored
llvm-svn: 27863
-
Chris Lattner authored
llvm-svn: 27846
-
- Apr 18, 2006
-
-
Chris Lattner authored
the code in GCC PR26546. llvm-svn: 27780
-
- Apr 17, 2006
-
-
Chris Lattner authored
llvm-svn: 27775
-
Chris Lattner authored
and a shuffle. For this: void %test2(<4 x float>* %F, float %f) { %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = add <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] %tmp2 = insertelement <4 x float> %tmp3, float %f, uint 2 ; <<4 x float>> [#uses=2] %tmp6 = add <4 x float> %tmp2, %tmp2 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void } we now get this on X86 (which will get better): _test2: movl 4(%esp), %eax movaps (%eax), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, %xmm1 shufps $3, %xmm1, %xmm1 movaps %xmm0, %xmm2 shufps $1, %xmm2, %xmm2 unpcklps %xmm1, %xmm2 movss 8(%esp), %xmm1 unpcklps %xmm1, %xmm0 unpcklps %xmm2, %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%eax) ret instead of: _test2: subl $28, %esp movl 32(%esp), %eax movaps (%eax), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%esp) movss 36(%esp), %xmm0 movss %xmm0, 8(%esp) movaps (%esp), %xmm0 addps %xmm0, %xmm0 movaps %xmm0, (%eax) addl $28, %esp ret llvm-svn: 27765
-
- Apr 16, 2006
-
-
Chris Lattner authored
to write one pattern for vector stores instead of 4. llvm-svn: 27730
-
Chris Lattner authored
buildvectors. llvm-svn: 27723
-
- Apr 14, 2006
-
-
Chris Lattner authored
llvm-svn: 27695
-
- Apr 13, 2006
-
-
Reid Spencer authored
about "dereferencing type-punned pointer will break strict-aliasing rules" llvm-svn: 27671
-
- Apr 12, 2006
-
-
Evan Cheng authored
llvm-svn: 27632
-
Evan Cheng authored
llvm-svn: 27606
-
Chris Lattner authored
Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload llvm-svn: 27604
-
Chris Lattner authored
getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll llvm-svn: 27602
-
- Apr 11, 2006
-
-
Evan Cheng authored
llvm-svn: 27586
-