- Sep 02, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 112805
-
Bruno Cardoso Lopes authored
llvm-svn: 112804
-
Bruno Cardoso Lopes authored
llvm-svn: 112799
-
Eric Christopher authored
I don't need to implement this quite yet - and not for ConstantInt anyhow. llvm-svn: 112798
-
Eric Christopher authored
llvm-svn: 112795
-
Eric Christopher authored
llvm-svn: 112793
-
Jim Grosbach authored
llvm-svn: 112790
-
Eric Christopher authored
into the "address selection" routine and handle constant materialization for stores. llvm-svn: 112788
-
Jim Grosbach authored
llvm-svn: 112779
-
Jim Grosbach authored
to try to allocate reserved registers. llvm-svn: 112774
-
Bob Wilson authored
add, and subtract operations with zero-extended or sign-extended vectors. Update tests. Add auto-upgrade support for the old intrinsics. llvm-svn: 112773
-
Bruno Cardoso Lopes authored
llvm-svn: 112760
-
Bruno Cardoso Lopes authored
check more strict, breaking some cases not checked in the testsuite, but also exposes some foldings not done before, as this example: movaps (%rdi), %xmm0 movaps (%rax), %xmm1 movaps %xmm0, %xmm2 movss %xmm1, %xmm2 shufps $36, %xmm2, %xmm0 now is generated as: movaps (%rdi), %xmm0 movaps %xmm0, %xmm1 movlps (%rax), %xmm1 shufps $36, %xmm1, %xmm0 llvm-svn: 112753
-
Eric Christopher authored
llvm-svn: 112752
-
- Sep 01, 2010
-
-
Eric Christopher authored
llvm-svn: 112721
-
Chris Lattner authored
llvm-svn: 112712
-
Chris Lattner authored
the testcases should be merged. llvm-svn: 112711
-
Bruno Cardoso Lopes authored
Use movlps, movlpd, movss and movsd specific nodes instead of pattern matching with movlp pattern fragment llvm-svn: 112694
-
Bruno Cardoso Lopes authored
llvm-svn: 112689
-
Bruno Cardoso Lopes authored
llvm-svn: 112687
-
Bill Wendling authored
int x(int t) { if (t & 256) return -26; return 0; } We generate this: tst.w r0, #256 mvn r0, #25 it eq moveq r0, #0 while gcc generates this: ands r0, r0, #256 it ne mvnne r0, #25 bx lr Scandalous really! During ISel time, we can look for this particular pattern. One where we have a "MOVCC" that uses the flag off of a CMPZ that itself is comparing an AND instruction to 0. Something like this (greatly simplified): %r0 = ISD::AND ... ARMISD::CMPZ %r0, 0 @ sets [CPSR] %r0 = ARMISD::MOVCC 0, -26 @ reads [CPSR] All we have to do is convert the "ISD::AND" into an "ARM::ANDS" that sets [CPSR] when it's zero. The zero value will all ready be in the %r0 register and we only need to change it if the AND wasn't zero. Easy! llvm-svn: 112664
-
Bruno Cardoso Lopes authored
llvm-svn: 112661
-
Bruno Cardoso Lopes authored
llvm-svn: 112657
-
Bill Wendling authored
llvm-svn: 112654
-
- Aug 31, 2010
-
-
Jakob Stoklund Olesen authored
No CCR virtual registers should exist, and %EFLAGS is used in ways that can surprise RegAllocFast. llvm-svn: 112650
-
Bruno Cardoso Lopes authored
llvm-svn: 112644
-
Bruno Cardoso Lopes authored
llvm-svn: 112642
-
Jim Grosbach authored
determining if they're likely to be in range of the SP when resolving frame references. llvm-svn: 112624
-
Jim Grosbach authored
the offset is legally encodable, not actually trying to do the encoding. llvm-svn: 112622
-
Bill Wendling authored
- Convert {0,1} and friends into 0b01, which is identical and more consistent. llvm-svn: 112593
-
Bruno Cardoso Lopes authored
Use X86ISD::MOVSS and MOVSD to represent the movl mask pattern, also fix the handling of those nodes when seeking for scalars inside vector shuffles llvm-svn: 112570
-
Eric Christopher authored
llvm-svn: 112568
-
Eric Christopher authored
things we can't handle. llvm-svn: 112559
-
Anton Korobeynikov authored
scheduling opportunities (extra instruction can go in between MOVT / MOVW pair removing the stall). llvm-svn: 112546
-
Bill Wendling authored
is meant to do exactly the same thing. Thanks to Jim Grosbach for pointing this out! :-) llvm-svn: 112538
-
- Aug 30, 2010
-
-
Jakob Stoklund Olesen authored
kill flag. This could cause duplicate kill flags when the same register was used twice in a continuous sequence of STRs. There is no small test case. <rdar://problem/8218046> llvm-svn: 112534
-
Bob Wilson authored
Auto-upgrade the old intrinsic and update tests. llvm-svn: 112507
-
Jim Grosbach authored
Make ARM add rN, sp, #imm instructions rematerializable. That's how the address of locals is calculated, so this should help relieve register pressure a bit. Recalculating the local address is almost always going to be better than spilling. llvm-svn: 112503
-
Bob Wilson authored
operand is killed, add it to the expanded instruction as an implicit kill operand instead of marking the individual subregs with kill flags. This should work better in general and also handles the case for VST3 where one of the subregs was not referenced in the expanded instruction and so was not marked killed. llvm-svn: 112494
-
Bill Wendling authored
optional modified register (instead of reg0). Along with r112461 it will make sure that the optional define of CPSR is marked as "def" and will thus mark the instructions using these classes (t2ANDS*) as setting the 's' flag. llvm-svn: 112462
-