sig
type temp_id = int
and identifier = string
and field = Il1.identifier * Ctt_abstree.c_type
and il_switch_label = CASE of Big_int.big_int | DEFAULT
and il_if_type = IFNOT | IFTRUE
and il_binop =
ILbinTimes
| ILbinDiv
| ILbinPlusVV
| ILbinMinusVV
| ILbinPlusPV
| ILbinMinusPP
| ILbinMinusPV
| ILbinModulo
| ILbinLshift
| ILbinRshift
| ILbinLogAnd
| ILbinLogOr
| ILbinIntAnd
| ILbinIntOr
| ILbinIntXor
| ILbinLessThan
| ILbinLessEqual
| ILbinGtrThan
| ILbinGtrEqual
| ILbinEqual
| ILbinNotEqual
and il_lvalue =
ILlvPtr of Il1.temp_id
| ILlvVar of Il1.identifier * Ctt_abstree.c_type
| ILlvTemp of Il1.temp_id
and il_expr =
ILexpCoerce of Ctt_abstree.c_type * Il1.temp_id
| ILexpConstant of Cttm_abstree.c_constants
| ILexpUndefined
| ILexpBinop of Il1.il_binop * Il1.temp_id * Il1.temp_id
| ILexpUnaryop of Cttm_abstree.unaryop * Il1.temp_id
| ILexpInvoke of Il1.il_lvalue * Il1.temp_id list
| ILexpAddress of Il1.il_lvalue * Il1.field list
| ILexpArgument of int
| ILexpIdent of Il1.temp_id
and il1_desc =
IL1stmtDeclAutoScalar of Ctt_abstree.local_storage_class *
Ctt_abstree.c_type * Il1.identifier * Il1.temp_id option
| IL1stmtDeclBulk of Ctt_abstree.local_storage_class *
Ctt_abstree.c_type * Il1.identifier *
Cttm_abstree.cttm_initializer option
| IL1stmtIf of Il1.il_if_type * Il1.temp_id * int
| IL1stmtSwitch of Il1.temp_id * (Il1.il_switch_label * int) list
| IL1stmtGoto of int
| IL1stmtReturn of Il1.temp_id option
| IL1stmtDefTemp of Il1.temp_id * Ctt_abstree.c_type * Il1.il_expr
| IL1stmtReadToTemp of Il1.temp_id * Ctt_abstree.c_type * Il1.il_lvalue *
Il1.field list
| IL1stmtWrite of Il1.il_lvalue * Il1.field list * Il1.temp_id
| IL1stmtSequence of Il1.il1 list
| IL1stmtParallel of Il1.il1 list
and il1 = {
il1_depends : Il1.temp_id Set_list.set;
il1_defines : Il1.temp_id Set_list.set;
il1_t : Il1.il1_desc;
}
and il1_basic_block = {
predecessor : int list;
successor : int list;
immediate_dominator : int;
code : Il1.il1 list;
}
and il1_function_body = Il1.il1_basic_block array
and il1_global_declaration =
IL1declFunction of Ctt_abstree.global_storage_class *
Ctt_abstree.c_type * Il1.identifier * Il1.identifier list *
Il1.il1_function_body
| IL1declVariable of Ctt_abstree.global_storage_class *
Ctt_abstree.c_type * Il1.identifier *
Cttm_abstree.cttm_initializer option
end