conts, handlers, and liveness

Matthew Fluet mfluet@intertrust.com
Wed, 18 Jul 2001 10:26:28 -0700 (PDT)


> I believe that this is introducing bogus flow.  If the block isCont (i.e.,
> is the continuation of a non-tail call), then the block should do nothing
> but adjust the stack top (not actually added until codegen), maybe do a
> limit check, and then do a jump to the actual continuation (i.e., the
> continuation that appears in the .cps).  If the actual continuation
> raises, then it will do a jump to the handler block and the flow edge will
> be added by the Raise case of the transfer.  With this edge, I'm seeing
> that everything live down to the handler is also live at the
> continuation, even though the actual continuation does not raise.

The other change that needs to happen is that at the Call case of the
transfer, if the handler stack is nonempty, then there is an edge from the
block to the handler block.