- 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
-
Benjamin Kramer authored
llvm-svn: 113155
-
Chris Lattner authored
llvm-svn: 113147
-
Chris Lattner authored
llvm-svn: 113146
-
Chris Lattner authored
llvm-svn: 113144
-
Chris Lattner authored
llvm-svn: 113135
-
Chris Lattner authored
in the duplicated block instead of duplicating them. Duplicating them into the end of the loop and the preheader means that we got a phi node in the header of the loop, which prevented LICM from hoisting them. GVN would usually come around later and merge the duplicated instructions so we'd get reasonable output... except that anything dependent on the shoulda-been-hoisted value can't be hoisted. In PR5319 (which this fixes), a memory value didn't get promoted. llvm-svn: 113134
-
Chris Lattner authored
Loop::hasLoopInvariantOperands method. Remove a useless and confusing Loop::isLoopInvariant(Instruction) method, which didn't do what you thought it did. No functionality change. llvm-svn: 113133
-
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: 113117
-
Chris Lattner authored
llvm-svn: 113116
-
Chris Lattner authored
llvm-svn: 113115
-
Chris Lattner authored
llvm-svn: 113114
-
Chris Lattner authored
llvm-svn: 113113
-
Chris Lattner authored
llvm-svn: 113109
-
Lang Hames authored
llvm-svn: 113108
-
Nick Lewycky authored
llvm-svn: 113106
-
Nick Lewycky authored
This reduces malloc traffic (yay!) and removes MergeFunctionsEqualityInfo. llvm-svn: 113105
-
Nick Lewycky authored
strong functions first to make sure they're the canonical definitions and then do a second pass looking only for weak functions. llvm-svn: 113104
-
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
-
-
Jakob Stoklund Olesen authored
Clobber ranges are no longer used when joining physical registers. Instead, all aliases are checked for interference. llvm-svn: 113084
-
Chris Lattner authored
llvm-svn: 113077
-
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
-
Dan Gohman authored
into an inner loop, as the new loop iteration may differ substantially. This fixes PR8078. llvm-svn: 113057
-
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
-