[MLton] MLton HOL

Stephen Weeks MLton@mlton.org
Wed, 14 Jul 2004 13:16:28 -0700


Here are the main time killers.

	    simplify totals 14400.82 + 3988.40 (22% GC)
	       completeLiveInfo totals 3832.30 + 69.23 (2% GC)
	       toLivenessBlock totals 2298.43 + 218.54 (9% GC)
	       moveHoist totals 3684.31 + 2311.31 (39% GC)
	       peepholeLivenessBlock totals 4319.30 + 1247.83 (22% GC)
	    generateTransfers totals 1679.89 + 146.00 (8% GC)
	    allocateRegisters totals 11986.13 + 1465.35 (11% GC)
	       toLiveness totals 10237.32 + 28.84 (0% GC)
	       Assembly.allocateRegisters totals 1736.56 + 1169.40 (40% GC)
		  Instruction.allocateRegisters totals 1619.94 + 948.96 (37% GC)

I am pleased to see copy propagation not there.  It makes me wonder if
we could generalize Control.Native.copyPropCutoff to other situations
where the codegen is doing something quadratic in the size of a basic
block, and that something could be safely eliminated for large blocks.