Module Linear
and instruction_desc = | Lprologue| Lepilogue_open| Lepilogue_close| Lend| Lop of Operation.t| Lcall_op of call_operation| Lreloadretaddr| Lreturn| Llabel of {label : label;section_name : string option;
}| Lbranch of label| Lcondbranch of Operation.test * label| Lcondbranch3 of label option * label option * label option| Lswitch of label array| Lentertrap| Ladjust_stack_offset of {delta_bytes : int;
}| Lpushtrap of {lbl_handler : label;
}| Lpoptrap of {lbl_handler : label;
}| Lraise of Lambda.raise_kind| Lstackcheck of {max_frame_size_bytes : int;
}
and call_operation = | Lcall_ind| Lcall_imm of {func : Cmm.symbol;
}| Ltailcall_ind| Ltailcall_imm of {func : Cmm.symbol;
}| Lextcall of {func : string;ty_res : Cmm.machtype;ty_args : Cmm.exttype list;alloc : bool;returns : bool;stack_ofs : int;stack_align : Cmm.stack_align;
}| Lprobe of {name : string;handler_code_sym : string;enabled_at_init : bool;
}
type 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 option;fun_contains_calls : bool;fun_num_stack_slots : int Stack_class.Tbl.t;fun_frame_required : bool;fun_prologue_required : bool;fun_section_name : string option;
}val traps_to_bytes : int -> int