Inline_and_simplify_aux
Environments and result structures used during inlining and simplification. (See inline_and_simplify.ml.)
module Env : sig ... end
module Result : sig ... end
val initial_inlining_threshold : round:int -> Inlining_cost.Threshold.t
Command line argument -inline
val initial_inlining_toplevel_threshold :
round:int ->
Inlining_cost.Threshold.t
Command line argument -inline-toplevel
val prepare_to_simplify_set_of_closures :
env:Env.t ->
set_of_closures:Flambda.set_of_closures ->
function_decls:Flambda.function_declarations ->
freshen:bool ->
only_for_function_decl:Flambda.function_declaration option ->
(Flambda.specialised_to * Simple_value_approx.t) Variable.Map.t
* Flambda.specialised_to Variable.Map.t
* Flambda.function_declarations
* Simple_value_approx.t Variable.Map.t
* Simple_value_approx.value_set_of_closures
* Env.t
val prepare_to_simplify_closure :
function_decl:Flambda.function_declaration ->
free_vars:(Flambda.specialised_to * Simple_value_approx.t) Variable.Map.t ->
specialised_args:Flambda.specialised_to Variable.Map.t ->
parameter_approximations:Simple_value_approx.t Variable.Map.t ->
set_of_closures_env:Env.t ->
Env.t
val keep_body_check :
is_classic_mode:bool ->
recursive:Variable.Set.t Lazy.t ->
Variable.t ->
Flambda.function_declaration ->
bool