conts, handlers, and liveness

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


> Of course, once g has returned then x is no longer live.  Thus there is a
> distinction between what's live in the stack frame and what's live at the
> beginning of the cont.  That distinction is not currently made by live.fun.  I
> would be happy to see it be made, by adding an extra field to the result of
> Live.live called liveBeginCont or something like that.  The distinction is
> already potentially there in allocate-registers, and so shouldn't cause any
> other changes.

O.k.  I make Live.live return an extra field, liveBeginFrame and now
blocks in Live.live are of the form
  frameBlock -> argBlock -> bodyBlock.

AllocateRegisters now returns a contInfo with both liveOffsets and
liveFrameOffsets (derived from liveBeginFrame and liveBeginNoFormals
respectively).