LLVM backend for 6502
Go to file
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
autoconf First step of implementing PR1538: move llvm2cpp logic to new 'target' 2008-04-23 22:29:24 +00:00
bindings Merge LLVMBuilder and FoldingBuilder, calling 2008-04-13 06:22:09 +00:00
docs % -> @ 2008-04-24 06:00:30 +00:00
examples Merge LLVMBuilder and FoldingBuilder, calling 2008-04-13 06:22:09 +00:00
include Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
lib Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime Fixing the stack walker. 2008-01-24 05:16:36 +00:00
test Implement a signficant optimization for inline asm: 2008-04-27 00:37:18 +00:00
tools Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
utils Apple GCC 4.2 builds things differently. It no longer spawns a bunch of 2008-04-15 21:33:52 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 VisualStudio project files updated. #include <algorithm> added to make VisualStudio happy. Also had to undefine setjmp because of #include <csetjmp> turning setjmp into _setjmp in VisualStudio. 2008-04-15 21:27:11 +00:00
Xcode Merge LLVMBuilder and FoldingBuilder, calling 2008-04-13 06:22:09 +00:00
build-for-llvm-top.sh Allow the configure options to be set according to the llvm-top options. 2007-08-31 19:53:42 +00:00
configure First step of implementing PR1538: move llvm2cpp logic to new 'target' 2008-04-23 22:29:24 +00:00
CREDITS.TXT Add Mikhail to credits file 2008-03-23 08:58:32 +00:00
LICENSE.TXT scoped_ptr.h was removed. 2008-02-09 22:50:06 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile a happier version of happiness 2008-03-21 22:17:07 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in Reverting r48974. See PR2183 for details. 2008-03-31 16:46:23 +00:00
Makefile.rules Refresh Makefile.ocaml in objdir if it is modified in srcdir. 2008-03-10 15:58:40 +00:00
ModuleInfo.txt Update to include clean and install commands. 2007-07-20 20:54:41 +00:00
README.txt test 2007-04-20 20:49:25 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level 
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments. 

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.