MLton (fwd)

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Thu, 20 Dec 2001 08:34:18 -0500 (EST)


Here are the benchmark results with the new loop forest code being used by
the codegen. No surprises; runtimes with are all within .01 of runtimes
without, except for vector-concat which is .05 slower under the new code.
Probably just noise, but I'll take a look at the assembly.  Nothing much
else to note; compile times are down a little bit on the larger programs;
I do think I saw a noticable speed up in the x86-codegen on a self
compile, but I didn't save those numbers.  There seems to be a minor
increase in code size, but I'm not precisely sure why.

mlton-stable corresponds to a build on 20011213.
mlton is the currently checked in code.

MLton0 -- mlton-stable -native-live-stack false
MLton1 -- mlton-stable -native-live-stack true
MLton2 -- mlton -native-live-stack false
MLton3 -- mlton -native-live-stack true
compile time
benchmark         MLton0 MLton1 MLton2 MLton3
barnes-hut          2.53   2.84   2.55   2.85
checksum            0.61   0.57   0.59   0.62
count-graphs        1.77   2.02   1.76   2.03
DLXSimulator        4.55   5.97   4.48   5.95
fft                 1.28   1.58   1.29   1.54
fib                 0.54   0.55   0.55   0.55
hamlet             60.49  70.35  57.96  68.15
imp-for             0.63   0.56   0.59   0.59
knuth-bendix        2.24   2.47   2.25   2.47
lexgen              5.75   7.07   5.79   7.17
life                1.31   1.47   1.31   1.46
logic               3.10   3.44   3.06   3.48
mandelbrot          0.59   0.60   0.60   0.62
matrix-multiply     0.60   0.62   0.59   0.62
md5                 1.23   1.32   1.26   1.31
merge               0.59   0.61   0.60   0.61
mlyacc             23.52  40.22  23.45  43.08
mpuz                0.83   0.85   0.85   0.84
nucleic             2.80   2.85   2.72   2.91
peek                1.01   1.07   1.02   1.07
psdes-random        0.63   0.65   0.65   0.59
ratio-regions       2.52   3.31   2.50   3.36
ray                 3.59   4.49   3.58   4.43
raytrace            9.07  11.22   8.92  11.10
simple              7.30   9.43   7.28   9.42
smith-normal-form   8.07   8.60   7.93   8.54
tailfib             0.54   0.55   0.56   0.57
tak                 0.59   0.55   0.55   0.54
tensor              3.14   3.65   3.06   3.59
tsp                 1.50   1.61   1.51   1.58
tyan                3.93   4.61   3.93   4.72
vector-concat       0.62   0.66   0.62   0.61
vector-rev          0.56   0.62   0.60   0.63
vliw               13.00  15.92  12.93  15.96
wc-input1           1.63   1.89   1.66   1.86
wc-scanStream       1.67   1.98   1.70   1.99
zebra               6.67  10.84   5.80   9.95
zern                1.08   1.13   1.07   1.12
run time
benchmark         MLton0 MLton1 MLton2 MLton3
barnes-hut          4.32   3.86   4.32   3.87
checksum            3.09   3.02   3.10   3.02
count-graphs        5.00   4.98   4.99   4.96
DLXSimulator       15.49  14.61  15.47  14.58
fft                10.28  10.16  10.27  10.18
fib                 3.42   3.41   3.41   3.41
hamlet              8.27   8.27   8.21   8.30
imp-for             8.23   6.73   8.23   6.73
knuth-bendix        6.66   6.26   6.70   6.28
lexgen             10.80  10.65  10.80  10.64
life                6.91   5.82   6.90   5.85
logic              20.92  20.09  20.77  19.95
mandelbrot          6.20   5.67   6.20   5.66
matrix-multiply     3.99   3.96   4.01   3.93
md5                 2.03   1.94   2.03   1.94
merge              49.59  49.08  49.71  49.03
mlyacc              9.54   9.05   9.53   9.02
mpuz                4.57   4.26   4.57   4.21
nucleic             7.71   7.28   7.72   7.29
peek                3.25   2.63   3.25   2.63
psdes-random        3.36   2.87   3.36   2.82
ratio-regions       8.81   8.74   8.81   8.67
ray                 3.87   3.79   3.84   3.74
raytrace            4.78   4.61   4.77   4.63
simple              6.01   5.85   6.02   5.83
smith-normal-form   0.94   0.95   0.94   0.95
tailfib            15.48  12.35  15.48  12.35
tak                 8.68   7.84   8.77   8.02
tensor              5.82   3.82   5.82   3.82
tsp                 8.76   8.79   8.76   8.79
tyan               19.97  17.93  19.91  17.89
vector-concat       5.79   3.72   6.06   3.65
vector-rev          4.13   4.13   4.11   4.12
vliw                6.31   5.61   6.30   5.62
wc-input1           1.74   1.80   1.74   1.79
wc-scanStream       3.48   2.07   3.48   2.07
zebra               2.35   2.24   2.33   2.19
zern               35.23  31.95  35.58  32.04
run time ratio
benchmark         MLton1 MLton2 MLton3
barnes-hut          0.89   1.00   0.90
checksum            0.97   1.00   0.98
count-graphs        1.00   1.00   0.99
DLXSimulator        0.94   1.00   0.94
fft                 0.99   1.00   0.99
fib                 1.00   1.00   1.00
hamlet              1.00   0.99   1.00
imp-for             0.82   1.00   0.82
knuth-bendix        0.94   1.01   0.94
lexgen              0.99   1.00   0.99
life                0.84   1.00   0.85
logic               0.96   0.99   0.95
mandelbrot          0.91   1.00   0.91
matrix-multiply     0.99   1.00   0.98
md5                 0.96   1.00   0.96
merge               0.99   1.00   0.99
mlyacc              0.95   1.00   0.95
mpuz                0.93   1.00   0.92
nucleic             0.94   1.00   0.94
peek                0.81   1.00   0.81
psdes-random        0.85   1.00   0.84
ratio-regions       0.99   1.00   0.98
ray                 0.98   0.99   0.97
raytrace            0.96   1.00   0.97
simple              0.97   1.00   0.97
smith-normal-form   1.00   1.00   1.00
tailfib             0.80   1.00   0.80
tak                 0.90   1.01   0.92
tensor              0.66   1.00   0.66
tsp                 1.00   1.00   1.00
tyan                0.90   1.00   0.90
vector-concat       0.64   1.05   0.63
vector-rev          1.00   0.99   1.00
vliw                0.89   1.00   0.89
wc-input1           1.03   1.00   1.03
wc-scanStream       0.60   1.00   0.59
zebra               0.95   0.99   0.94
zern                0.91   1.01   0.91
size
benchmark            MLton0    MLton1    MLton2    MLton3
barnes-hut           68,537    68,873    69,200    69,520
checksum             20,493    20,461    21,000    20,968
count-graphs         43,749    45,061    44,256    45,568
DLXSimulator         98,741    98,901    99,296   100,192
fft                  31,977    31,929    32,484    32,436
fib                  20,493    20,461    21,000    20,968
hamlet            1,499,184 1,588,376 1,499,755 1,589,171
imp-for              20,485    20,341    20,992    20,848
knuth-bendix         64,990    65,518    65,529    66,089
lexgen              156,429   157,325   157,032   157,960
life                 40,469    40,197    40,976    40,704
logic                88,317    85,261    88,824    85,768
mandelbrot           20,453    20,453    20,960    20,960
matrix-multiply      20,901    20,933    21,408    21,440
md5                  30,926    30,798    31,481    31,353
merge                21,701    21,637    22,208    22,144
mlyacc              578,685   598,685   579,288   599,400
mpuz                 25,469    25,293    25,976    25,816
nucleic              62,661    63,109    63,168    63,616
peek                 30,470    30,358    31,025    30,913
psdes-random         21,461    21,381    21,968    21,888
ratio-regions        43,621    46,901    44,128    47,408
ray                  84,672    87,024    85,259    87,739
raytrace            204,221   211,493   204,824   212,192
simple              194,457   200,265   194,996   200,804
smith-normal-form   148,069   149,765   148,732   150,444
tailfib              20,165    20,133    20,672    20,640
tak                  20,613    20,581    21,120    21,088
tensor               70,860    70,044    71,523    70,819
tsp                  36,510    36,670    37,065    37,225
tyan                 91,342    92,462    91,897    93,033
vector-concat        21,301    21,189    21,808    21,696
vector-rev           21,117    21,053    21,624    21,560
vliw                340,025   343,529   340,628   344,244
wc-input1            44,518    44,758    45,121    45,377
wc-scanStream        45,814    45,942    46,417    46,561
zebra               127,086   144,782   127,641   145,337
zern                 27,624    27,144    28,131    27,651