llvm-6502/lib
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
..
Analysis Fix the way AliasSet::print prints "may alias". 2008-04-21 19:48:48 +00:00
Archive Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
AsmParser Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
Bitcode Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
CodeGen Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
Debugger Make these variables static. 2008-04-23 23:15:23 +00:00
ExecutionEngine PR2202: LLVMCreateInterpreter creates a JIT 2008-04-25 02:52:30 +00:00
Linker Revert r49614. As Dan pointed out, some of these aren't correct. 2008-04-14 17:38:21 +00:00
Support Make these variables static. 2008-04-23 23:15:23 +00:00
System Restore code to disable crash catcher on older OS X systems 2008-04-12 00:47:46 +00:00
Target A few inline asm cleanups: 2008-04-26 23:02:14 +00:00
Transforms Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
VMCore Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00