llvm-6502/lib
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
..
Analysis 'Pass' should now not be derived from by clients. Instead, they should derive 2004-09-20 04:48:05 +00:00
Archive Changes For Bug 352 2004-09-01 22:55:40 +00:00
AsmParser Okay, the list of link-time passes wasn't such a hot idea. Its prone to 2004-09-14 05:43:23 +00:00
Bytecode Fix doxygen comment 2004-09-28 16:57:46 +00:00
CodeGen Substantially revamp the local spiller, causing it to actually improve the 2004-10-01 19:04:51 +00:00
Debugger Changes For Bug 352 2004-09-01 22:55:40 +00:00
ExecutionEngine Convert code to compile with vc7.1. 2004-09-15 17:06:42 +00:00
Linker Implement support for dependent libraries. The "source" module's dependent 2004-09-11 04:25:17 +00:00
Support Add includes and use std:: for standard library calls to make code 2004-09-28 14:42:44 +00:00
System That should actually be __MING, not __MINGW. 2004-09-30 18:28:07 +00:00
Target Make EmitMappingInfo into an "external location" option, so that it can be set 2004-09-30 20:20:01 +00:00
Transforms Add accessor function. 2004-09-30 20:14:29 +00:00
VMCore Make sure to check select instructions for generic instruction properties 2004-09-29 21:19:28 +00:00
Makefile Wrap long line 2004-09-15 01:34:42 +00:00