LLVM backend for 6502
Go to file
Chris Lattner 7fb64347d7 Substantially revamp the local spiller, causing it to actually improve the
generated code over the simple spiller.  The new local spiller generates
substantially better code than the simple one in some cases, by reusing
values that are loaded out of stack slots and kept available in registers.

This primarily helps programs that are spilling a lot, and there is still
stuff that can be done to improve it.  This patch makes the local spiller
the default, as it's only a tiny bit slower than the simple spiller (it
increases the runtime of llc by < 1%).

Here are some numbers with speedups.

Program    #reuse  old(s)    new(s)  Speedup

Povray:     3452,  16.87 ->  15.93   (5.5%)
177.mesa:   2176,   2.77 ->   2.76   (0%)
179.art:      35,  28.43 ->  28.01   (1.5%)
183.equake:   55,  61.44 ->  61.41   (0%)
188.ammp:    869, 174    -> 149      (15%)

164.gzip:     43,  40.73 ->  40.71   (0%)
175.vpr:     351,  18.54 ->  17.34   (6.5%)
176.gcc:    2471,   5.01 ->   4.92   (1.8%)
181.mcf       42,  79.30 ->  75.20   (5.2%)
186.crafty:  484,  29.73 ->  30.04   (-1%)
197.parser:  251,  10.47 ->  10.67   (-1%)
252.eon:    1501,   1.98 ->   1.75   (12%)
253.perlbm: 1183,  14.83 ->  14.42   (2.8%)
254.gap:     825,   7.46 ->   7.29   (2.3%)
255.vortex:  285,  10.51 ->  10.27   (2.3%)
256.bzip2:    63,  55.70 ->  55.20   (0.9%)
300.twolf:   830,  21.63 ->  22.00   (-1%)

PtrDist/ks    14,  32.75 -> 17.53    (46.5%)
Olden/tsp     46,   8.71 ->  8.24    (5.4%)
Free/distray  70,   1.09 ->  0.99    (9.2%)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16629 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-01 19:04:51 +00:00
autoconf Improve warning 2004-09-27 07:35:19 +00:00
docs Add note about converting Skeleton to a useful backend and using it in the 2004-10-01 18:36:22 +00:00
examples Correct the file header to reflect the new "examples" home for the file. 2004-09-11 20:30:11 +00:00
include/llvm Add const version of getLastBlock() member function. 2004-09-30 21:42:02 +00:00
lib Substantially revamp the local spiller, causing it to actually improve the 2004-10-01 19:04:51 +00:00
projects Stacker compiler library doesn't need to be shared and it can cause 2004-09-15 06:22:54 +00:00
runtime Disable libprofile as it breaks the build on Sparc (autoconf issues). 2004-09-08 20:30:26 +00:00
test The verifier takes 50s on this testcase, that is not good n stuff 2004-09-29 20:07:25 +00:00
tools Hrm, if there is an error loading a file, try printing a message so the 2004-09-27 16:41:01 +00:00
utils #include DataTypes.h to compile on MinGW, patch by Henrik Bach. 2004-09-30 18:27:39 +00:00
.cvsignore
configure Improve warning 2004-09-27 07:35:19 +00:00
CREDITS.TXT Update email address 2004-09-23 04:39:30 +00:00
LICENSE.TXT Adjust the license files based on the actual content of llvm and llvm-test 2004-09-16 16:41:31 +00:00
llvm.spec Updated for 1.3. 2004-08-16 15:17:40 +00:00
llvm.spec.in Updated for 1.3. 2004-08-16 15:17:40 +00:00
Makefile Changed the distclean target to handle the new location of config.h. 2004-09-17 15:08:25 +00:00
Makefile.common
Makefile.config.in PAPI is not used here. 2004-09-07 17:34:34 +00:00
Makefile.rules Corrected spelling of Makefile variable, thereby re-enabling profile 2004-09-28 14:52:58 +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.