SSA

Stephen Weeks MLton@sourcelight.com
Tue, 23 Oct 2001 11:13:31 -0700


> Sure.  What I have for size is the size of the "real" continuation:
...
> I simply compute your stub size as the maximum of the sizes for the
> continuation and the handler.

Makes sense.

> In retrospect, what might be more unified is simply to have every block
> have a size; we just care about the sizes of continuations and handlers.

Fine by me.

> > > Note, this complicates any future work on avoiding the stub shuffle with
> > > non-tail calls; the "real" continuation's arguments may not be allocated
> > > at the top of the stub's frame.
> > 
> > Does my proposal above fix this?
> 
> Not really.  Recall what started this whole adventure:
...

OK.  What you wrote mostly made sense.  I'll try to explain in my own
words to see if I understand.  Stubs have different sizes, therefore
the return values will be at different stack positions depending on
which stub was used.  Therefore, except for stubs of one particular
height (the smallest?), there will have to be a shuffle to get the
return values into the cont formals.  We could pay some stack space to
make stubs have the same size and avoid this shuffle.