new SSA IL
   
    Stephen Weeks
     
    MLton@sourcelight.com
       
    Tue, 7 Aug 2001 21:31:27 -0700
    
    
  
> If  goto's  pass  arguments,  is  their semantics assignment to the argument?
> I.e., I am in a `function', x is in scope (it is the piece of the list  I  am
> working  on),  I  call  myself  with  the tail of x as an arguemnt.  Thus you
> really do have mutation of variables, right?
Yes.  But only in the same sense as "i" being mutated in
fun f i = if i = 13 then () else f (i + 1)
It really is SSA (there is one *static* place at which a variable is assigned),
except that we write goto's that pass arguments instead of collecting everything
in a phi-function at the destination. 
> I'm surprised that you say that the dominator condition could be done in  the
> current  world by rewriting the syntax tree.  This wouldn't be possible if it
> was a matter of blocks not nesting I would think.
Take the dominator tree of the control-flow graph.  The root node is the main
expressions.  Nest all children of the root immediately within this expression
(this ignores mutual recursion between those children).  Recur on each child.
> Re the hackers guide, I would love to  start  hacking,  but  would  need  the
> hackers guide to begin.  (Enough moaning from me.)
For you, I am willing to write some stuff.  What do you need?  Overview?  CPS
semantics?