type label = Cmm.labeltype 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| Lpushtrap of {lbl_handler : label;}| Lpoptrap| Lraise of Cmm.raise_kind
val has_fallthrough : instruction_desc -> boolval end_instr : instructionval instr_cons : instruction_desc -> Reg.t array -> Reg.t array -> instruction -> instructionval invert_test : Mach.test -> Mach.test
type fundecl = {fun_name : string;fun_body : instruction;fun_fast : bool;fun_dbg : Debuginfo.t;fun_spacetime_shape : Mach.spacetime_shape option;fun_tailrec_entry_point_label : label;}
val fundecl : Mach.fundecl -> fundecl