RSSA backend

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Fri, 18 Jan 2002 21:14:58 -0500 (EST)


> Unfortunately, it looks like barnes-hut and nucleic will continue to
> prevent us from being faster than every other SML compiler on every
> benchmark.

I'm not sure.  I bet we make up barnes-hut with an improved limit-check
insertion.  We're being hurt in the floating-point unit by a limit-check
that is inserted between some intensive floating-point computations.  This
causes all the live data to be spilled to the stack, and the hot assembly
block is the one where in the RSSA world we need to fetch everything back
from memory.  In the CPS world, lots of the values were cached in the
floating point registers, so we've got fxch's instead of fld's.

The problem in nucleic seems to be inlining.  There is one function in the
SSA world that is a single block of numerical computation that is inlined
in two places in the CPS world.  We should look back at the CPS and SSA
inliners; recall that I gave the leaf, non-recursive, and product all the
same size heuristic.  In the CPS world, product had a different one.  I
never changed any of the default inline controls, so maybe they should be
tweaked a little higher given the new heuristic.