[MLton-devel] cvs commit: simple overflow detection elimination

Stephen Weeks MLton@mlton.org
Fri, 15 Nov 2002 14:00:33 -0800


Yesterday, I checked in some code to the redundant tests pass to 
do simple overflow detection elimination, and to fix a bug that had
turned redundant tests off entirely.  Here are the benchmarks showing
the effects.

MLton0 -- mlton -drop-pass redundantTests
MLton1 -- mlton -eliminate-overflow false
MLton2 -- mlton -eliminate-overflow true
MLton3 -- mlton -detect-overflow false

Here, MLton0 behaves like MLton before the bug fix to turn redundant
tests back on, i.e. how MLton has behaved for the last year.  MLton1
shows the effect of just turning redundant tests on, but not the new
overflow detection elimination.  MLton2 shows the effect of that.
MLton3 shows the best that overflow detection elimination could hope
for.

The code size numbers confirm that MLton0 >= MLton1 >= MLton2 >=
MLton3, i.e. that each successive optimization eliminates more stuff.
But the runtime numbers show that it doesn't matter all that much.  It
will be interesting to see if an analysis based on Bodik, Gupta,
Sarkar can eliminate more of significance.

run time ratio
benchmark         MLton1 MLton2 MLton3
barnes-hut          1.00   1.00   0.69
boyer               1.01   1.01   1.24
checksum            1.00   0.99   0.93
count-graphs        0.99   1.00   0.99
DLXSimulator        1.00   1.00   1.00
fft                 1.00   1.00   1.01
fib                 0.95   1.00   0.96
hamlet              1.03   1.03   1.02
imp-for             1.01   0.95   1.09
knuth-bendix        1.00   1.00   1.06
lexgen              1.16   0.99   1.01
life                1.00   1.00   0.91
logic               1.00   1.00   1.00
mandelbrot          1.00   0.97   0.81
matrix-multiply     1.00   1.00   0.93
md5                 1.00   1.00   0.95
merge               1.00   1.00   1.00
mlyacc              1.00   1.00   0.99
model-elimination   1.00   1.00   0.99
mpuz                1.00   1.00   0.93
nucleic             1.00   1.00   0.96
peek                1.00   1.00   1.32
psdes-random        0.99   1.01   1.04
ratio-regions       1.00   1.01   1.01
ray                 1.00   1.00   0.99
raytrace            1.01   1.01   1.01
simple              1.00   1.00   1.02
smith-normal-form   1.00   1.00   1.00
tailfib             1.00   1.00   0.81
tak                 0.99   0.98   0.90
tensor              1.03   1.01   0.95
tsp                 1.00   1.00   1.00
tyan                1.00   1.00   1.00
vector-concat       1.00   1.03   1.04
vector-rev          1.00   0.99   1.02
vliw                1.01   0.99   1.00
wc-input1           1.00   1.01   1.00
wc-scanStream       0.95   1.03   1.02
zebra               1.00   1.00   0.99
zern                1.00   0.99   0.98

size
benchmark            MLton0    MLton1    MLton2    MLton3
barnes-hut          103,104   103,104   103,008   102,120
boyer               140,495   140,471   140,471   140,431
checksum             43,751    43,751    43,735    43,647
count-graphs         64,759    64,079    63,759    63,271
DLXSimulator        102,320   102,304   101,312    99,152
fft                  52,923    52,923    52,763    52,283
fib                  43,807    43,807    43,807    43,615
hamlet            1,228,136 1,228,096 1,226,928 1,210,560
imp-for              43,823    43,823    43,711    43,567
knuth-bendix         86,240    86,240    86,224    84,312
lexgen              172,925   172,877   171,741   170,493
life                 62,143    62,143    62,175    61,847
logic               103,815   103,815   103,815   103,479
mandelbrot           43,855    43,855    43,791    43,495
matrix-multiply      44,311    44,311    44,295    44,183
md5                  52,824    52,824    52,840    51,752
merge                45,079    45,079    45,063    44,959
mlyacc              537,181   536,717   534,573   529,181
model-elimination   635,104   635,008   633,184   629,024
mpuz                 47,927    47,927    47,911    47,671
nucleic             190,959   190,959   190,959   190,983
peek                 51,896    51,880    51,864    51,512
psdes-random         44,911    44,911    44,895    44,847
ratio-regions        62,559    62,559    62,167    63,303
ray                 104,112   104,096   103,280   102,528
raytrace            278,925   278,941   277,757   276,029
simple              199,595   199,595   199,419   195,307
smith-normal-form   181,692   181,588   181,044   180,068
tailfib              43,519    43,519    43,519    43,375
tak                  43,919    43,919    43,919    43,527
tensor              104,363   104,331   103,659   101,611
tsp                  59,408    59,408    58,832    57,968
tyan                107,248   107,216   106,752   105,552
vector-concat        44,255    44,255    44,255    44,215
vector-rev           44,159    44,159    44,095    44,047
vliw                323,721   323,593   322,425   318,297
wc-input1            66,093    66,077    65,773    65,205
wc-scanStream        66,781    66,573    66,253    65,653
zebra               142,392   142,392   142,376   141,184
zern                 50,610    50,594    50,482    50,322


-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing 
your web site with SSL, click here to get a FREE TRIAL of a Thawte 
Server Certificate: http://www.gothawte.com/rd524.html
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel