Module Ssa


module Ssa: sig  end

val is_scalar : Ctt_abstree.c_type_desc -> bool
val match_parameter_type : Ctt_abstree.c_type_desc -> 'a list -> ('a * Ctt_abstree.c_type) list
val hoist_declaration : int ->
Il1.il1_basic_block array ->
(Ctt_abstree.local_storage_class * Ctt_abstree.c_type * Il1.identifier) list
val get_address_of : Il1.il1_basic_block array -> (Il1.identifier, unit) Hashtbl.t * Il1.temp_id
val null_variable_attribute : Il.il_variable_attribute
val print_id : int -> string
val print_field : (string * Ctt_abstree.c_type) list -> string
val print_binary_operator : Il.il_binop -> string
val print_lvalue : Il.il_lvalue -> Il.identifier
val print_expr : Il.il_expr -> string
val print_lvalue_field : Il.il_lvalue * (string * Ctt_abstree.c_type) list -> Il.identifier
val print_il : Il.il -> string
val print_il_basic_block : Il.il_basic_block -> unit
val map_lvalue : (Il.temp_id -> Il.temp_id) -> Il.il_lvalue -> Il.il_lvalue
val map_expr : (Il.temp_id -> Il.temp_id) -> Il.il_expr -> Il.il_expr
val map_il : (Il.temp_id -> Il.temp_id) -> (Il.temp_id -> Il.temp_id) -> Il.il -> Il.il
val iter_read_lvalue : (Il.temp_id -> unit) -> Il.il_lvalue -> unit
val iter_read_expr : (Il.temp_id -> unit) -> Il.il_expr -> unit
val iter_read_il : (Il.temp_id -> unit) -> Il.il -> unit
val promote_variable : Ctt_abstree.c_type ->
Il.identifier list ->
Il1.il1_basic_block array ->
Il.il_basic_block array * Il.il_variable_attribute array
val find_dominator : Il.il_basic_block array -> unit
val find_dominance_frontier : Il.il_basic_block array -> int list array
val find_assignment_node : Il.il_basic_block array -> (Il.temp_id * Ctt_abstree.c_type) list array
val insert_phi_function : Il.il_basic_block array -> unit
val which : 'a -> 'a list -> int
val make_dominance_tree : Il.il_basic_block array -> int list * int list array
val print_dominance_tree : int list -> int list array -> unit
val make_ssa : Il.il_basic_block array ->
int ->
Il.il_variable_attribute array ->
Il.il_basic_block array * Il.temp_id * Il.il_variable_attribute array
val dominate : Il.il_basic_block array -> int -> int -> bool
val find_loop : Il.il_basic_block array -> unit
val eliminate_redundant_move : Il.il_basic_block array -> int -> unit
val eliminate_unused_variable : Il.il_basic_block array -> int -> 'a -> unit
val make_compact : Il.il_basic_block array ->
int ->
Il.il_variable_attribute array -> Il.temp_id * Il.il_variable_attribute array
val ssa_transform : Ctt_abstree.c_type ->
Il1.il1_basic_block array ->
Il.identifier list ->
Il.il_basic_block array * Il.temp_id * Il.il_variable_attribute array
val ssa_transform_function : Il1.il1_global_declaration -> Il.il_function