- 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
-
Evan Cheng authored
Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef. llvm-svn: 27946
-
Evan Cheng authored
Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector. llvm-svn: 27945
-
Evan Cheng authored
llvm-svn: 27944
-
Chris Lattner authored
llvm-svn: 27943
-
Chris Lattner authored
llvm-svn: 27942
-
Chris Lattner authored
This allows Prolangs-C++/city and probably a bunch of other stuff to work well with the new front-end llvm-svn: 27941
-
Evan Cheng authored
movd always clear the top 96 bits and movss does so when it's loading the value from memory. The net result is codegen for 4-wide shuffles is much improved. It is near optimal if one or more elements is a zero. e.g. __m128i test(int a, int b) { return _mm_set_epi32(0, 0, b, a); } compiles to _test: movd 8(%esp), %xmm1 movd 4(%esp), %xmm0 punpckldq %xmm1, %xmm0 ret compare to gcc: _test: subl $12, %esp movd 20(%esp), %xmm0 movd 16(%esp), %xmm1 punpckldq %xmm0, %xmm1 movq %xmm1, %xmm0 movhps LC0, %xmm0 addl $12, %esp ret or icc: _test: movd 4(%esp), %xmm0 #5.10 movd 8(%esp), %xmm3 #5.10 xorl %eax, %eax #5.10 movd %eax, %xmm1 #5.10 punpckldq %xmm1, %xmm0 #5.10 movd %eax, %xmm2 #5.10 punpckldq %xmm2, %xmm3 #5.10 punpckldq %xmm3, %xmm0 #5.10 ret #5.10 There are still room for improvement, for example the FP variant of the above example: __m128 test(float a, float b) { return _mm_set_ps(0.0, 0.0, b, a); } _test: movss 8(%esp), %xmm1 movss 4(%esp), %xmm0 unpcklps %xmm1, %xmm0 xorps %xmm1, %xmm1 movlhps %xmm1, %xmm0 ret The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle. llvm-svn: 27939
-
Nate Begeman authored
llvm-svn: 27938
-
Nate Begeman authored
llvm-svn: 27937
-
- Apr 21, 2006
-
-
Chris Lattner authored
llvm-svn: 27936
-
Chris Lattner authored
llvm-svn: 27935
-
Chris Lattner authored
llvm-svn: 27934
-
Chris Lattner authored
miscompares). Switch RISC targets to use the list-td scheduler, which isn't. llvm-svn: 27933
-
Evan Cheng authored
llvm-svn: 27932
-
Chris Lattner authored
llvm-svn: 27931
-
Chris Lattner authored
llvm-svn: 27930
-
Reid Spencer authored
some versions of nm don't recognize it (its a gnu option). llvm-svn: 27928
-
Evan Cheng authored
llvm-svn: 27927
-
Evan Cheng authored
llvm-svn: 27926
-
Evan Cheng authored
llvm-svn: 27925
-
Evan Cheng authored
llvm-svn: 27924
-
Evan Cheng authored
scalar value. e.g. _mm_set_epi32(0, a, 0, 0); ==> movd 4(%esp), %xmm0 pshufd $69, %xmm0, %xmm0 _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); ==> movzbw 4(%esp), %ax movzwl %ax, %eax pxor %xmm0, %xmm0 pinsrw $5, %eax, %xmm0 llvm-svn: 27923
-
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
-
Reid Spencer authored
any of the fancy graphs or other output. Just produce the flat, makefile style output on stdout. llvm-svn: 27921
-
Jeff Cohen authored
llvm-svn: 27920
-
Reid Spencer authored
llvm-svn: 27919
-
- Apr 20, 2006
-
-
Reid Spencer authored
llvm-svn: 27918
-
Reid Spencer authored
llvm-svn: 27917
-
Reid Spencer authored
llvm-svn: 27916
-
Reid Spencer authored
1. If Perl is not available, don't run Perl dependent targets. 2. Check in FinalLibDeps.txt for build environments that can't build it because there's no Perl processor. 3. Ensure that FinalLibDeps.txt depends on LibDeps.txt so it is automatically regenerated. 4. Support objdir != srcdir building. llvm-svn: 27915
-
Reid Spencer authored
llvm-svn: 27914
-
Reid Spencer authored
llvm-svn: 27913
-
Chris Lattner authored
llvm-svn: 27912
-
Chris Lattner authored
llvm-svn: 27911
-
Reid Spencer authored
llvm-svn: 27910
-
Evan Cheng authored
llvm-svn: 27909
-
Chris Lattner authored
llvm-svn: 27908
-
Chris Lattner authored
llvm-svn: 27907
-
Reid Spencer authored
llvm-svn: 27906
-