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