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