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
- | Ladjust_trap_depth of {- }
- | Lpushtrap of {- lbl_handler : label;
 - }
- | Lpoptrap
- | Lraise of Lambda.raise_kind
val has_fallthrough : instruction_desc -> boolval end_instr : instructionval instr_cons : 
  instruction_desc ->
  Reg.t array ->
  Reg.t array ->
  instruction ->
  instructiontype fundecl = {- fun_name : string;
- fun_args : Reg.Set.t;
- fun_body : instruction;
- fun_fast : bool;
- fun_dbg : Debuginfo.t;
- fun_tailrec_entry_point_label : label;
- fun_contains_nontail_calls : bool;
- fun_num_stack_slots : int array;
- fun_frame_required : bool;
- fun_extra_stack_used : int;
}
