CWS paper

Matthew Fluet fluet@CS.Cornell.EDU
Tue, 5 Dec 2000 21:55:16 -0500 (EST)


I was looking at  contify.fun  and was curious about the extra analysis
regarding sccs.  It's because of cases like the following:

fun f () = ... g () ...
fun g () = ... f () ...
fun h () = ... f () ... g () ...

in which the continuation based analysis would mark f and g as
contifiable, but the CPS IL doesn't support mutually recursive local
functions, so either only contify one of them or contify neither.
(correct?)

The call based analysis never needed to worry about this, because the
single non-tail use in another function marked precisely where the
contified function needed to go; although you might have "cascades" of
contifiable functions, there was a clear dependency.

Looking back at Steve's original message comparing the call based and
continuation based analysis, I have the impression that a case like above,
while possible, never appeared in the benchmarks.