Module Flambda2_simplify.Upwards_acc
val print : Stdlib.Format.formatter -> Flambda2_simplify.Upwards_acc.t -> unitPrint a upwards accumulator to a formatter.
val create :
flow_result:Flambda2_simplify.Flow_types.Flow_result.t ->
compute_slot_offsets:bool ->
Flambda2_simplify.Upwards_env.t ->
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval creation_dacc :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Downwards_acc.tExtract the environment component of the given upwards accumulator.
val cost_metrics :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_terms.Cost_metrics.tval code_age_relation :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_types.Code_age_relation.tval lifted_constants :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Lifted_constant_state.tReturn the lifted constants that still need to be placed (i.e. have Let-expressions made for them) on the upwards traversal.
val get_and_clear_lifted_constants :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.t * Flambda2_simplify.Lifted_constant_state.tval with_lifted_constants :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Lifted_constant_state.t ->
Flambda2_simplify.Upwards_acc.tReplace the accumulator of lifted constants.
val no_lifted_constants : Flambda2_simplify.Upwards_acc.t -> boolval add_lifted_constant :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Lifted_constant.t ->
Flambda2_simplify.Upwards_acc.tval map_uenv :
Flambda2_simplify.Upwards_acc.t ->
f:(Flambda2_simplify.Upwards_env.t -> Flambda2_simplify.Upwards_env.t) ->
Flambda2_simplify.Upwards_acc.tMap the environment component of the given upwards accumulator.
val with_uenv :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_env.t ->
Flambda2_simplify.Upwards_acc.tReplace the environment component of the given upwards accumulator.
val remember_code_for_cmx :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_terms.Code.t Flambda2_identifiers.Code_id.Map.t ->
Flambda2_simplify.Upwards_acc.tval all_code : Flambda2_simplify.Upwards_acc.t -> Flambda2_cmx.Exported_code.tval name_occurrences :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_nominal.Name_occurrences.tval with_name_occurrences :
Flambda2_simplify.Upwards_acc.t ->
name_occurrences:Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Upwards_acc.tval clear_name_occurrences :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval add_free_names :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Upwards_acc.tval used_value_slots :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_nominal.Name_occurrences.tNote that this only includes uses of value slots in projections.
val remove_all_occurrences_of_free_names :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Upwards_acc.tval clear_cost_metrics :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval with_cost_metrics :
Flambda2_terms.Cost_metrics.t ->
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval add_cost_metrics :
Flambda2_terms.Cost_metrics.t ->
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval add_cost_metrics_and_with_name_occurrences :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_terms.Cost_metrics.t ->
Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Upwards_acc.tThis function exists as an optimisation to reduce allocation.
val notify_added :
code_size:Flambda2_terms.Code_size.t ->
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval notify_removed :
operation:Flambda2_terms.Removed_operations.t ->
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval generate_phantom_lets : Flambda2_simplify.Upwards_acc.t -> boolval are_rebuilding_terms :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify_shared.Are_rebuilding_terms.tval is_demoted_exn_handler :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
boolval with_slot_offsets :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify_shared.Slot_offsets.t Flambda2_lattices.Or_unknown.t ->
Flambda2_simplify.Upwards_acc.tval required_names :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_identifiers.Name.Set.tval reachable_code_ids :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Flow_types.Reachable_code_ids.t
Flambda2_lattices.Or_unknown.tval continuation_param_aliases :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Flow_types.Alias_result.tval mutable_unboxing_result :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Flow_types.Mutable_unboxing_result.tval set_resimplify :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_simplify.Upwards_acc.tval resimplify : Flambda2_simplify.Upwards_acc.t -> boolval specialization_map :
Flambda2_simplify.Upwards_acc.t ->
Flambda2_identifiers.Continuation.t
Flambda2_identifiers.Continuation_callsite_map.t