- Nov 02, 2010
-
-
Jakob Stoklund Olesen authored
source, and let rewrite() clean it up. This way, kill flags on the inserted copies are fixed as well during rewrite(). We can't just assume that all the copies we insert are going to be kills since critical edges into loop headers sometimes require both source and dest to be live out of a block. llvm-svn: 117980
-
Jim Grosbach authored
for handling the fixup necessary. llvm-svn: 117978
-
Jim Grosbach authored
llvm-svn: 117977
-
Bob Wilson authored
This is another part of the fix for Radar 8599955. llvm-svn: 117976
-
Bill Wendling authored
llvm-svn: 117971
-
Bill Wendling authored
llvm-svn: 117969
-
Chris Lattner authored
llvm-svn: 117967
-
- Nov 01, 2010
-
-
Bob Wilson authored
llvm-svn: 117964
-
Jakob Stoklund Olesen authored
At least X86FloatingPoint requires correct kill flags after register allocation, and targets using register scavenging benefit. Conservative kill flags are not enough. llvm-svn: 117960
-
Jakob Stoklund Olesen authored
llvm-svn: 117959
-
Bill Wendling authored
llvm-svn: 117956
-
Owen Anderson authored
bits are zero, not that the current low bits are zero. Fixes <rdar://problem/8606771>. llvm-svn: 117953
-
Chris Lattner authored
from X86AsmParser.cpp llvm-svn: 117952
-
Bill Wendling authored
at more than those which define CPSR. You can have this situation: (1) subs ... (2) sub r6, r5, r4 (3) movge ... (4) cmp r6, 0 (5) movge ... We cannot convert (2) to "subs" because (3) is using the CPSR set by (1). There's an analogous situation here: (1) sub r1, r2, r3 (2) sub r4, r5, r6 (3) cmp r4, ... (5) movge ... (6) cmp r1, ... (7) movge ... We cannot convert (1) to "subs" because of the intervening use of CPSR. llvm-svn: 117950
-
Jakob Stoklund Olesen authored
give them individual stack slots once the are actually spilled. llvm-svn: 117945
-
Jakob Stoklund Olesen authored
When an instruction refers to a spill slot with a LiveStacks entry, check that the spill slot is live at the instruction. llvm-svn: 117944
-
Bob Wilson authored
llvm-svn: 117940
-
Jim Grosbach authored
llvm-svn: 117936
-
Jim Grosbach authored
codegen using the patterns; the latter gates the assembler recognizing the instruction. llvm-svn: 117931
-
Rafael Espindola authored
llvm-svn: 117930
-
Jim Grosbach authored
llvm-svn: 117929
-
Jim Grosbach authored
llvm-svn: 117927
-
Rafael Espindola authored
llvm-svn: 117925
-
Jim Grosbach authored
patterns as such llvm-svn: 117923
-
Rafael Espindola authored
llvm-svn: 117922
-
Rafael Espindola authored
llvm-svn: 117911
-
Bill Wendling authored
*_Encode classes. These instructions are the only ones which use those classes, so a subclass isn't necessary. llvm-svn: 117906
-
Bill Wendling authored
llvm-svn: 117904
-
Chris Lattner authored
must be 8 bits. Support this memory form. llvm-svn: 117902
-
Chris Lattner authored
aliases installed and working. They now work when the matched pattern and the result instruction have exactly the same operand list. This is now enough for us to define proper aliases for movzx and movsx, implementing rdar://8017633 and PR7459. Note that we do not accept instructions like: movzx 0(%rsp), %rsi GAS accepts this instruction, but it doesn't make any sense because we don't know the size of the memory operand. It could be 8/16/32 bits. llvm-svn: 117901
-
Chris Lattner authored
in their asmstring. Fix the two x86 "NOREX" instructions that have them. If these comments are important, the instlowering stuff can print them. llvm-svn: 117897
-
Chris Lattner authored
various X86 and ARM instructions that are bitten by this as isCodeGenOnly, as they are. llvm-svn: 117884
-
- Oct 31, 2010
-
-
Eric Christopher authored
llvm-svn: 117879
-
Bill Wendling authored
looks like is happening: Without the peephole optimizer: (1) sub r6, r6, #32 orr r12, r12, lr, lsl r9 orr r2, r2, r3, lsl r10 (x) cmp r6, #0 ldr r9, LCPI2_10 ldr r10, LCPI2_11 (2) sub r8, r8, #32 (a) movge r12, lr, lsr r6 (y) cmp r8, #0 LPC2_10: ldr lr, [pc, r10] (b) movge r2, r3, lsr r8 With the peephole optimizer: ldr r9, LCPI2_10 ldr r10, LCPI2_11 (1*) subs r6, r6, #32 (2*) subs r8, r8, #32 (a*) movge r12, lr, lsr r6 (b*) movge r2, r3, lsr r8 (1) is used by (x) for the conditional move at (a). (2) is used by (y) for the conditional move at (b). After the peephole optimizer, these the flags resulting from (1*) are ignored and only the flags from (2*) are considered for both conditional moves. llvm-svn: 117876
-
Nicolas Geoffray authored
llvm-svn: 117867
-
Chris Lattner authored
Use this to make the X86 and ARM targets set isCodeGenOnly=1 automatically for their instructions that have Format=Pseudo, resolving a hack in tblgen. llvm-svn: 117862
-
Chris Lattner authored
and make it a hard error for instructions to not have an asm string. These instructions should be marked isCodeGenOnly. llvm-svn: 117861
-
Chris Lattner authored
got a dulicated line). llvm-svn: 117860
-
Chris Lattner authored
llvm-svn: 117859
-
Chris Lattner authored
Instead of silently ignoring these instructions, emit a hard error and force the target author to either refactor the target or mark the instruction 'isCodeGenOnly'. Mark a few instructions in ARM and MBlaze as isCodeGenOnly the are doing this. llvm-svn: 117858
-