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 -> tCreate an environment marked as being at toplevel.
val at_toplevel : t -> boolval add_var :
t ->
Ident.t ->
Flambda2_identifiers.Variable.t ->
Flambda2_kinds.Flambda_kind.With_subkind.t ->
tval add_vars :
t ->
Ident.t list ->
(Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
list ->
tval add_var_map :
t ->
(Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
Ident.Map.t ->
tval add_var_like :
t ->
Ident.t ->
IR.user_visible ->
Flambda2_kinds.Flambda_kind.With_subkind.t ->
t * Flambda2_identifiers.Variable.tval add_vars_like :
t ->
(Ident.t
* Flambda2_identifiers.Flambda_debug_uid.t
* IR.user_visible
* Flambda2_kinds.Flambda_kind.With_subkind.t)
list ->
t * Flambda2_identifiers.Variable.t listval find_name : t -> Ident.t -> Flambda2_identifiers.Name.tval find_name_exn : t -> Ident.t -> Flambda2_identifiers.Name.tval find_var :
t ->
Ident.t ->
Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.tval find_var_exn :
t ->
Ident.t ->
Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.tval find_vars :
t ->
Ident.t list ->
(Flambda2_identifiers.Variable.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
listval add_global : t -> int -> Flambda2_identifiers.Symbol.t -> tval find_global : t -> int -> Flambda2_identifiers.Symbol.tval add_simple_to_substitute :
t ->
Ident.t ->
Flambda2_term_basics.Simple.t ->
Flambda2_kinds.Flambda_kind.With_subkind.t ->
tval add_simple_to_substitute_map :
t ->
(Flambda2_term_basics.Simple.t * Flambda2_kinds.Flambda_kind.With_subkind.t)
Ident.Map.t ->
tval find_simple_to_substitute_exn :
t ->
Ident.t ->
Flambda2_term_basics.Simple.t * Flambda2_kinds.Flambda_kind.With_subkind.tval add_var_approximation :
t ->
Flambda2_identifiers.Variable.t ->
value_approximation ->
tval add_block_approximation :
t ->
Flambda2_identifiers.Variable.t ->
Flambda2_kinds.Tag.Scannable.t ->
Flambda2_kinds.Flambda_kind.Scannable_block_shape.t ->
value_approximation array ->
Flambda2_bound_identifiers.Alloc_mode.For_types.t ->
tval find_var_approximation :
t ->
Flambda2_identifiers.Variable.t ->
value_approximationval current_depth : t -> Flambda2_identifiers.Variable.t optionval with_depth : t -> Flambda2_identifiers.Variable.t -> tval current_unit : t -> Compilation_unit.tval big_endian : t -> boolval set_path_to_root : t -> Debuginfo.Scoped_location.t -> tval path_to_root : t -> Debuginfo.Scoped_location.tval use_inlining_history_tracker :
t ->
Flambda2_terms.Inlining_history.Tracker.t ->
tval inlining_history_tracker : t -> Flambda2_terms.Inlining_history.Tracker.tval relative_history_from_scoped :
loc:Debuginfo.Scoped_location.t ->
t ->
Flambda2_terms.Inlining_history.Relative.t