Module Closure_conversion_aux.Env
Used to remember which Variable.t values correspond to which Ident.t values during closure conversion, and similarly for static exception identifiers.
type value_approximation =
Flambda2_terms.Code_or_metadata.t
Flambda2_classic_mode_types.Value_approximation.tval create :
big_endian:bool ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tCreate an environment marked as being at toplevel.
val set_not_at_toplevel :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval at_toplevel : Flambda2_from_lambda.Closure_conversion_aux.Env.t -> boolval clear_local_bindings :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval add_vars_like :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
(Ident.t
* Flambda2_identifiers.Flambda_debug_uid.t
* Flambda2_from_lambda.Closure_conversion_aux.IR.user_visible
* Flambda2_kinds.Flambda_kind.With_subkind.t)
list ->
Flambda2_from_lambda.Closure_conversion_aux.Env.t
* Flambda2_identifiers.Variable.t listval find_name :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Ident.t ->
Flambda2_identifiers.Name.tval find_name_exn :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Ident.t ->
Flambda2_identifiers.Name.tval find_vars :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Ident.t list ->
(Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
listval add_global :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
int ->
Flambda2_identifiers.Symbol.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval find_global :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
int ->
Flambda2_identifiers.Symbol.tval add_simple_to_substitute :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Ident.t ->
Flambda2_term_basics.Simple.t ->
Flambda2_kinds.Flambda_kind.With_subkind.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval add_simple_to_substitute_map :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
(Flambda2_term_basics.Simple.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
Ident.Map.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval find_simple_to_substitute_exn :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Ident.t ->
Flambda2_term_basics.Simple.t * Flambda2_kinds.Flambda_kind.With_subkind.tval add_block_approximation :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_identifiers.Variable.t ->
Flambda2_kinds.Tag.Scannable.t ->
Flambda2_kinds.Flambda_kind.Scannable_block_shape.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.value_approximation array ->
Flambda2_term_basics.Alloc_mode.For_types.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval find_var_approximation :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_identifiers.Variable.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.value_approximationval current_depth :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_identifiers.Variable.t optionval current_unit :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Compilation_unit.tval big_endian : Flambda2_from_lambda.Closure_conversion_aux.Env.t -> boolval path_to_root :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Debuginfo.Scoped_location.tval use_inlining_history_tracker :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_terms.Inlining_history.Tracker.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.tval inlining_history_tracker :
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_terms.Inlining_history.Tracker.tval relative_history_from_scoped :
loc:Debuginfo.Scoped_location.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_terms.Inlining_history.Relative.t