jon.recoil.org

Module Flambda2_terms.Code_metadata

type t
type code_metadata = Flambda2_terms.Code_metadata.t
module type Metadata_view_type = sig ... end
module type Code_metadata_accessors_result_type = sig ... end
include Flambda2_terms.Code_metadata.Code_metadata_accessors_result_type with type 'a t := Flambda2_terms.Code_metadata.t
val first_complex_local_param : Flambda2_terms.Code_metadata.t -> int
val is_a_functor : Flambda2_terms.Code_metadata.t -> bool
val is_opaque : Flambda2_terms.Code_metadata.t -> bool
val is_tupled : Flambda2_terms.Code_metadata.t -> bool
val is_my_closure_used : Flambda2_terms.Code_metadata.t -> bool
val function_slot_size : Flambda2_terms.Code_metadata.t -> int
type '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 -> 'a
val with_is_my_closure_used : bool -> Flambda2_terms.Code_metadata.t -> Flambda2_terms.Code_metadata.t

free_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

Compute the free names of a term. Such computation covers all kinds of bindable names (variables, continuations, ...)

Apply a renaming throughout a term.