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