Module Flambda2_simplify.Continuation_uses_env
val print :
Stdlib.Format.formatter ->
Flambda2_simplify.Continuation_uses_env.t ->
unitval empty : Flambda2_simplify.Continuation_uses_env.tinclude Flambda2_simplify.Continuation_uses_env_intf.S
with type t := Flambda2_simplify.Continuation_uses_env.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.Continuation_uses_env.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.Continuation_uses_env.t
* Flambda2_identifiers.Apply_cont_rewrite_id.tval delete_continuation_uses :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Continuation_uses_env.tval get_typing_env_no_more_than_one_use :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_types.Typing_env.t optionval num_continuation_uses :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
intval all_continuations_used :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.Set.tval get_continuation_uses :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Continuation_uses.t optionval clear_continuation_uses :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Continuation_uses_env.tval mark_non_inlinable :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_simplify.Continuation_uses_env.tval add_continuation_use :
Flambda2_simplify.Continuation_uses_env.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_term_basics.Continuation_use_kind.t ->
id:Flambda2_identifiers.Apply_cont_rewrite_id.t ->
env_at_use:Flambda2_simplify.Downwards_env.t ->
arg_types:Flambda2_types.t list ->
Flambda2_simplify.Continuation_uses_env.tManually add a continuation use, with everything specified, including the id for the apply_cont (contrary to record_continuation_uses which always generates a fresh id). Users of this function must take care to ensure there's only one use per id.