RSSA backend
Stephen Weeks
MLton@sourcelight.com
Tue, 15 Jan 2002 18:41:48 -0800
I've checked in a version that passes all tests. See the logs.
Matthew, have a go at getting it to work with the x86-codegen when you
get the chance. The main problems you may encounter that I can think
of are the new stack pointer convention and the liveness info in the
Machine IL. Let me know if you have problems or when it's ready and
I'll merge RSSA in to the main line.
One other strangeness, I ran all the benchmarks comparing the current
stable MLton and the (just checked in) RSSA version, both using the C
codegen. Weirdly enough, the RSSA version was noticeable faster in
most cases. I have no explanation. Here are the timings.
MLton0 -- /usr/local/bin/mlton -native false
MLton1 -- mlton -native false
run time ratio
benchmark MLton1
barnes-hut 0.86
checksum 0.99
count-graphs 0.95
DLXSimulator 0.93
fft 0.95
fib 0.99
hamlet 1.02
imp-for 0.84
knuth-bendix 0.94
lexgen 1.20
life 0.83
logic 1.23
mandelbrot 0.73
matrix-multiply 0.82
md5 0.97
merge 1.11
mlyacc 0.91
mpuz 0.77
nucleic 0.92
peek 1.11
psdes-random 0.94
ratio-regions 0.82
ray 1.02
raytrace 0.93
simple 0.92
smith-normal-form 0.99
tailfib 0.98
tak 0.93
tensor 0.98
tsp 1.02
tyan 0.99
vector-concat 0.88
vector-rev 0.92
vliw 0.88
wc-input1 0.72
wc-scanStream 0.70
zebra 0.47
zern 0.89
size
benchmark MLton0 MLton1
barnes-hut 68,197 64,189
checksum 20,885 20,893
count-graphs 43,933 41,989
DLXSimulator 97,933 81,885
fft 33,949 32,645
fib 20,757 20,813
hamlet 1,367,888 1,429,680
imp-for 20,765 20,805
knuth-bendix 60,622 61,838
lexgen 154,573 140,069
life 37,669 37,165
logic 62,717 63,285
mandelbrot 20,709 20,781
matrix-multiply 21,333 21,405
md5 32,014 33,062
merge 21,709 21,789
mlyacc 573,637 524,909
mpuz 26,069 25,541
nucleic 48,657 48,161
peek 29,326 29,630
psdes-random 21,549 21,477
ratio-regions 54,269 46,005
ray 79,240 78,504
raytrace 258,477 180,165
simple 202,461 195,541
smith-normal-form 144,101 139,285
tailfib 20,477 20,565
tak 20,741 20,845
tensor 70,556 65,828
tsp 36,188 37,588
tyan 91,974 85,094
vector-concat 21,517 21,461
vector-rev 21,325 21,253
vliw 319,377 293,841
wc-input1 43,526 41,758
wc-scanStream 44,814 42,814
zebra 148,158 91,054
zern 27,876 26,948