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.