- Feb 29, 2008
-
-
Evan Cheng authored
llvm-svn: 47748
-
Dan Gohman authored
llvm-svn: 47746
-
Dan Gohman authored
which allows more of the surrounding arithmetic to be done with APInt instead of uint64_t. llvm-svn: 47745
-
Dan Gohman authored
llvm-svn: 47744
-
Dan Gohman authored
an APInt into a uint64_t to call getConstant. llvm-svn: 47742
-
Dan Gohman authored
instead of uint32_t for the shift/rotate count operand type. llvm-svn: 47741
-
Anders Carlsson authored
llvm-svn: 47740
-
Dan Gohman authored
by using the new convertFromAPInt directly. llvm-svn: 47739
-
Dan Gohman authored
llvm-svn: 47738
-
Evan Cheng authored
llvm-svn: 47736
-
- Feb 28, 2008
-
-
Dale Johannesen authored
generic & x86 versions; change generic to follow x86 and improve comments. Add PPC version (not right for non-Darwin.) llvm-svn: 47734
-
Andrew Lenharth authored
Make llvm-ar behave like ar, if you create an empty archive, ar creates an empty archive. llvm-ar would not generate an output file in this case llvm-svn: 47733
-
Lauro Ramos Venancio authored
llvm-svn: 47732
-
Lauro Ramos Venancio authored
llvm-svn: 47725
-
Dale Johannesen authored
llvm-svn: 47722
-
Chris Lattner authored
llvm-svn: 47720
-
http://llvm.org/bugs/show_bug.cgi?id=2104Gabor Greif authored
Fix http://llvm.org/bugs/show_bug.cgi?id=2104 by ordering lexicographically what gets printed. Be const-correct in PrintResults and uninline it too llvm-svn: 47712
-
Evan Cheng authored
llvm-svn: 47711
-
Evan Cheng authored
llvm-svn: 47710
-
Chris Lattner authored
test/DebugInfo/funccall.ll llvm-svn: 47709
-
Chris Lattner authored
llvm-svn: 47708
-
Chris Lattner authored
llvm-svn: 47707
-
Chris Lattner authored
llvm-svn: 47706
-
Chris Lattner authored
llvm-svn: 47705
-
Chris Lattner authored
llvm-svn: 47704
-
Evan Cheng authored
llvm-svn: 47703
-
Eli Friedman authored
llvm-svn: 47702
-
Anton Korobeynikov authored
uses the same encoding everywhere. Linux FIXME'ed. llvm-svn: 47701
-
Devang Patel authored
llvm-svn: 47700
-
Anton Korobeynikov authored
provide TAI hook for selection of EH data emission format. Currently unused. llvm-svn: 47699
-
- Feb 27, 2008
-
-
Dale Johannesen authored
same size as an int type by doing a bitconvert of load/store of the int type (same algorithm as floating point). This makes them work for ppc Altivec. There was some code that purported to handle loads of (some) vectors by splitting them into two smaller vectors, but getExtLoad rejects subvector loads, so this could never have worked; the patch removes it. llvm-svn: 47696
-
Dan Gohman authored
and was causing aborts with the new APInt changes. This may also be fixing an obscure ppc64 bug. llvm-svn: 47692
-
Evan Cheng authored
llvm-svn: 47688
-
Evan Cheng authored
llvm-svn: 47687
-
Dan Gohman authored
llvm-svn: 47686
-
Duncan Sands authored
llvm-svn: 47676
-
Lauro Ramos Venancio authored
Emit an error when a library is not found. It is the GNU ld behavior and it is expected by the configure scripts. llvm-svn: 47674
-
Duncan Sands authored
approach taken is different to that in LegalizeDAG when it is a question of expanding or promoting the result type: for example, if extracting an i64 from a <2 x i64>, when i64 needs expanding, it bitcasts the vector to <4 x i32>, extracts the appropriate two i32's, and uses those for the Lo and Hi parts. Likewise, when extracting an i16 from a <4 x i16>, and i16 needs promoting, it bitcasts the vector to <2 x i32>, extracts the appropriate i32, twiddles the bits if necessary, and uses that as the promoted value. This puts more pressure on bitcast legalization, and I've added the appropriate cases. They needed to be added anyway since users can generate such bitcasts too if they want to. Also, when considering various cases (Legal, Promote, Expand, Scalarize, Split) it is a pain that expand can correspond to Expand, Scalarize or Split, so I've changed the LegalizeTypes enum so it lists those different cases - now Expand only means splitting a scalar in two. The code produced is the same as by LegalizeDAG for all relevant testcases, except for 2007-10-31-extractelement-i64.ll, where the code seems to have improved (see below; can an expert please tell me if it is better or not). Before < vs after >. < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 28(%esp) < movl (%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 28(%esp) < movl 8(%esp), %eax < movl %eax, 24(%esp) < movq 24(%esp), %mm0 < movq %mm0, 56(%esp) --- > subl $44, %esp > movaps %xmm0, 16(%esp) > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movq (%esp), %mm0 > movq %mm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 16(%esp), %eax < movl %eax, 48(%esp) < movl 20(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 4(%esp), %eax < movl %eax, 60(%esp) < movl (%esp), %eax < movl %eax, 56(%esp) --- > pshufd $1, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) < subl $92, %esp < movaps %xmm0, 64(%esp) --- > subl $44, %esp < movl 24(%esp), %eax < movl %eax, 48(%esp) < movl 28(%esp), %eax < movl %eax, 52(%esp) < movaps %xmm0, (%esp) < movl 12(%esp), %eax < movl %eax, 60(%esp) < movl 8(%esp), %eax < movl %eax, 56(%esp) --- > pshufd $3, %xmm0, %xmm1 > movd %xmm1, 4(%esp) > movhlps %xmm0, %xmm0 > movd %xmm0, (%esp) > movd %xmm1, 12(%esp) > movd %xmm0, 8(%esp) llvm-svn: 47672
-
Duncan Sands authored
operand of a VECTOR_SHUFFLE. The mask is a vector of constant integers. The code in LegalizeDAG doesn't bother to legalize the mask, since it's basically just storage for a bunch of constants, however LegalizeTypes is more picky. The problem is that there may not exist any legal vector-of-integers type with a legal element type, so it is impossible to create a legal mask! Unless of course you cheat by creating a BUILD_VECTOR where the operands have a different type to the element type of the vector being built... This is pretty ugly but works - all relevant tests in the testsuite pass, and produce the same assembler with and without LegalizeTypes. llvm-svn: 47670
-
Duncan Sands authored
llvm-svn: 47669
-