Module Function_decls.Function_decl
type unboxing_kind = | Fields_of_block_with_tag_zero of Flambda2_kinds.Flambda_kind.With_subkind.t list| Unboxed_number of Flambda2_kinds.Flambda_kind.Boxable_number.t| Unboxed_float_record of int
type calling_convention = | Normal_calling_convention| Unboxed_calling_convention of Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.unboxing_kind option list * Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.unboxing_kind option * Flambda2_identifiers.Function_slot.t
type param = {name : Ident.t;debug_uid : Flambda2_identifiers.Flambda_debug_uid.t;kind : Flambda2_kinds.Flambda_kind.With_subkind.t;attributes : Lambda.parameter_attribute;mode : Lambda.locality_mode;
}val create :
let_rec_ident:Ident.t option ->
let_rec_uid:Flambda2_identifiers.Flambda_debug_uid.t ->
function_slot:Flambda2_identifiers.Function_slot.t ->
kind:Lambda.function_kind ->
params:
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.param
list ->
params_arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
removed_params:Ident.Set.t ->
return:[ `Unarized ] Flambda2_kinds.Flambda_arity.t ->
calling_convention:
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.calling_convention ->
return_continuation:Flambda2_identifiers.Continuation.t ->
exn_continuation:
Flambda2_from_lambda.Closure_conversion_aux.IR.exn_continuation ->
my_region:Ident.t option ->
my_ghost_region:Ident.t option ->
body:
(Flambda2_from_lambda.Closure_conversion_aux.Acc.t ->
Flambda2_from_lambda.Closure_conversion_aux.Env.t ->
Flambda2_from_lambda.Closure_conversion_aux.Acc.t
* Flambda2_terms.Flambda.Import.Expr.t) ->
attr:Lambda.function_attribute ->
loc:Lambda.scoped_location ->
free_idents_of_body:Ident.Set.t ->
Flambda2_terms.Recursive.t ->
closure_alloc_mode:Lambda.locality_mode ->
first_complex_local_param:int ->
result_mode:Lambda.locality_mode ->
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.tval let_rec_ident :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Ident.tval params_arity :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
[ `Complex ] Flambda2_kinds.Flambda_arity.tval return :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
[ `Unarized ] Flambda2_kinds.Flambda_arity.tval return_continuation :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Flambda2_identifiers.Continuation.tval my_region :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Ident.t optionval my_ghost_region :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Ident.t optionval poll_attribute :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Lambda.poll_attributeval regalloc_attribute :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Lambda.regalloc_attributeval regalloc_param_attribute :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Lambda.regalloc_param_attributeval cold :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
boolval is_a_functor :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
boolval is_opaque :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
boolval zero_alloc_attribute :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Lambda.zero_alloc_attributeval stub :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
boolval closure_alloc_mode :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Lambda.locality_modeval first_complex_local_param :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
intval free_idents :
Flambda2_from_lambda.Closure_conversion_aux.Function_decls.Function_decl.t ->
Ident.Set.t