SSA backend

Matthew Fluet Matthew Fluet <fluet@CS.Cornell.EDU>
Tue, 16 Oct 2001 10:00:44 -0400 (EDT)


> If this makes sense, then I would have remove-unused.new.fun rewrite the
> above to:
...

I did some quick mods to remove-unused.new.fun and it now produces the
following:

  L_2921 ()
    L_2950 ()
  L_2926 ()
    L_2950 ()
  L_2936 ()
    L_2950 ()
  L_2950 ()
    Bug
  L_166 ()
    L_2936 (exit_0 (global_12, x_26)) handle L_91
  L_94 ()
    L_2926 (exit_0 (global_0, x_26)) handle L_0
  L_3 ()
    x_11 = Stdio_print (global_215)
    L_2921 (exit_0 (global_0, env_0)) handle L_2922
  L_91 (x_53)
    SetHandler L_0
    case x_53 of
      Fail_0 => L_116 | SysErr_0 => L_101 | _ => L_100
  L_0 (x_18)
    SetExnStackSlot
    x_24 = Ref_deref (x_7)
    case x_24 of
      Env_0 => L_11 | Env_1 => L_1
  L_2922 (x_3732)
    L_2 ()
  L_2 ()
    SetExnStackSlot
    x_10 = Stdio_print (global_478)
    x_9 = MLton_halt (global_0)
    ()

which type-checks in SSA and compiles successfully.