CWS paper
Stephen Weeks
MLton@sourcelight.com
Mon, 27 Nov 2000 09:38:29 -0800 (PST)
> I extended the MLton's contification pass to transform based on the results of
> either, both, or neither analysis. Here are the running times in seconds for
> all of the benchmarks, compiled four different ways: without any contification,
> with just call based continuation, with just continuation based contification,
> and with both.
...
My apologies, but the original running times I mailed were gathered with a
compiler flag set that caused different CPS functions to be compiled to
different C functions. This flag causes excessive penalty to function calls due
to extra trampolining. I turned this flag off (back to the default setting) and
reran the benchmarks. Here are the times. There isn't a huge qualitative
difference in terms of which analysis performs better on which benchmark. The
main difference is that the times are closer together.
neither call cont both
barnes-hut 7.3 4.8 7.1 4.9
checksum 8.2 3.9 3.9 3.9
count-graphs 10.3 7.9 8.7 7.7
fft 27.1 20.9 21.2 20.9
fib 6.1 6.0 6.0 6.0
knuth-bendix 10.2 9.4 8.8 9.4
lexgen 26.5 18.1 23.1 17.4
life 37.1 25.5 31.1 25.6
logic 47.1 43.9 43.4 43.8
mandelbrot 23.9 8.6 8.6 8.6
matrix-multiply 8.4 5.5 5.4 5.4
merge 47.2 43.7 44.9 44.9
mlyacc 26.1 15.5 23.2 15.5
mpuz 43.2 20.7 38.6 20.7
nucleic 14.4 12.1 13.5 12.0
ratio-regions 24.2 12.2 12.4 12.2
simple 10.9 10.2 11.8 10.2
smith-normal-form 1.2 1.2 1.2 1.2
tak 12.7 13.1 13.1 13.1
tensor 6.0 4.0 4.2 4.2
tsp 20.2 13.5 14.2 13.4
vliw 18.0 9.8 14.1 9.7
wc-input1 4.6 3.0 3.0 3.1
wc-scanStream 28.8 11.9 11.9 12.2
zern 62.2 34.7 34.8 34.8