LLVM backend for 6502
Go to file
Evan Cheng f50d09ad21 Fixed a long standing spiller bug that's exposed by Thumb:
The code sequence before the spiller is something like:
                 = tMOVrr
        %reg1117 = tMOVrr
        %reg1078 = tLSLri %reg1117, 2

The it starts spilling:
        %r0 = tRestore <fi#5>, 0
        %r1 = tRestore <fi#7>, 0
        %r1 = tMOVrr %r1<kill>
        tSpill %r1, <fi#5>, 0
        %reg1078 = tLSLri %reg1117, 2

It restores the value while processing the first tMOVrr. At this point, the
spiller remembers fi#5 is available in %r0. Next it processes the second move.
It restores the source before the move and spills the result afterwards. The
move becomes a noop and is deleted. However, a spill has been inserted and that
should invalidate reuse of %r0 for fi#5 and add reuse of %r1 for fi#5.
Therefore, %reg1117 (which is also assigned fi#5) should get %r1, not %r0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34039 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 06:04:54 +00:00
autoconf
docs remove some obsolete SymbolTable methods. These docs need to be updated 2007-02-07 06:24:17 +00:00
examples
include Added new method to finish up the addition of passes to emit files. This 2007-02-08 01:34:45 +00:00
lib Fixed a long standing spiller bug that's exposed by Thumb: 2007-02-08 06:04:54 +00:00
projects
runtime
test New testcase for PR947 2007-02-08 04:34:03 +00:00
tools Avoid assert() in lto. Let linker handle all failures. Use LTO_WRITE_FAILURE 2007-02-08 01:48:28 +00:00
utils Automatically generating intrinsic declarations from Dan Gohman. Modified 2007-02-07 20:38:26 +00:00
win32
Xcode Update project 2007-01-29 18:45:08 +00:00
.cvsignore
configure Regenerate. 2007-01-21 06:42:03 +00:00
CREDITS.TXT
LICENSE.TXT Welcome 2007. 2007-01-18 21:22:36 +00:00
llvm.spec.in
Makefile Add a show-footprint target to run du a few times to show how much disk 2007-02-05 23:18:58 +00:00
Makefile.common
Makefile.config.in
Makefile.rules Make the cleaning of BUILT_SOURCES be a "clean-all" target item, not a 2007-02-07 19:13:19 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +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.