Linear
type label = Cmm.label
type instruction = {
mutable desc : instruction_desc; |
mutable next : instruction; |
arg : Reg.t array; |
res : Reg.t array; |
dbg : Debuginfo.t; |
live : Reg.Set.t; |
}
and instruction_desc =
| Lprologue | |
| Lend | |
| Lop of Mach.operation | |
| Lreloadretaddr | |
| Lreturn | |
| Llabel of label | |
| Lbranch of label | |
| Lcondbranch of Mach.test * label | |
| Lcondbranch3 of label option * label option * label option | |
| Lswitch of label array | |
| Lentertrap | |
| Ladjust_trap_depth of {
} | |
| Lpushtrap of {
} | |
| Lpoptrap | |
| Lraise of Lambda.raise_kind |
val has_fallthrough : instruction_desc -> bool
val end_instr : instruction
val instr_cons : instruction_desc -> Reg.t array -> Reg.t array -> instruction -> instruction
type fundecl = {
fun_name : string; |
fun_body : instruction; |
fun_fast : bool; |
fun_dbg : Debuginfo.t; |
fun_tailrec_entry_point_label : label; |
fun_contains_calls : bool; |
fun_num_stack_slots : int array; |
fun_frame_required : bool; |
fun_prologue_required : bool; |
}