contifier bug

Matthew Fluet fluet@CS.Cornell.EDU
Mon, 26 Feb 2001 14:59:02 -0500 (EST)


> Your explanation and fix makes sense.  But I'm feeling even more nervous about
> the transformation and the whole scc problem and am thinking that we should just
> add mutually recursive continuations to the IL.

I agree that the transformation is getting overly complex.  Part of this
is due to efficiency concerns.  A while ago, I had a simpler
transformation where each contification was peformed immediately, i.e.,
instead of recording the names of functions to be contified, actually
rewrite the parent function.  All subsequent "uses" of the parent function
would use this updated function (to get callees, etc.).  Just recording
the prefixes is more efficient, but it means "looking ahead" to what the
actual transformation will due.

I think the immediate form of transformation would be a good way of
formally presenting the transformation in the paper.  The argument might
go something like this: given a safe analysis A, construct the analysis
forest.  Consider a node of this forest where all children are leaves.  Do
the transformation of contifying all the children at the node (this would
presumably be where the main work is: what to do to contify in a function
and at a jump); the resulting program has less functions and A restricted
to these functions is a safe analysis for the resulting program, so we can
continue processing the analysis forest.