module Separate_side_effect: sig end
val cvt_binop : Cttm_abstree.binop -> Il.il_binop
type il0_loop_label =
exception Error
type il0_desc =
type il0 = {
}
type il0_function_body = il0 list
type il0_global_declaration =
val union_list : 'a Set_list.set list -> 'a Set_list.set
val defines_il0 : il0 -> Il.temp_id Set_list.set
val defines_desc : il0_desc -> Il.temp_id Set_list.set
val depends_il0 : il0 -> Il.temp_id Set_list.set
val depends_il0lvalue : Il.il_lvalue -> Il.temp_id Set_list.set
val depends_il0expr : Il.il_expr -> Il.temp_id Set_list.set
val depends_desc : il0_desc -> Il.temp_id Set_list.set
val hasnobranch_desc : il0_desc -> bool
val make_il0 : il0_desc -> il0
val label_counter : int Pervasives.ref
val make_label : unit -> string
val new_tempid : unit -> Il.temp_id
val gentemp : Il.il_expr -> Ctt_abstree.c_type -> Il.temp_id * il0
val gentemp_read : Il.il_lvalue * Il.field list ->
Ctt_abstree.c_type -> Il.temp_id * il0
val separate_sequence : il0 list ->
il0 list -> il0 list
val enclose_sequence : il0 list -> il0
val enclose_parallel : il0 list -> il0
val translate_mexpr : Cttm_abstree.mexpr -> Il.temp_id * il0
val translate_lvalue : ?allow_invoke:bool ->
Cttm_abstree.mem_object -> Il.il_lvalue * il0 list
val translate_mexpr : Cttm_abstree.mexpr -> Il.temp_id * il0
val print_binary_operator : Il.il_binop -> string
val print_tempid : int -> string
val print_il0lv : Il.il_lvalue -> (string * Ctt_abstree.c_type) list -> string
val print_il0expr : Il.il_expr -> string
val print_il0 : il0 -> string
val replace_label_localdecl : Ctt_abstree.local_storage_class * Ctt_abstree.c_type * Il.identifier *
Cttm_abstree.cttm_initializer option -> il0 list
val replace_label : Ctt_abstree.statement -> il0
val translate_program_to_il0 : Ctt_abstree.global_declaration_desc list ->
il0_global_declaration list