Skip to content
  • Chris Lattner's avatar
    Substantially revamp the local spiller, causing it to actually improve the · d3b1f6c7
    Chris Lattner authored
    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%)
    
    llvm-svn: 16629
    d3b1f6c7
Loading