jon.recoil.org

Module Flambda2_simplify.Join_points

Compute, for each parameter of a continuation, the join of all corresponding argument types across the recorded uses; together with the environment to be used for simplifying the continuation itself.

type result = private {
  1. handler_env : Downwards_env.t;
  2. extra_params_and_args : Continuation_extra_params_and_args.t;
  3. is_single_inlinable_use : bool;
  4. escapes : bool;
}
val compute_handler_env : ?replay:(Replay_history.t * bool) -> ?cut_after:Flambda2_term_basics.Scope.t -> One_continuation_use.t list -> is_recursive:bool -> env_at_fork:Downwards_env.t -> consts_lifted_after_fork:Lifted_constant_state.t -> params:Flambda2_bound_identifiers.Bound_parameters.t -> previous_extra_params_and_args:Continuation_extra_params_and_args.t -> result