profiling go

Stephen Weeks MLton@sourcelight.com
Mon, 11 Jun 2001 11:46:43 -0700



> That would be nice, but the codegen is only keeping values in registers
> across basic blocks if the value was put in a (pseudo-)register by the
> backend register-allocator.  So, all three of these values are being used
> from their stack locations and are written back to the stack before the
> end of the basic block.

Yuck.  We really need a rethink of having two different register allocators.
The backend one is so stupid because it will always keep a CPS var in a stack
slot if it is ever live across a nontail call.  Maybe we've already discussed
this, but is there any simple fix in the codegen that might undo some of this
stupidity?