Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use the new convertFromAPInt instead of convertFromZeroExtendedInteger. | Dan Gohman | 2008-02-29 | 1 | -6/+3 |
| | | | | llvm-svn: 47744 | ||||
* | Use the new APInt-enabled form of getConstant instead of converting | Dan Gohman | 2008-02-29 | 1 | -1/+1 |
| | | | | | | an APInt into a uint64_t to call getConstant. llvm-svn: 47742 | ||||
* | Add support to APInt for shift and rotate operations with APInt | Dan Gohman | 2008-02-29 | 2 | -0/+49 |
| | | | | | | instead of uint32_t for the shift/rotate count operand type. llvm-svn: 47741 | ||||
* | Use the correct instruction encodings for the 64-bit MMX movd. | Anders Carlsson | 2008-02-29 | 1 | -2/+2 |
| | | | | llvm-svn: 47740 | ||||
* | Simplify code using convertFromZeroExtendedInteger with an APInt | Dan Gohman | 2008-02-29 | 1 | -6/+6 |
| | | | | | | by using the new convertFromAPInt directly. llvm-svn: 47739 | ||||
* | Add a method to APFloat to convert directly from APInt. | Dan Gohman | 2008-02-29 | 2 | -0/+19 |
| | | | | llvm-svn: 47738 | ||||
* | Added option -align-loops=<true/false> to disable loop aligner pass. | Evan Cheng | 2008-02-28 | 4 | -8/+7 |
| | | | | llvm-svn: 47736 | ||||
* | Update testcase. | Lauro Ramos Venancio | 2008-02-28 | 1 | -1/+1 |
| | | | | llvm-svn: 47735 | ||||
* | Interface of getByValTypeAlignment differed between | Dale Johannesen | 2008-02-28 | 4 | -3/+21 |
| | | | | | | | | generic & x86 versions; change generic to follow x86 and improve comments. Add PPC version (not right for non-Darwin.) llvm-svn: 47734 | ||||
* | Make llvm-ar behave like ar, if you create an empty archive, ar creates an ↵ | Andrew Lenharth | 2008-02-28 | 2 | -1/+2 |
| | | | | | | empty archive. llvm-ar would not generate an output file in this case llvm-svn: 47733 | ||||
* | Initialize TextAlignFillValue. Fix revision 47703. | Lauro Ramos Venancio | 2008-02-28 | 1 | -0/+1 |
| | | | | llvm-svn: 47732 | ||||
* | Avoid collisions in value names. | Lauro Ramos Venancio | 2008-02-28 | 1 | -3/+5 |
| | | | | llvm-svn: 47725 | ||||
* | Run 'svn info' in the C locale. Also appropriately escape spaces and ? for ↵ | Gabor Greif | 2008-02-28 | 1 | -3/+3 |
| | | | | | | gawk in darwin. llvm-svn: 47723 | ||||
* | Fix an assertion message. | Dale Johannesen | 2008-02-28 | 1 | -1/+1 |
| | | | | llvm-svn: 47722 | ||||
* | add a note | Chris Lattner | 2008-02-28 | 1 | -0/+19 |
| | | | | llvm-svn: 47720 | ||||
* | Document that the shuffle mask may contain undef | Duncan Sands | 2008-02-28 | 1 | -7/+7 |
| | | | | | | values. llvm-svn: 47719 | ||||
* | Simplify and clean up "update" target. Also | Gabor Greif | 2008-02-28 | 1 | -5/+6 |
| | | | | | | | | | | | | | | add an SVN-UPDATE-OPTIONS variable that controls the update behaviour. This allows to go to a common older revision of all svn directories: gmake update SVN-UPDATE-OPTIONS=-r47717 would rewind both llvm and clang to a common revision (if clang is checked out into the llvm tree). llvm-svn: 47717 | ||||
* | Now that targets are serialized, introduce | Gabor Greif | 2008-02-28 | 1 | -1/+13 |
| | | | | | | | | | | | | | | | | two new convenience targets: - update: svn update toplevel and try hard to locate updatable subdirectories using cunning tricks - happiness: update then build and test so what one wants to do now is: nice gmake --jobs happiness Have fun! llvm-svn: 47716 | ||||
* | Treat all targets serially at the toplevel. This allows | Gabor Greif | 2008-02-28 | 1 | -1/+6 |
| | | | | | | | | | | | | | | | to specify nice gmake --jobs all check and go to lunch, while a multiprocessor machine will build everything using spare resources and check the result thereafter. Since concurrency of make is not restricted in subdirectories, this should be a nearly optimal way to do it. Also teach the user about a configure switch. llvm-svn: 47715 | ||||
* | Fix http://llvm.org/bugs/show_bug.cgi?id=2104 by ordering lexicographically ↵ | Gabor Greif | 2008-02-28 | 2 | -6/+13 |
| | | | | | | what gets printed. Be const-correct in PrintResults and uninline it too llvm-svn: 47712 | ||||
* | Set to default: x86 no longer fold and into test if it has more than one use. | Evan Cheng | 2008-02-28 | 2 | -2/+1 |
| | | | | llvm-svn: 47711 | ||||
* | Keep track how many commutes are performed by the scheduler. | Evan Cheng | 2008-02-28 | 1 | -0/+4 |
| | | | | llvm-svn: 47710 | ||||
* | Sparc backend doesn't support debug info yet, mark the nodes as expand. ↵ | Chris Lattner | 2008-02-28 | 1 | -2/+6 |
| | | | | | | | | This fixes a crash on test/DebugInfo/funccall.ll llvm-svn: 47709 | ||||
* | implement expand for ISD::DECLARE by just deleting it. | Chris Lattner | 2008-02-28 | 1 | -0/+3 |
| | | | | llvm-svn: 47708 | ||||
* | Fix CodeGen/Generic/storetrunc-fp.ll on sparc, PR2105 | Chris Lattner | 2008-02-28 | 1 | -1/+2 |
| | | | | llvm-svn: 47707 | ||||
* | fix CodeGen/Generic/2008-01-25-dag-combine-mul.ll on sparc, PR2105 | Chris Lattner | 2008-02-28 | 2 | -0/+4 |
| | | | | llvm-svn: 47706 | ||||
* | target-indep codegen memcpy lowering issue. | Chris Lattner | 2008-02-28 | 1 | -0/+44 |
| | | | | llvm-svn: 47705 | ||||
* | Add a random not very important note | Chris Lattner | 2008-02-28 | 1 | -0/+38 |
| | | | | llvm-svn: 47704 | ||||
* | Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to ↵ | Evan Cheng | 2008-02-28 | 25 | -50/+173 |
| | | | | | | 16-byte boundaries. llvm-svn: 47703 | ||||
* | A few more small things I've run into. | Eli Friedman | 2008-02-28 | 1 | -3/+86 |
| | | | | llvm-svn: 47702 | ||||
* | EHPreferredDataFormat hook for PPC targets. Looks like Darwin | Anton Korobeynikov | 2008-02-27 | 2 | -1/+30 |
| | | | | | | uses the same encoding everywhere. Linux FIXME'ed. llvm-svn: 47701 | ||||
* | Remove dead code. | Devang Patel | 2008-02-27 | 2 | -18/+0 |
| | | | | llvm-svn: 47700 | ||||
* | Preparation step for some cleanup/generalization in EH information emission: | Anton Korobeynikov | 2008-02-27 | 4 | -1/+80 |
| | | | | | | provide TAI hook for selection of EH data emission format. Currently unused. llvm-svn: 47699 | ||||
* | New test for misaligned Altivec laod/store. | Dale Johannesen | 2008-02-27 | 1 | -0/+37 |
| | | | | llvm-svn: 47698 | ||||
* | Assert on invalid PHINode::addIncoming() arguments. Patch by Erick Tryzelaar! | Anton Korobeynikov | 2008-02-27 | 1 | -0/+2 |
| | | | | llvm-svn: 47697 | ||||
* | Handle load/store of misaligned vectors that are the | Dale Johannesen | 2008-02-27 | 1 | -19/+30 |
| | | | | | | | | | | | | 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 | ||||
* | fixes from review of first commit | Nick Kledzik | 2008-02-27 | 6 | -202/+184 |
| | | | | llvm-svn: 47695 | ||||
* | use PROJ_SRC_DIR so this builds with Apple style builds | Nick Kledzik | 2008-02-27 | 1 | -1/+1 |
| | | | | llvm-svn: 47694 | ||||
* | Don't hard-code the mask size to be 32, which is incorrect on ppc64 | Dan Gohman | 2008-02-27 | 2 | -3/+32 |
| | | | | | | | and was causing aborts with the new APInt changes. This may also be fixing an obscure ppc64 bug. llvm-svn: 47692 | ||||
* | This is done. | Evan Cheng | 2008-02-27 | 1 | -24/+0 |
| | | | | llvm-svn: 47688 | ||||
* | Fix a bug in dead spill slot elimination. | Evan Cheng | 2008-02-27 | 3 | -0/+72 |
| | | | | llvm-svn: 47687 | ||||
* | Remove the `else', at Evan's insistence. | Dan Gohman | 2008-02-27 | 1 | -2/+1 |
| | | | | llvm-svn: 47686 | ||||
* | Add -analyze support to postdomtree. | Dan Gohman | 2008-02-27 | 2 | -1/+8 |
| | | | | llvm-svn: 47680 | ||||
* | actually run llc, thanks Dan :) | Chris Lattner | 2008-02-27 | 1 | -1/+3 |
| | | | | llvm-svn: 47677 | ||||
* | Add a FIXME about the VECTOR_SHUFFLE evil hack. | Duncan Sands | 2008-02-27 | 1 | -0/+2 |
| | | | | llvm-svn: 47676 | ||||
* | Emit an error when a library is not found. It is the GNU ld behavior and it ↵ | Lauro Ramos Venancio | 2008-02-27 | 1 | -1/+1 |
| | | | | | | is expected by the configure scripts. llvm-svn: 47674 | ||||
* | LegalizeTypes support for EXTRACT_VECTOR_ELT. The | Duncan Sands | 2008-02-27 | 6 | -59/+363 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Remove inappropriate whitespace, change CVS to SVN where it makes sense. | Gabor Greif | 2008-02-27 | 1 | -6/+6 |
| | | | | llvm-svn: 47671 | ||||
* | LegalizeTypes support for legalizing the mask | Duncan Sands | 2008-02-27 | 2 | -0/+56 |
| | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | LegalizeTypes support for INSERT_VECTOR_ELT. | Duncan Sands | 2008-02-27 | 4 | -7/+49 |
| | | | | llvm-svn: 47669 |