once, local-refs, and threads

Matthew Fluet fluet@CS.Cornell.EDU
Thu, 6 Dec 2001 18:01:53 -0500 (EST)


> in a multi-threaded program, call a ThreadCopyPoint in a function any
> point in the function where the primitive Thread_copy is invoked or any
> non-tail call to a function which reaches a ThreadCopyPoint (i.e., either
> the called function invoked Thread_copy or calls a function that itself
> reaches a ThreadCopyPoint; that is, the appropriate fixed point).

Another, conservative, definition of a ThreadCopyPoint is any point in the
function where the primitive Thread_copyCurrent is invoked or any non-tail
call.  (Looking at Steve's recent check-in, I think this is the kind of
approximation made in the App case of globalize in closure conversion.)

This could hurt you a little, especially if there is a clear division
between start-up code (say one set of functions and the "first-part" of
main) and then threaded-code (say, another set of functions and the rest
of main).  But, it is certainly easier to compute.