cps & contification

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Thu, 25 Jan 2001 11:40:06 -0500 (EST)


> > * The new contify is producing a lot of data that is getting stored somewhere and
> >   is not getting cleared by the Program.clear.

The new contify is producing a little more data, but almost all of it is
all accessed through funcInfo property created at the beginning of
contify, so it should be cleared by Program.clear.  The other data is the
graph for the dominator calculation and one property to link nodes to
their corresponding Func.t's, but that shouldn't contribute to the size of
the CPS; and it should be all GCed after contify finishes.

> > * There is a bug in MLton's globalization that is causing something huge to get
> >   retained.

But it would have to be hanging off the CPS tree somewhere?  That seems
strange.  

> * The new contify is slightly different than the old one with strategy Both, and
>   is causing something not safe-for-space to happen

Other than computing the new analysis, the new version of contify.fun
should act just like the old one on -contify both.  I just added
appropriate switches to any case strategy expression.

One exception: I moved the shrinkExp call from
val body = shrinkExp (walkExp (name, body, NONE))
to after the 
val body = case !prefixes ....

I would think that should only help space, shrinking the "bigger" body.