Module Flambda2_simplify.Downwards_acc
val print :
Stdlib.Format.formatter ->
Flambda2_simplify.Downwards_acc.t ->
unitPrint a downwards accumulator to a formatter.
val create :
Flambda2_simplify.Downwards_env.t ->
Flambda2_simplify_shared.Slot_offsets.t Flambda2_identifiers.Code_id.Map.t ->
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_simplify.Downwards_acc.tCreate a downwards accumulator.
Extract the environment component of the given downwards accumulator.
val map_denv :
Flambda2_simplify.Downwards_acc.t ->
f:(Flambda2_simplify.Downwards_env.t -> Flambda2_simplify.Downwards_env.t) ->
Flambda2_simplify.Downwards_acc.tMap the environment component of the given downwards accumulator.
val with_denv :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_env.t ->
Flambda2_simplify.Downwards_acc.tReplace the environment component of the given downwards accumulator.
val flow_acc :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Flow.Acc.tExtract the dataflow analysis accumulator
val map_flow_acc :
Flambda2_simplify.Downwards_acc.t ->
f:(Flambda2_simplify.Flow.Acc.t -> Flambda2_simplify.Flow.Acc.t) ->
Flambda2_simplify.Downwards_acc.tMap the dataflow analysis accumulator of the given dacc.
include Flambda2_simplify.Continuation_uses_env_intf.S
with type t := Flambda2_simplify.Downwards_acc.t
We don't have an interface that insists on adding continuations before seeing their uses. This would be problematic when inserting wrappers, where we have already advanced past the point at which such wrappers would need to be defined, before knowing that a wrapper is needed.
val record_continuation_use :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_term_basics.Continuation_use_kind.t ->
env_at_use:Flambda2_simplify.Downwards_env.t ->
arg_types:Flambda2_types.t list ->
Flambda2_simplify.Downwards_acc.t
* Flambda2_identifiers.Apply_cont_rewrite_id.tval delete_continuation_uses :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Downwards_acc.tval get_typing_env_no_more_than_one_use :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_types.Typing_env.t optionval num_continuation_uses :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
intval all_continuations_used :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.Set.tval continuation_uses_env :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Continuation_uses_env.tval with_continuation_uses_env :
Flambda2_simplify.Downwards_acc.t ->
cont_uses_env:Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_simplify.Downwards_acc.tval demote_exn_handler :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Downwards_acc.tMark that an exception handler continuation should be converted to a normal continuation. This is used when turning local exceptions into jumps.
val demoted_exn_handlers :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.Set.tval code_age_relation :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_types.Code_age_relation.tval with_code_age_relation :
Flambda2_simplify.Downwards_acc.t ->
code_age_relation:Flambda2_types.Code_age_relation.t ->
Flambda2_simplify.Downwards_acc.tval typing_env :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_types.Typing_env.tval add_variable :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_bound_identifiers.Bound_var.t ->
Flambda2_types.t ->
Flambda2_simplify.Downwards_acc.tval no_lifted_constants : Flambda2_simplify.Downwards_acc.t -> boolval add_to_lifted_constant_accumulator :
?also_add_to_env:unit ->
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Lifted_constant_state.t ->
Flambda2_simplify.Downwards_acc.tval get_lifted_constants :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Lifted_constant_state.tval get_and_clear_lifted_constants :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.t * Flambda2_simplify.Lifted_constant_state.tval clear_lifted_constants :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.tval set_lifted_constants :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Lifted_constant_state.t ->
Flambda2_simplify.Downwards_acc.tval consider_constant_for_sharing :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Symbol.t ->
Flambda2_terms.Static_const.t ->
Flambda2_simplify.Downwards_acc.tval add_use_of_value_slot :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Value_slot.t ->
Flambda2_simplify.Downwards_acc.tval used_value_slots :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_nominal.Name_occurrences.tval with_used_value_slots :
Flambda2_simplify.Downwards_acc.t ->
used_value_slots:Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Downwards_acc.tval add_code_ids_to_remember :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval code_ids_to_remember :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Code_id.Set.tval with_code_ids_to_remember :
Flambda2_simplify.Downwards_acc.t ->
code_ids_to_remember:Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval add_code_ids_to_never_delete :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval code_ids_to_never_delete :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Code_id.Set.tval with_code_ids_to_never_delete :
Flambda2_simplify.Downwards_acc.t ->
code_ids_to_never_delete:Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval add_code_ids_never_simplified :
Flambda2_simplify.Downwards_acc.t ->
old_code_ids:Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval code_ids_never_simplified :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Code_id.Set.tval with_code_ids_never_simplified :
Flambda2_simplify.Downwards_acc.t ->
code_ids_never_simplified:Flambda2_identifiers.Code_id.Set.t ->
Flambda2_simplify.Downwards_acc.tval are_rebuilding_terms :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify_shared.Are_rebuilding_terms.tval with_slot_offsets :
Flambda2_simplify.Downwards_acc.t ->
slot_offsets:
Flambda2_simplify_shared.Slot_offsets.t Flambda2_identifiers.Code_id.Map.t ->
Flambda2_simplify.Downwards_acc.tval merge_debuginfo_rewrite :
Flambda2_simplify.Downwards_acc.t ->
bound_to:Flambda2_term_basics.Simple.t ->
Debuginfo.t ->
Flambda2_simplify.Downwards_acc.tval find_debuginfo_rewrite :
Flambda2_simplify.Downwards_acc.t ->
bound_to:Flambda2_term_basics.Simple.t ->
Debuginfo.t optionval are_lifting_conts :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Are_lifting_conts.tval with_are_lifting_conts :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Are_lifting_conts.t ->
Flambda2_simplify.Downwards_acc.tval get_and_clear_lifted_continuations :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.t
* (Flambda2_simplify.Downwards_env.t * Flambda2_simplify.Original_handlers.t)
listval add_lifted_continuation :
Flambda2_simplify.Downwards_env.t ->
Flambda2_simplify.Original_handlers.t ->
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.tval get_continuation_lifting_budget : Flambda2_simplify.Downwards_acc.t -> intval reset_continuation_lifting_budget :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.tval with_continuation_lifting_budget :
Flambda2_simplify.Downwards_acc.t ->
int ->
Flambda2_simplify.Downwards_acc.tval decrease_continuation_lifting_budget :
Flambda2_simplify.Downwards_acc.t ->
int ->
Flambda2_simplify.Downwards_acc.tval get_continuation_specialization_budget :
Flambda2_simplify.Downwards_acc.t ->
intval reset_continuation_specialization_budget :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.tval with_continuation_specialization_budget :
Flambda2_simplify.Downwards_acc.t ->
int ->
Flambda2_simplify.Downwards_acc.tval decrease_continuation_specialization_budget :
Flambda2_simplify.Downwards_acc.t ->
int ->
Flambda2_simplify.Downwards_acc.tval prepare_for_speculative_inlining :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_simplify.Downwards_acc.tval continuations_to_specialize :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.Set.tval add_continuation_to_specialize :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Downwards_acc.tval add_specialization :
Flambda2_simplify.Downwards_acc.t ->
Flambda2_identifiers.Apply_cont_rewrite_id.t ->
old:Flambda2_identifiers.Continuation.t ->
specialized:Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Downwards_acc.t