Module Cmm_helpers

val bind_load : string -> Cmm.expression -> (Cmm.expression -> Cmm.expression) -> Cmm.expression
val bind_nonvar : string -> Cmm.expression -> (Cmm.expression -> Cmm.expression) -> Cmm.expression
val caml_black : nativeint
val floatarray_tag : Debuginfo.t -> Cmm.expression
val block_header : int -> int -> nativeint
val black_block_header : int -> int -> nativeint
val white_closure_header : int -> nativeint
val black_closure_header : int -> nativeint
val infix_header : int -> nativeint
val float_header : nativeint
val floatarray_header : int -> nativeint
val string_header : int -> nativeint
val boxedint32_header : nativeint
val boxedint64_header : nativeint
val boxedintnat_header : nativeint
val closure_info : arity:int -> startenv:int -> nativeint
val alloc_float_header : Debuginfo.t -> Cmm.expression
val alloc_floatarray_header : int -> Debuginfo.t -> Cmm.expression
val alloc_closure_header : int -> Debuginfo.t -> Cmm.expression
val alloc_infix_header : int -> Debuginfo.t -> Cmm.expression
val alloc_closure_info : arity:int -> startenv:int -> Debuginfo.t -> Cmm.expression
val alloc_boxedint32_header : Debuginfo.t -> Cmm.expression
val alloc_boxedint64_header : Debuginfo.t -> Cmm.expression
val alloc_boxedintnat_header : Debuginfo.t -> Cmm.expression
val max_repr_int : int
val min_repr_int : int
val int_const : Debuginfo.t -> int -> Cmm.expression
val cint_const : int -> Cmm.data_item
val targetint_const : int -> Targetint.t
val natint_const_untagged : Debuginfo.t -> Nativeint.t -> Cmm.expression
val add_const : Cmm.expression -> int -> Debuginfo.t -> Cmm.expression
val ignore_low_bit_int : Cmm.expression -> Cmm.expression
val ignore_high_bit_int : Cmm.expression -> Cmm.expression
val mk_compare_floats : Debuginfo.t -> Cmm.expression -> Cmm.expression -> Cmm.expression
val create_loop : Cmm.expression -> Debuginfo.t -> Cmm.expression
val raise_symbol : Debuginfo.t -> string -> Cmm.expression
val unbox_float : Debuginfo.t -> Cmm.expression -> Cmm.expression
val return_unit : Debuginfo.t -> Cmm.expression -> Cmm.expression
val remove_unit : Cmm.expression -> Cmm.expression
val field_address : Cmm.expression -> int -> Debuginfo.t -> Cmm.expression
val get_header_without_profinfo : Cmm.expression -> Debuginfo.t -> Cmm.expression
val wordsize_shift : int
val numfloat_shift : int
val is_addr_array_hdr : Cmm.expression -> Debuginfo.t -> Cmm.expression
val is_addr_array_ptr : Cmm.expression -> Debuginfo.t -> Cmm.expression
val addr_array_length_shifted : Cmm.expression -> Debuginfo.t -> Cmm.expression
val float_array_length_shifted : Cmm.expression -> Debuginfo.t -> Cmm.expression
val unboxed_float_array_ref : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val string_length : Cmm.expression -> Debuginfo.t -> Cmm.expression
val bigstring_length : Cmm.expression -> Debuginfo.t -> Cmm.expression
val make_alloc : Debuginfo.t -> int -> Cmm.expression list -> Cmm.expression
val make_float_alloc : Debuginfo.t -> int -> Cmm.expression list -> Cmm.expression
val make_checkbound : Debuginfo.t -> Cmm.expression list -> Cmm.expression
val apply_function_sym : int -> string
val curry_function_sym : int -> string
val sign_extend_32 : Debuginfo.t -> Cmm.expression -> Cmm.expression
val zero_extend_32 : Debuginfo.t -> Cmm.expression -> Cmm.expression
val caml_nativeint_ops : string
val caml_int32_ops : string
val caml_int64_ops : string
val unaligned_load_16 : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val unaligned_load_32 : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val unaligned_load_64 : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
type unary_primitive = Cmm.expression -> Debuginfo.t -> Cmm.expression
val floatfield : int -> unary_primitive
val int_as_pointer : unary_primitive
val negint : unary_primitive
val offsetint : int -> unary_primitive
val offsetref : int -> unary_primitive
val arraylength : Lambda.array_kind -> unary_primitive
val bswap16 : unary_primitive
type binary_primitive = Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
type assignment_kind =
  1. | Caml_modify
  2. | Caml_initialize
  3. | Simple
val add_int_caml : binary_primitive
val sub_int_caml : binary_primitive
val mul_int_caml : binary_primitive
val div_int_caml : Lambda.is_safe -> binary_primitive
val mod_int_caml : Lambda.is_safe -> binary_primitive
val and_int_caml : binary_primitive
val or_int_caml : binary_primitive
val xor_int_caml : binary_primitive
val lsl_int_caml : binary_primitive
val lsr_int_caml : binary_primitive
val asr_int_caml : binary_primitive
val stringref_unsafe : binary_primitive
val stringref_safe : binary_primitive
val arrayref_unsafe : Lambda.array_kind -> binary_primitive
val arrayref_safe : Lambda.array_kind -> binary_primitive
val bytesset_unsafe : ternary_primitive
val bytesset_safe : ternary_primitive
val arrayset_unsafe : Lambda.array_kind -> ternary_primitive
val arrayset_safe : Lambda.array_kind -> ternary_primitive
val make_switch : Cmm.expression -> int array -> (Cmm.expression * Debuginfo.t) array -> Debuginfo.t -> Cmm.expression
val transl_int_switch : Debuginfo.t -> Cmm.expression -> int -> int -> (int * Cmm.expression) list -> Cmm.expression -> Cmm.expression
val transl_switch_clambda : Debuginfo.t -> Cmm.expression -> int array -> Cmm.expression array -> Cmm.expression
val strmatch_compile : Debuginfo.t -> Cmm.expression -> Cmm.expression option -> (string * Cmm.expression) list -> Cmm.expression
val ptr_offset : Cmm.expression -> int -> Debuginfo.t -> Cmm.expression
val direct_apply : string -> Cmm.expression list -> Debuginfo.t -> Cmm.expression
val generic_functions : bool -> Cmx_format.unit_infos list -> Cmm.phrase list
val placeholder_dbg : unit -> Debuginfo.t
val placeholder_fun_dbg : human_name:string -> Debuginfo.t
val entry_point : string list -> Cmm.phrase
val global_table : string list -> Cmm.phrase
val reference_symbols : string list -> Cmm.phrase
val globals_map : (string * Digest.t option * Digest.t option * string list) list -> Cmm.phrase
val frame_table : string list -> Cmm.phrase
val data_segment_table : string list -> Cmm.phrase
val code_segment_table : string list -> Cmm.phrase
val predef_exception : int -> string -> Cmm.phrase
val plugin_header : (Cmx_format.unit_infos * Digest.t) list -> Cmm.phrase
val cdefine_symbol : (string * Cmmgen_state.is_global) -> Cmm.data_item list
val emit_block : (string * Cmmgen_state.is_global) -> nativeint -> Cmm.data_item list -> Cmm.data_item list
val emit_float_constant : (string * Cmmgen_state.is_global) -> float -> Cmm.data_item list -> Cmm.data_item list
val emit_string_constant : (string * Cmmgen_state.is_global) -> string -> Cmm.data_item list -> Cmm.data_item list
val emit_int32_constant : (string * Cmmgen_state.is_global) -> int32 -> Cmm.data_item list -> Cmm.data_item list
val emit_int64_constant : (string * Cmmgen_state.is_global) -> int64 -> Cmm.data_item list -> Cmm.data_item list
val emit_nativeint_constant : (string * Cmmgen_state.is_global) -> nativeint -> Cmm.data_item list -> Cmm.data_item list
val emit_float_array_constant : (string * Cmmgen_state.is_global) -> float list -> Cmm.data_item list -> Cmm.data_item list
val fundecls_size : Clambda.ufunction list -> int
val emit_constant_closure : (string * Cmmgen_state.is_global) -> Clambda.ufunction list -> Cmm.data_item list -> Cmm.data_item list -> Cmm.data_item list
val emit_preallocated_blocks : Clambda.preallocated_block list -> Cmm.phrase list -> Cmm.phrase list