Module Flambda2_from_lambda.Lambda_to_flambda_primitives_helpers
type expr_primitive = | Simple of Flambda2_term_basics.Simple.t| Nullary of Flambda2_terms.Flambda_primitive.nullary_primitive| Unary of Flambda2_terms.Flambda_primitive.unary_primitive * simple_or_prim| Binary of Flambda2_terms.Flambda_primitive.binary_primitive * simple_or_prim * simple_or_prim| Ternary of Flambda2_terms.Flambda_primitive.ternary_primitive * simple_or_prim * simple_or_prim * simple_or_prim| Quaternary of Flambda2_terms.Flambda_primitive.quaternary_primitive * simple_or_prim * simple_or_prim * simple_or_prim * simple_or_prim| Variadic of Flambda2_terms.Flambda_primitive.variadic_primitive * simple_or_prim list| Checked of {validity_conditions : expr_primitive list;(*The
*)validity_conditionsreturn untagged immediates representing boolean values.primitive : expr_primitive;failure : failure;dbg : Debuginfo.t;
}| If_then_else of expr_primitive * expr_primitive * expr_primitive * Flambda2_kinds.Flambda_kind.With_subkind.t list| Sequence of expr_primitive list| Unboxed_product of expr_primitive list
val simple_untagged_int :
machine_width:Target_system.Machine_width.t ->
int ->
simple_or_primval simple_i64 : Int64.t -> simple_or_primval simple_i64_expr : Int64.t -> expr_primitiveval maybe_create_unboxed_product : expr_primitive list -> expr_primitiveval print_expr_primitive : Format.formatter -> expr_primitive -> unitval print_simple_or_prim : Format.formatter -> simple_or_prim -> unitval print_list_of_simple_or_prim :
Format.formatter ->
simple_or_prim list ->
unitval print_list_of_lists_of_simple_or_prim :
Format.formatter ->
simple_or_prim list list ->
unitval bind_recs :
Closure_conversion_aux.Acc.t ->
Flambda2_terms.Exn_continuation.t option ->
register_const0:
(Closure_conversion_aux.Acc.t ->
Flambda2_terms.Static_const.t ->
string ->
Closure_conversion_aux.Acc.t * Flambda2_identifiers.Symbol.t) ->
expr_primitive ->
Debuginfo.t ->
(Closure_conversion_aux.Acc.t ->
Flambda2_terms.Flambda.Named.t list ->
Closure_conversion_aux.Expr_with_acc.t) ->
Closure_conversion_aux.Expr_with_acc.tval block_access_kind_of_mixed_field_element :
kind_shape:Flambda2_kinds.Flambda_kind.Scannable_block_shape.t ->
tag:Flambda2_kinds.Tag.Scannable.t Flambda2_lattices.Or_unknown.t ->
size:Flambda2_numbers.Target_ocaml_int.t Flambda2_lattices.Or_unknown.t ->
'a Mixed_block_shape.Singleton_mixed_block_element.t ->
Flambda2_terms.Flambda_primitive.Block_access_kind.tReturns the appropriate Block_access_kind.t for accessing a field of a mixed block element.