CWS paper
   
    Matthew Fluet
     
    fluet@CS.Cornell.EDU
       
    Wed, 6 Dec 2000 11:46:15 -0500 (EST)
    
    
  
I was looking at the revised contify analysis that I proposed, and I
realized that there isn't any need to make a distinction between function
labels and "return to f" labels.  It still all works out with the ordering
bot <=l l' <=l l   forall l' in Label
the join operation:
Gamma1 V Gamma2
 = {l |--> r | l in Label
               r = case (Gamma1(x), Gamma2(x))
                     of (bot, r') => r'
                      | (r', bot) => r'
                      | (r1, r2) => if r1 = r2
                                     then r1
                                     else l}
and the condition
If Gamma = Anal[program]  and Gamma(l) = r  and  r <> l, r <> bot,
 then the function with label l has exactly one continuation 
 and is contifiable.
Further, if Gamma(l) = bot, then the function with label l is never called.