llvm-6502/test/CodeGen
Chris Lattner 5a09690446 Implement a signficant optimization for inline asm:
When choosing between constraints with multiple options,
like "ir", test to see if we can use the 'i' constraint and
go with that if possible.  This produces more optimal ASM in
all cases (sparing a register and an instruction to load it),
and fixes inline asm like this:

void test () {
  asm volatile (" %c0 %1 " : : "imr" (42), "imr"(14));
}

Previously we would dump "42" into a memory location (which
is ok for the 'm' constraint) which would cause a problem
because the 'c' modifier is not valid on memory operands.

Isn't it great how inline asm turns 'missed optimization'
into 'compile failed'??

Incidentally, this was the todo in 
PowerPC/2007-04-24-InlineAsm-I-Modifier.ll

Please do NOT pull this into Tak.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50315 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-27 00:37:18 +00:00
..
Alpha Fix RUN line. 2008-03-09 19:55:22 +00:00
ARM If a PHI node has a single implicit_def source, replace it with an implicit_def instead of a copy. 2008-04-11 17:54:45 +00:00
CBackend rename *.llx -> *.ll 2008-04-19 22:29:10 +00:00
CellSPU Upgrade these tests for the current intrinsic prototypes. 2008-04-14 18:19:18 +00:00
Generic Remove the code from CodeGenPrepare that moved getresult instructions 2008-04-25 18:27:55 +00:00
IA64 Remove llvm-upgrade and update tests. 2008-02-19 01:41:04 +00:00
PowerPC Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
SPARC Remove llvm-upgrade and update tests. 2008-02-19 01:41:04 +00:00
X86 Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00