llvm-project/llvm/test
Chris Lattner 2237973438 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.

llvm-svn: 50315
2008-04-27 00:37:18 +00:00
..
Analysis rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
Archive Delete the svn:executable property on these files, which aren't executable. 2007-07-23 19:26:08 +00:00
Assembler returning an empty multiple return list is not valid. 2008-04-23 05:29:14 +00:00
Bindings/Ocaml Expose ExecutionEngine::getTargetData() to c and ocaml bindings. 2008-03-27 00:27:14 +00:00
Bitcode fix this test. 2008-02-17 00:15:25 +00:00
BugPoint Remove llvm-upgrade 2008-02-17 00:15:09 +00:00
C++Frontend Add -m32 to compilation line; test is only valid in 2008-03-10 17:56:53 +00:00
CFrontend Make these structs larger to ensure that they 2008-04-21 08:17:05 +00:00
CodeGen Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
DebugInfo Remove llvm-upgrade and update tests. 2008-03-10 07:21:50 +00:00
ExecutionEngine rename *.llx -> *.ll, last batch. 2008-04-19 22:32:52 +00:00
Feature Update test 2008-04-25 17:54:21 +00:00
FrontendAda Testcase for gimplify_expr crash caused by an 2008-01-15 19:55:41 +00:00
FrontendObjC new testcase 2008-04-25 18:11:06 +00:00
Integer refactor handling of symbolic constant folding, picking up 2008-04-19 21:58:19 +00:00
Linker This passes now 2008-03-10 22:34:11 +00:00
Other Fix tests due to llvm2cpp move to llc target 2008-04-23 22:41:53 +00:00
Scripts Add a test script for counting lines. This can be used instead of the 2007-08-10 15:07:05 +00:00
TableGen Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
Transforms When SRoA'ing a global variable, make sure the new globals get the 2008-04-26 07:40:11 +00:00
Verifier Add testcase for prev. commit. Minor fixes 2008-03-22 08:37:05 +00:00
lib Fix tests due to llvm2cpp move to llc target 2008-04-23 22:41:53 +00:00
Makefile Add EXTRA_OPTIONS on the llvmgxx command line. 2008-04-24 17:59:03 +00:00
Makefile.tests Failure.sh is dead, remove it. 2007-04-21 20:46:55 +00:00
TestRunner.sh Avoid an infinite loop when TestRunner.sh is run outside of the test dir. 2007-05-18 02:06:03 +00:00