- Sep 07, 2010
-
-
Chris Lattner authored
of a mneumonic, report operand errors with better location info. For example, we now report: t.s:6:14: error: invalid operand for instruction cwtl $1 ^ but we fail for common cases like: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ because we don't know if this is supposed to be the reg/imm or imm/reg form. llvm-svn: 113178
-
- Sep 06, 2010
-
-
Chris Lattner authored
give a more detailed error. Before: t.s:11:4: error: unrecognized instruction addl $1, $1 ^ t.s:12:4: error: unrecognized instruction f2efqefa $1 ^ After: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ t.s:12:4: error: invalid instruction mnemonic 'f2efqefa' f2efqefa $1 ^ This fixes rdar://8017912 - llvm-mc says "unrecognized instruction" when it means "invalid operands" llvm-svn: 113176
-
Chris Lattner authored
llvm-svn: 113167
-
Chris Lattner authored
failed because a subtarget feature was not enabled. Use this to remove a bunch of hacks from the X86AsmParser for rejecting things like popfl in 64-bit mode. Previously these hacks weren't needed, but were important to get a message better than "invalid instruction" when used in the wrong mode. This also fixes bugs where pushal would not be rejected correctly in 32-bit mode (just pusha). llvm-svn: 113166
-
Chris Lattner authored
llvm-svn: 113165
-
Chris Lattner authored
into the middle of the class, and rework how the different sections of the generated file are conditionally included for simplicity. llvm-svn: 113163
-
Roman Divacky authored
llvm-svn: 113158
-
Chris Lattner authored
llvm-svn: 113157
-
Chris Lattner authored
pattern, so there is no need to define a matching function. llvm-svn: 113122
-
- Sep 05, 2010
-
-
Chris Lattner authored
llvm-svn: 113119
-
Chris Lattner authored
llvm-svn: 113116
-
rdar://6653118Chris Lattner authored
Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. llvm-svn: 113102
-
- Sep 04, 2010
-
-
Chris Lattner authored
llvm-svn: 113073
-
Chris Lattner authored
not SelectAddr llvm-svn: 113072
-
Bruno Cardoso Lopes authored
llvm-svn: 113059
-
Bruno Cardoso Lopes authored
llvm-svn: 113058
-
Bruno Cardoso Lopes authored
llvm-svn: 113056
-
Bruno Cardoso Lopes authored
llvm-svn: 113055
-
Bruno Cardoso Lopes authored
llvm-svn: 113050
-
Bruno Cardoso Lopes authored
llvm-svn: 113048
-
Bruno Cardoso Lopes authored
llvm-svn: 113047
-
Bruno Cardoso Lopes authored
llvm-svn: 113045
-
Bruno Cardoso Lopes authored
llvm-svn: 113044
-
Bruno Cardoso Lopes authored
llvm-svn: 113043
-
Bruno Cardoso Lopes authored
llvm-svn: 113035
-
Bruno Cardoso Lopes authored
llvm-svn: 113034
-
Bruno Cardoso Lopes authored
checking each standalone condition and decide whether emit target specific nodes or remove the condition if it's already matched before. llvm-svn: 113031
-
Bruno Cardoso Lopes authored
"Use target specific nodes instead of relying in unpckl and unpckh pattern fragments during isel time. Also place a depth limit in getShuffleScalarElt. llvm-svn: 113020
-
- Sep 03, 2010
-
-
Dale Johannesen authored
Bruno, please review. llvm-svn: 113014
-
Bruno Cardoso Lopes authored
llvm-svn: 113009
-
Bruno Cardoso Lopes authored
llvm-svn: 113008
-
Bruno Cardoso Lopes authored
functional changes llvm-svn: 113007
-
Bruno Cardoso Lopes authored
llvm-svn: 113006
-
Daniel Dunbar authored
some infinite loop and select failures. - Apologies for eager reverting, but its branch day. llvm-svn: 113000
-
Daniel Dunbar authored
infinite loop and select failures. llvm-svn: 112999
-
Daniel Dunbar authored
mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. llvm-svn: 112998
-
Jim Grosbach authored
"For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs." r112986 fixed a latent bug exposed by the above. llvm-svn: 112989
-
Jim Grosbach authored
alignment should be performed. Otherwise dynamic realignment may trigger when the register allocator has already used the frame pointer as a general purpose register. That is, we need to make sure that the list of reserved registers doesn't change after register allocation. llvm-svn: 112986
-
Bob Wilson authored
instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. llvm-svn: 112983
-
Daniel Dunbar authored
Revert "For ARM stack frames that utilize variable sized objects and have either", it is breaking oggenc with Clang for ARMv6. This reverts commit 8d6e29cfda270be483abf638850311670829ee65. llvm-svn: 112962
-