Module Flambda2_simplify.Apply_cont_rewrite
Rewrites applied to Apply_cont expressions in order to reflect changes in continuation arities consequential to addition or removal of parameters.
The rewrites are actually applied via Expr_builder.
val print : Format.formatter -> t -> unitval create :
original_params:Flambda2_bound_identifiers.Bound_parameters.t ->
extra_params_and_args:Continuation_extra_params_and_args.t ->
decide_param_usage:(Flambda2_bound_identifiers.Bound_parameter.t -> used) ->
textra_args (and hence extra_params) must be given in order: later extra-args may refer to earlier extra-args, but not vice-versa.
val does_nothing : t -> boolval get_used_params :
t ->
Flambda2_bound_identifiers.Bound_parameters.t
* Flambda2_bound_identifiers.Bound_parameters.tval get_unused_params : t -> Flambda2_bound_identifiers.Bound_parameters.tval original_params_arity : t -> [> ] Flambda2_kinds.Flambda_arity.tval make_rewrite :
t ->
machine_width:Target_system.Machine_width.t ->
ctx:rewrite_apply_cont_ctx ->
Flambda2_identifiers.Apply_cont_rewrite_id.t ->
Flambda2_term_basics.Simple.t list ->
((Flambda2_bound_identifiers.Bound_var.t
* Flambda2_terms.Code_size.t
* Flambda2_terms.Flambda.Named.t)
list
* Flambda2_term_basics.Simple.t list)
Flambda2_term_basics.Or_invalid.tval rewrite_exn_continuation :
t ->
Flambda2_identifiers.Apply_cont_rewrite_id.t ->
Flambda2_terms.Exn_continuation.t ->
Flambda2_terms.Exn_continuation.t