Module Flambda2_simplify.Non_constructed_code
Code without any function bodies, but with all the associated metadata, e.g. free names.
type t = unit Flambda2_terms.Code0.tval code_metadata :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Code_metadata.tinclude Flambda2_terms.Code_metadata.Code_metadata_accessors_result_type
with type 'a t := Flambda2_simplify.Non_constructed_code.t
val code_id :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_identifiers.Code_id.tval newer_version_of :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_identifiers.Code_id.t optionval params_arity :
Flambda2_simplify.Non_constructed_code.t ->
[ `Complex ] Flambda2_kinds.Flambda_arity.tval param_modes :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_term_basics.Alloc_mode.For_types.t listval first_complex_local_param : Flambda2_simplify.Non_constructed_code.t -> intval result_arity :
Flambda2_simplify.Non_constructed_code.t ->
[ `Unarized ] Flambda2_kinds.Flambda_arity.tval result_mode :
Flambda2_simplify.Non_constructed_code.t ->
Lambda.locality_modeval stub : Flambda2_simplify.Non_constructed_code.t -> boolval zero_alloc_attribute :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Zero_alloc_attribute.tval poll_attribute :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Poll_attribute.tval regalloc_attribute :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Regalloc_attribute.tval regalloc_param_attribute :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Regalloc_param_attribute.tval cold : Flambda2_simplify.Non_constructed_code.t -> boolval is_a_functor : Flambda2_simplify.Non_constructed_code.t -> boolval is_opaque : Flambda2_simplify.Non_constructed_code.t -> boolval recursive :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Recursive.tval cost_metrics :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Cost_metrics.tval inlining_arguments :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Inlining_arguments.tval dbg : Flambda2_simplify.Non_constructed_code.t -> Debuginfo.tval is_tupled : Flambda2_simplify.Non_constructed_code.t -> boolval is_my_closure_used : Flambda2_simplify.Non_constructed_code.t -> boolval inlining_decision :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Function_decl_inlining_decision_type.tval absolute_history :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Inlining_history.Absolute.tval relative_history :
Flambda2_simplify.Non_constructed_code.t ->
Flambda2_terms.Inlining_history.Relative.tval function_slot_size : Flambda2_simplify.Non_constructed_code.t -> intval create_with_metadata :
free_names_of_params_and_body:Flambda2_nominal.Name_occurrences.t ->
code_metadata:Flambda2_terms.Code_metadata.t ->
Flambda2_simplify.Non_constructed_code.tval create :
free_names_of_params_and_body:Flambda2_nominal.Name_occurrences.t ->
Flambda2_simplify.Non_constructed_code.t
Flambda2_terms.Code_metadata.create_typeinclude Flambda2_nominal.Contains_names.S
with type t := Flambda2_simplify.Non_constructed_code.t
val free_names :
Flambda2_simplify.Non_constructed_code.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_simplify.Non_constructed_code.t ->
Flambda2_nominal.Renaming.t ->
Flambda2_simplify.Non_constructed_code.tApply a renaming throughout a term.
val print :
Stdlib.Format.formatter ->
Flambda2_simplify.Non_constructed_code.t ->
unit