jon.recoil.org

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.

type t
val print : Format.formatter -> t -> unit
val add_use : t -> One_continuation_use.t -> t
val get_uses : t -> One_continuation_use.t list
type arg_at_use = {
  1. arg_type : Flambda2_types.t;
  2. typing_env : Flambda2_types.Typing_env.t;
}
val print_arg_type_at_use : Format.formatter -> arg_at_use -> unit
val get_arg_types_by_use_id : t -> arg_types_by_use_id
val get_arg_types_by_use_id_for_invariant_params : [ `Unarized ] Flambda2_kinds.Flambda_arity.t -> t list -> arg_types_by_use_id
val number_of_uses : t -> int
val arity : t -> [ `Unarized ] Flambda2_kinds.Flambda_arity.t
val get_typing_env_no_more_than_one_use : t -> Flambda2_types.Typing_env.t option
val union : t -> t -> t
val mark_non_inlinable : t -> t
val clear_uses : t -> t