jon.recoil.org

Module Flambda2_to_jsir.To_jsir_shared

val bind_expr_to_var : env:To_jsir_env.t -> res:To_jsir_result.t -> Flambda2_identifiers.Variable.t -> Jsoo_imports.Import.Jsir.expr -> To_jsir_env.t * To_jsir_result.t

Bind a fresh JSIR variable to expr, and map fvar to this new variable in the environment.

val bind_expr_to_var' : env:To_jsir_env.t -> res:To_jsir_result.t -> Flambda2_identifiers.Variable.t -> Jsoo_imports.Import.Jsir.expr -> Jsoo_imports.Import.Jsir.Var.t * To_jsir_env.t * To_jsir_result.t
val target_ocaml_int_to_jsir_const : Flambda2_numbers.Target_ocaml_int.t -> Jsoo_imports.Import.Jsir.constant

Convert various integer types into a Jsir.constant.

val float32_to_jsir_const : Flambda2_numbers.Numeric_types.Float32_by_bit_pattern.t -> Jsoo_imports.Import.Jsir.constant
val float_to_jsir_const : Flambda2_numbers.Numeric_types.Float_by_bit_pattern.t -> Jsoo_imports.Import.Jsir.constant
val int8_to_jsir_const : Flambda2_numbers.Numeric_types.Int8.t -> Jsoo_imports.Import.Jsir.constant
val int16_to_jsir_const : Flambda2_numbers.Numeric_types.Int16.t -> Jsoo_imports.Import.Jsir.constant
val int32_to_jsir_const : Int32.t -> Jsoo_imports.Import.Jsir.constant
val int64_to_jsir_const : Int64.t -> Jsoo_imports.Import.Jsir.constant
val nativeint_to_jsir_const : Flambda2_numbers.Targetint_32_64.t -> Jsoo_imports.Import.Jsir.constant
val reg_width_const : Flambda2_identifiers.Reg_width_const.t -> Jsoo_imports.Import.Jsir.constant

Convert a Flambda Reg_width_const.t into a Jsir.constant.

val simple : env:To_jsir_env.t -> res:To_jsir_result.t -> Flambda2_term_basics.Simple.t -> Jsoo_imports.Import.Jsir.Var.t * To_jsir_result.t

Convert a Flambda Simple.t into a Jsir.Var.t, potentially by adding new instructions in the result.

val simples : env:To_jsir_env.t -> res:To_jsir_result.t -> Flambda2_term_basics.Simple.t list -> Jsoo_imports.Import.Jsir.Var.t list * To_jsir_result.t
val bound_parameters : env:To_jsir_env.t -> Flambda2_bound_identifiers.Bound_parameters.t -> Jsoo_imports.Import.Jsir.Var.t list * To_jsir_env.t

Take in Bound_parameters.t and bind each parameter to fresh JSIR variables in the environment, and return the variables in order

val block : env:To_jsir_env.t -> res:To_jsir_result.t -> tag:Flambda2_kinds.Tag.t -> mut:Flambda2_terms.Mutability.t -> fields:Flambda2_term_basics.Simple.t list -> Jsoo_imports.Import.Jsir.expr * To_jsir_env.t * To_jsir_result.t

Make a new block.