Module Flambda2_simplify.Continuation_uses
Recording of the uses of a single continuation. This module also computes, for each parameter of the continuation, the join of all corresponding argument types across the recorded uses; and the environment to be used for simplifying the continuation itself.
val create :
Flambda2_identifiers.Continuation.t ->
[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
tval print : Format.formatter -> t -> unitval add_use : t -> One_continuation_use.t -> tval get_uses : t -> One_continuation_use.t listtype arg_types_by_use_id =
arg_at_use Flambda2_identifiers.Apply_cont_rewrite_id.Map.t listval print_arg_type_at_use : Format.formatter -> arg_at_use -> unitval get_arg_types_by_use_id : t -> arg_types_by_use_idval get_arg_types_by_use_id_for_invariant_params :
[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
t list ->
arg_types_by_use_idval get_use_ids : t -> Flambda2_identifiers.Apply_cont_rewrite_id.Set.tval number_of_uses : t -> intval arity : t -> [ `Unarized ] Flambda2_kinds.Flambda_arity.tval get_typing_env_no_more_than_one_use :
t ->
Flambda2_types.Typing_env.t option