Cmm_helpers
val bind :
string ->
Cmm.expression ->
(Cmm.expression -> Cmm.expression) ->
Cmm.expression
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 floatarray_tag : Debuginfo.t -> Cmm.expression
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 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 incr_int : Cmm.expression -> Debuginfo.t -> Cmm.expression
val decr_int : Cmm.expression -> Debuginfo.t -> Cmm.expression
val ignore_low_bit_int : Cmm.expression -> Cmm.expression
val ignore_high_bit_int : Cmm.expression -> Cmm.expression
val add_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val sub_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val lsl_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val mul_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val lsr_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val asr_int : Cmm.expression -> Cmm.expression -> Debuginfo.t -> Cmm.expression
val div_int :
Cmm.expression ->
Cmm.expression ->
Lambda.is_safe ->
Debuginfo.t ->
Cmm.expression
val mod_int :
Cmm.expression ->
Cmm.expression ->
Lambda.is_safe ->
Debuginfo.t ->
Cmm.expression
val tag_int : Cmm.expression -> Debuginfo.t -> Cmm.expression
val untag_int : Cmm.expression -> Debuginfo.t -> Cmm.expression
val safe_div_bi :
Lambda.is_safe ->
Cmm.expression ->
Cmm.expression ->
Primitive.boxed_integer ->
Debuginfo.t ->
Cmm.expression
val safe_mod_bi :
Lambda.is_safe ->
Cmm.expression ->
Cmm.expression ->
Primitive.boxed_integer ->
Debuginfo.t ->
Cmm.expression
val mk_if_then_else :
Debuginfo.t ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression ->
Cmm.expression
val mk_not : Debuginfo.t -> Cmm.expression -> Cmm.expression
val mk_compare_ints :
Debuginfo.t ->
Cmm.expression ->
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 test_bool : Debuginfo.t -> Cmm.expression -> Cmm.expression
val box_float : Debuginfo.t -> Cmm.expression -> Cmm.expression
val unbox_float : Debuginfo.t -> Cmm.expression -> Cmm.expression
val box_complex :
Debuginfo.t ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression
val complex_re : Cmm.expression -> Debuginfo.t -> Cmm.expression
val complex_im : Cmm.expression -> Debuginfo.t -> 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_field_gen :
Asttypes.mutable_flag ->
Cmm.expression ->
int ->
Debuginfo.t ->
Cmm.expression
val set_field :
Cmm.expression ->
int ->
Cmm.expression ->
Lambda.initialization_or_assignment ->
Debuginfo.t ->
Cmm.expression
val get_header : Cmm.expression -> Debuginfo.t -> Cmm.expression
val get_header_without_profinfo :
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val get_tag : Cmm.expression -> Debuginfo.t -> Cmm.expression
val get_size : Cmm.expression -> Debuginfo.t -> Cmm.expression
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 array_indexing :
?typ:Cmm.machtype_component ->
int ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val addr_array_ref :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val int_array_ref :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unboxed_float_array_ref :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val float_array_ref :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val addr_array_set :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val addr_array_initialize :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val int_array_set :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val float_array_set :
Cmm.expression ->
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 lookup_tag :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val lookup_label :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val call_cached_method :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression list ->
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 check_bound :
Lambda.is_safe ->
Clambda_primitives.memory_access_size ->
Debuginfo.t ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression
val opaque : Cmm.expression -> Debuginfo.t -> Cmm.expression
val bigarray_get :
bool ->
Lambda.bigarray_kind ->
Lambda.bigarray_layout ->
Cmm.expression ->
Cmm.expression list ->
Debuginfo.t ->
Cmm.expression
val bigarray_set :
bool ->
Lambda.bigarray_kind ->
Lambda.bigarray_layout ->
Cmm.expression ->
Cmm.expression list ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val low_32 : Debuginfo.t -> Cmm.expression -> Cmm.expression
val sign_extend_32 : Debuginfo.t -> Cmm.expression -> Cmm.expression
val zero_extend_32 : Debuginfo.t -> Cmm.expression -> Cmm.expression
val box_int_gen :
Debuginfo.t ->
Primitive.boxed_integer ->
Cmm.expression ->
Cmm.expression
val unbox_int :
Debuginfo.t ->
Primitive.boxed_integer ->
Cmm.expression ->
Cmm.expression
val make_unsigned_int :
Primitive.boxed_integer ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_load_16 :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_set_16 :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_load_32 :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_set_32 :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_load_64 :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_set_64 :
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_set :
Clambda_primitives.memory_access_size ->
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val unaligned_load :
Clambda_primitives.memory_access_size ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val box_sized :
Clambda_primitives.memory_access_size ->
Debuginfo.t ->
Cmm.expression ->
Cmm.expression
val simplif_primitive :
Clambda_primitives.primitive ->
Clambda_primitives.primitive
type unary_primitive = Cmm.expression -> Debuginfo.t -> Cmm.expression
val floatfield : int -> unary_primitive
val int_as_pointer : unary_primitive
val raise_prim : Lambda.raise_kind -> unary_primitive
val negint : unary_primitive
val offsetint : int -> unary_primitive
val offsetref : int -> unary_primitive
val arraylength : Lambda.array_kind -> unary_primitive
val bbswap : Primitive.boxed_integer -> unary_primitive
val bswap16 : unary_primitive
type binary_primitive =
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val setfield :
int ->
Lambda.immediate_or_pointer ->
Lambda.initialization_or_assignment ->
binary_primitive
val setfloatfield :
int ->
Lambda.initialization_or_assignment ->
binary_primitive
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 int_comp_caml : Lambda.integer_comparison -> binary_primitive
val stringref_unsafe : binary_primitive
val stringref_safe : binary_primitive
val string_load :
Clambda_primitives.memory_access_size ->
Lambda.is_safe ->
binary_primitive
val bigstring_load :
Clambda_primitives.memory_access_size ->
Lambda.is_safe ->
binary_primitive
val arrayref_unsafe : Lambda.array_kind -> binary_primitive
val arrayref_safe : Lambda.array_kind -> binary_primitive
type ternary_primitive =
Cmm.expression ->
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
val setfield_computed :
Lambda.immediate_or_pointer ->
Lambda.initialization_or_assignment ->
ternary_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 bytes_set :
Clambda_primitives.memory_access_size ->
Lambda.is_safe ->
ternary_primitive
val bigstring_set :
Clambda_primitives.memory_access_size ->
Lambda.is_safe ->
ternary_primitive
val transl_isout :
Cmm.expression ->
Cmm.expression ->
Debuginfo.t ->
Cmm.expression
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_apply :
Asttypes.mutable_flag ->
Cmm.expression ->
Cmm.expression list ->
Debuginfo.t ->
Cmm.expression
val send :
Lambda.meth_kind ->
Cmm.expression ->
Cmm.expression ->
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