Module Flambda2_simplify.Lifted_constant
Description of a group of statically-allocated values discovered during simplification.
The name of this module is unfortunately slightly misleading: these statically-allocated values may be inconstant in the sense that they may require initialisation at runtime before they can be read from.
module Definition : sig ... endval print : Format.formatter -> t -> unitval create_block_like :
Flambda2_identifiers.Symbol.t ->
symbol_projections:
Flambda2_term_basics.Symbol_projection.t
Flambda2_identifiers.Variable.Map.t ->
Rebuilt_static_const.t ->
Downwards_env.t ->
Flambda2_types.t ->
tThe creation functions take the types of symbols to avoid re-inferring them.
val create_set_of_closures :
Downwards_env.t ->
closure_symbols_with_types:
(Flambda2_identifiers.Symbol.t * Flambda2_types.t)
Flambda2_identifiers.Function_slot.Lmap.t ->
symbol_projections:
Flambda2_term_basics.Symbol_projection.t
Flambda2_identifiers.Variable.Map.t ->
Rebuilt_static_const.t ->
tval create_code : Flambda2_identifiers.Code_id.t -> Rebuilt_static_const.t -> tval create_definition : Definition.t -> tval definitions : t -> Definition.t listval bound_static : t -> Flambda2_bound_identifiers.Bound_static.tval defining_exprs : t -> Rebuilt_static_const.Group.tval types_of_symbols :
t ->
(Downwards_env.t * Flambda2_types.t) Flambda2_identifiers.Symbol.Map.tval symbol_projections :
t ->
Flambda2_term_basics.Symbol_projection.t Flambda2_identifiers.Variable.Map.tval is_fully_static : t -> boolval all_defined_symbols : t -> Flambda2_identifiers.Symbol.Set.tval free_names_of_defining_exprs : t -> Flambda2_nominal.Name_occurrences.tval apply_projection :
t ->
Flambda2_term_basics.Symbol_projection.t ->
Flambda2_term_basics.Simple.t option