Module Flambda2_terms.Code_metadata
type code_metadata = Flambda2_terms.Code_metadata.tmodule type Metadata_view_type = sig ... endmodule type Code_metadata_accessors_result_type = sig ... endmodule Code_metadata_accessors
(X : Flambda2_terms.Code_metadata.Metadata_view_type) :
Flambda2_terms.Code_metadata.Code_metadata_accessors_result_type
with type 'a t := 'a X.tinclude Flambda2_terms.Code_metadata.Code_metadata_accessors_result_type
with type 'a t := Flambda2_terms.Code_metadata.t
val code_id : Flambda2_terms.Code_metadata.t -> Flambda2_identifiers.Code_id.tval newer_version_of :
Flambda2_terms.Code_metadata.t ->
Flambda2_identifiers.Code_id.t optionval params_arity :
Flambda2_terms.Code_metadata.t ->
[ `Complex ] Flambda2_kinds.Flambda_arity.tval param_modes :
Flambda2_terms.Code_metadata.t ->
Flambda2_term_basics.Alloc_mode.For_types.t listval first_complex_local_param : Flambda2_terms.Code_metadata.t -> intval result_arity :
Flambda2_terms.Code_metadata.t ->
[ `Unarized ] Flambda2_kinds.Flambda_arity.tval result_mode : Flambda2_terms.Code_metadata.t -> Lambda.locality_modeval stub : Flambda2_terms.Code_metadata.t -> boolval inline :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Inline_attribute.tval zero_alloc_attribute :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Zero_alloc_attribute.tval poll_attribute :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Poll_attribute.tval regalloc_attribute :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Regalloc_attribute.tval regalloc_param_attribute :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Regalloc_param_attribute.tval cold : Flambda2_terms.Code_metadata.t -> boolval is_a_functor : Flambda2_terms.Code_metadata.t -> boolval is_opaque : Flambda2_terms.Code_metadata.t -> boolval recursive : Flambda2_terms.Code_metadata.t -> Flambda2_terms.Recursive.tval cost_metrics :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Cost_metrics.tval inlining_arguments :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Inlining_arguments.tval dbg : Flambda2_terms.Code_metadata.t -> Debuginfo.tval is_tupled : Flambda2_terms.Code_metadata.t -> boolval is_my_closure_used : Flambda2_terms.Code_metadata.t -> boolval inlining_decision :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Function_decl_inlining_decision_type.tval absolute_history :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Inlining_history.Absolute.tval relative_history :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Inlining_history.Relative.tval loopify :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Loopify_attribute.tval function_slot_size : Flambda2_terms.Code_metadata.t -> inttype 'a create_type =
Flambda2_identifiers.Code_id.t ->
newer_version_of:Flambda2_identifiers.Code_id.t option ->
params_arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
param_modes:Flambda2_term_basics.Alloc_mode.For_types.t list ->
first_complex_local_param:int ->
result_arity:[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
result_types:
Flambda2_terms.Result_types.t Flambda2_lattices.Or_unknown_or_bottom.t ->
result_mode:Lambda.locality_mode ->
stub:bool ->
inline:Flambda2_terms.Inline_attribute.t ->
zero_alloc_attribute:Flambda2_terms.Zero_alloc_attribute.t ->
poll_attribute:Flambda2_terms.Poll_attribute.t ->
regalloc_attribute:Flambda2_terms.Regalloc_attribute.t ->
regalloc_param_attribute:Flambda2_terms.Regalloc_param_attribute.t ->
cold:bool ->
is_a_functor:bool ->
is_opaque:bool ->
recursive:Flambda2_terms.Recursive.t ->
cost_metrics:Flambda2_terms.Cost_metrics.t ->
inlining_arguments:Flambda2_terms.Inlining_arguments.t ->
dbg:Debuginfo.t ->
is_tupled:bool ->
is_my_closure_used:bool ->
inlining_decision:Flambda2_terms.Function_decl_inlining_decision_type.t ->
absolute_history:Flambda2_terms.Inlining_history.Absolute.t ->
relative_history:Flambda2_terms.Inlining_history.Relative.t ->
loopify:Flambda2_terms.Loopify_attribute.t ->
'aval createk :
(Flambda2_terms.Code_metadata.t -> 'a) ->
'a Flambda2_terms.Code_metadata.create_typeval with_code_id :
Flambda2_identifiers.Code_id.t ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_newer_version_of :
Flambda2_identifiers.Code_id.t option ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_cost_metrics :
Flambda2_terms.Cost_metrics.t ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_is_my_closure_used :
bool ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_result_arity :
[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_params_arity :
[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_param_modes :
Flambda2_term_basics.Alloc_mode.For_types.t list ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_is_tupled :
bool ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval with_result_types :
Flambda2_terms.Result_types.t Flambda2_lattices.Or_unknown_or_bottom.t ->
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.tval print : Stdlib.Format.formatter -> Flambda2_terms.Code_metadata.t -> unitfree_names does not return occurrences of value slots inside the result_types.
include Flambda2_nominal.Contains_names.S
with type t := Flambda2_terms.Code_metadata.t
val free_names :
Flambda2_terms.Code_metadata.t ->
Flambda2_nominal.Name_occurrences.tCompute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)
val apply_renaming :
Flambda2_terms.Code_metadata.t ->
Flambda2_nominal.Renaming.t ->
Flambda2_terms.Code_metadata.tApply a renaming throughout a term.
val ids_for_export :
Flambda2_terms.Code_metadata.t ->
Flambda2_nominal.Ids_for_export.tval approx_equal :
Flambda2_terms.Code_metadata.t ->
Flambda2_terms.Code_metadata.t ->
boolval map_result_types :
Flambda2_terms.Code_metadata.t ->
f:(Flambda2_types.t -> Flambda2_types.t) ->
Flambda2_terms.Code_metadata.t