- Apr 09, 2007
-
-
Chris Lattner authored
llvm-svn: 35792
-
Chris Lattner authored
Transforms/InstCombine/vec_insertelt.ll and fixes PR1286. We now compile the code from that bug into: _foo: movl 4(%esp), %eax movdqa (%eax), %xmm0 movl 8(%esp), %ecx psllw (%ecx), %xmm0 movdqa %xmm0, (%eax) ret instead of: _foo: subl $4, %esp movl %ebp, (%esp) movl %esp, %ebp movl 12(%ebp), %eax movdqa (%eax), %xmm0 #IMPLICIT_DEF %eax pinsrw $2, %eax, %xmm0 xorl %ecx, %ecx pinsrw $3, %ecx, %xmm0 pinsrw $4, %eax, %xmm0 pinsrw $5, %ecx, %xmm0 pinsrw $6, %eax, %xmm0 pinsrw $7, %ecx, %xmm0 movl 8(%ebp), %eax movdqa (%eax), %xmm1 psllw %xmm0, %xmm1 movdqa %xmm1, (%eax) movl %ebp, %esp popl %ebp ret woo :) llvm-svn: 35788
-
- Apr 08, 2007
-
-
Chris Lattner authored
llvm-svn: 35765
-
Chris Lattner authored
llvm-svn: 35763
-
Chris Lattner authored
Add a new xform to simplify (A&B)|(~A&C). THis implements InstCombine/or2.ll:test1 llvm-svn: 35760
-
- Apr 07, 2007
-
-
Nick Lewycky authored
llvm-svn: 35734
-
Owen Anderson authored
llvm-svn: 35731
-
Nick Lewycky authored
llvm-svn: 35724
-
Nick Lewycky authored
llvm-svn: 35719
-
Nick Lewycky authored
llvm-svn: 35718
-
Nick Lewycky authored
first and then range testing second. llvm-svn: 35715
-
Devang Patel authored
llvm-svn: 35714
-
- Apr 06, 2007
-
-
Chris Lattner authored
llvm-svn: 35700
-
- Apr 05, 2007
-
-
Chris Lattner authored
llvm-svn: 35680
-
- Apr 04, 2007
-
-
Dale Johannesen authored
elsewhere. llvm-svn: 35668
-
Jeff Cohen authored
llvm-svn: 35665
-
Duncan Sands authored
llvm-svn: 35655
-
Chris Lattner authored
some constant exprs to apints). Thanks to Anton for tracking down a small testcase that triggered this! llvm-svn: 35633
-
- Apr 03, 2007
-
-
Chris Lattner authored
ldecod now passes. llvm-svn: 35626
-
Evan Cheng authored
llvm-svn: 35620
-
Chris Lattner authored
llvm-svn: 35615
-
Chris Lattner authored
llvm-svn: 35614
-
Chris Lattner authored
llvm-svn: 35612
-
Chris Lattner authored
llvm-svn: 35607
-
- Apr 02, 2007
-
-
Zhou Sheng authored
2. Use cheaper APInt methods. llvm-svn: 35594
-
Zhou Sheng authored
llvm-svn: 35593
-
Chris Lattner authored
target hook. This allows us to codegen a loop as: LBB1_1: @cond_next mov r2, #0 str r2, [r0, +r3, lsl #2] add r3, r3, #1 cmn r3, #1 bne LBB1_1 @cond_next instead of: LBB1_1: @cond_next mov r2, #0 str r2, [r0], #+4 add r3, r3, #1 cmn r3, #1 bne LBB1_1 @cond_next This looks the same, but has one fewer induction variable (and therefore, one fewer register) live in the loop. llvm-svn: 35592
-
Chris Lattner authored
llvm-svn: 35588
-
Chris Lattner authored
llvm-svn: 35587
-
Chris Lattner authored
test/Transforms/InstCombine/xor.ll:test28 llvm-svn: 35584
-
Chris Lattner authored
isel has its own particular features that it wants in the CFG, in order to reduce the number of times a constant is computed, etc. Make sure that we clean up the CFG before doing any other things for isel. Doing so can dramatically reduce the number of split edges and reduce the number of places that constants get computed. For example, this shrinks CodeGen/Generic/phi-immediate-factoring.ll from 44 to 37 instructions on X86, and from 21 to 17 MBB's in the output. This is primarily a code size win, not a performance win. This implements CodeGen/Generic/phi-immediate-factoring.ll and PR1296. llvm-svn: 35575
-
Chris Lattner authored
llvm-svn: 35563
-
- Apr 01, 2007
-
-
Chris Lattner authored
llvm-svn: 35561
-
Zhou Sheng authored
llvm-svn: 35555
-
Reid Spencer authored
Support overloaded intrinsics bswap, ctpop, cttz, ctlz. llvm-svn: 35547
-
Chris Lattner authored
llvm-svn: 35536
-
- Mar 31, 2007
-
-
Chris Lattner authored
llvm-svn: 35528
-
Zhou Sheng authored
llvm-svn: 35525
-
Zhou Sheng authored
llvm-svn: 35524
-
- Mar 30, 2007
-
-
Zhou Sheng authored
llvm-svn: 35510
-