unused-args

Matthew Fluet mfluet@intertrust.com
Sat, 21 Jul 2001 23:11:21 -0700 (PDT)


> Damn it!  I thought those numbers looked suspiciously like Steve's results
> for the local flatten.  And they are, because I didn't change the action
> of the -unused-args flag from updating Control.localFlatten when I
> cut&pasted.

Alright, here are the real numbers.  Same compilers as before:

MLton is the new codegen (tracking stack slots) with both the local
flatten and unused args optimizations.

old MLton is the new codegen (tracking stack slots) with the local flatten
optimization, but the unused args optimization turned off.

stable MLton is essentially the release (the release compiler with a
slightly updated basis library.)

And the results show that unused args has virtually no effect on runtime.
All of my previous comments on the new codegen vs. the release still
stand.

run time ratio
benchmark         stable MLton old MLton
barnes-hut                 1.1       1.0
checksum                   1.0       1.0
count-graphs               1.0       1.0
DLXSimulator               1.0       1.0
fft                        1.1       1.0
fib                        1.0       1.0
hamlet                     1.1       1.0
knuth-bendix               1.0       1.0
lexgen                     1.1       1.0
life                       0.8       1.0
logic                      1.2       1.0
mandelbrot                 1.1       1.0
matrix-multiply            1.2       0.9
md5                        0.9       1.0
merge                      1.3       1.0
mlyacc                     1.2       1.0
mpuz                       0.9       1.0
nucleic                    1.0       1.0
peek                       1.1       1.0
psdes-random               1.6       1.0
ratio-regions              0.9       1.0
ray                        1.0       1.0
raytrace                   1.1       1.0
simple                     0.9       1.0
smith-normal-form          1.0       1.0
tak                        0.9       1.0
tensor                     1.1       1.0
tsp                        1.1       1.0
vector-concat              2.1       1.0
vector-rev                 0.9       1.0
vliw                       1.2       1.0
wc-input1                  0.9       1.0
wc-scanStream              1.5       1.0
zebra                      0.8       1.0
zern                       1.1       1.0

run time
benchmark         MLton stable MLton old MLton
barnes-hut          5.0          5.4       5.0
checksum            4.5          4.4       4.5
count-graphs        7.2          7.1       7.3
DLXSimulator       12.9         13.5      12.9
fft                 9.1         10.1       9.1
fib                 4.4          4.4       4.4
hamlet              9.9         10.8      10.0
knuth-bendix        8.2          8.4       8.1
lexgen             14.6         16.7      14.7
life               14.5         11.2      14.5
logic              26.0         31.0      25.9
mandelbrot          7.8          9.0       7.9
matrix-multiply     5.7          6.5       5.2
md5                 5.5          5.2       5.7
merge              36.5         47.6      36.5
mlyacc             10.8         13.3      10.8
mpuz                7.6          6.9       7.6
nucleic             8.6          8.6       8.6
peek                4.7          5.2       4.7
psdes-random        5.8          9.3       5.8
ratio-regions      10.5          9.5      10.5
ray                 6.2          5.9       6.1
raytrace            5.9          6.3       5.9
simple              7.9          7.2       7.8
smith-normal-form   1.1          1.1       1.1
tak                11.6         10.7      11.6
tensor              8.3          8.7       8.3
tsp                12.0         12.7      12.1
vector-concat       9.1         18.8       9.2
vector-rev          4.2          3.5       4.1
vliw                6.8          8.2       6.7
wc-input1           3.2          2.7       3.2
wc-scanStream       5.9          8.6       5.9
zebra               4.0          3.2       4.0
zern               41.4         44.5      41.0

compile time
benchmark         MLton stable MLton old MLton
barnes-hut          3.2          2.6       3.1
checksum            0.8          0.8       0.8
count-graphs        2.6          1.9       2.5
DLXSimulator        7.8          4.6       7.7
fft                 2.1          1.5       2.1
fib                 0.8          0.7       0.8
hamlet             59.2         51.5      58.2
knuth-bendix        2.9          2.4       3.0
lexgen              8.6          5.6       8.4
life                1.7          1.4       1.6
logic               8.5          7.5       8.3
mandelbrot          0.8          0.8       0.8
matrix-multiply     0.8          0.8       0.9
md5                 3.4          2.5       4.0
merge               0.8          0.8       0.8
mlyacc             53.3         19.4      53.2
mpuz                1.1          1.0       1.1
nucleic             3.7          4.4       3.8
peek                1.3          1.2       1.3
psdes-random        0.9          0.8       0.8
ratio-regions       4.8          3.2       4.7
ray                 5.3          3.5       5.4
raytrace           13.1          9.9      12.9
simple             12.3          7.4      12.0
smith-normal-form   8.1          8.0       8.0
tak                 0.8          0.8       0.8
tensor              4.0          3.1       4.1
tsp                 1.9          1.9       2.0
vector-concat       0.8          0.8       0.8
vector-rev          0.8          0.8       0.8
vliw               17.9         12.4      17.9
wc-input1           2.1          1.6       1.9
wc-scanStream       2.3          1.7       2.3
zebra              14.5          4.9      14.5
zern                1.3          1.1       1.3

size
benchmark             MLton stable MLton old MLton
barnes-hut           66,416       64,618    66,544
checksum             23,644       23,666    23,644
count-graphs         47,076       44,346    47,076
DLXSimulator        109,804       93,290   109,940
fft                  34,656       33,330    34,656
fib                  23,444       23,482    23,444
hamlet            1,058,991      974,905 1,059,559
knuth-bendix         66,165       60,579    66,205
lexgen              144,044      130,994   143,924
life                 38,876       37,274    38,876
logic               151,788      151,378   151,796
mandelbrot           23,500       23,554    23,500
matrix-multiply      24,044       24,018    24,044
md5                  39,005       37,827    39,237
merge                24,660       24,618    24,660
mlyacc              492,012      423,186   492,012
mpuz                 29,028       28,946    29,028
nucleic              62,772       60,698    62,772
peek                 31,109       30,587    31,109
psdes-random         24,492       24,802    24,492
ratio-regions        65,524       60,274    65,524
ray                  82,015       72,641    82,015
raytrace            198,036      179,262   198,068
simple              196,792      171,178   196,856
smith-normal-form   147,252      142,874   147,300
tak                  23,540       23,514    23,540
tensor               70,603       68,617    72,747
tsp                  40,397       39,707    40,461
vector-concat        24,212       24,442    24,212
vector-rev           24,140       24,106    24,140
vliw                303,744      262,938   303,736
wc-input1            43,221       40,563    43,221
wc-scanStream        46,557       43,107    46,557
zebra               150,861      111,779   150,901
zern                 27,959       27,337    27,975