self-compile record 414s
Stephen Weeks
MLton@sourcelight.com
Tue, 15 Jan 2002 15:49:59 -0800
I just ran a series of self compiles that shows that the improvement
due to knownCase and Matthew's thread fix are *very good*. Here are
the three compilers:
G0 a stable MLton from December 7
G1 built from G0 compiling currently checked in sources
G2 built from G1 compiling currently checked in sources
G3 built from G2 compiling currently checked in sources
And here are the timings (for each compiler building the next in
sequence).
pre codegen codegen
------------- ------------
nongc gc nongc gc TOTAL TOTAL (inc assemble, link)
----- ----- ----- ----- ----- -----
G0 117 111 200 108 536 590
G1 121 113 156 96 486 534
G2 101 66 131 69 367 414
Since G1 is running using the old optimizer, the improvement from G0
to G1 is due to producing smaller code so the codegen has less to deal
with. But the improvement from G1 to G2 is staggering and across the
board -- and is solely due to the optimizations producing much more
efficient code. That's a runtime ratio of 1.3 (486 / 387), the best
speedup on MLton I've seen in ages.
BTW, here are the allocation amounts and code sizes.
bytes alloc text + data
----------- -----------
GO 30G 11,995,653
G1 28G 10,635,776
G2 19G 9,055,224
I'm sure we'll break 400 with the new limit check stuff.