module Decompose_ssa: sig end
type inserted_phi_assignments = (int * Ctt_abstree.c_type * int) list
type block_info = {
}
val label_direct : int -> string
val label_trampoline : int -> int -> string
val phase1 : Il.il_function -> block_info array
val convert_target : info:block_info array -> cur:int -> int -> string
val get_argument_name : f:Il.il_function -> int -> Il.identifier
val convert_block : f:Il.il_function ->
int -> info:block_info array -> Separate_side_effect.il0 list
val make_phi_assigns : (Il.temp_id * Ctt_abstree.c_type * Il.temp_id) list ->
Separate_side_effect.il0
val separate_last_branch : Separate_side_effect.il0 list ->
Separate_side_effect.il0 list * Separate_side_effect.il0 list
val phase2 : Il.il_function ->
info:block_info array -> Separate_side_effect.il0