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