Module Inline_and_simplify

val run : never_inline:bool -> backend:(module Backend_intf.S) -> prefixname:string -> round:int -> ppf_dump:Stdlib.Format.formatter -> Flambda.program -> Flambda.program

Simplification of Flambda programs combined with function inlining: for the most part a beta-reduction pass.

Readers interested in the inlining strategy should read the Inlining_decision module first.

val duplicate_function : env:Inline_and_simplify_aux.Env.t -> set_of_closures:Flambda.set_of_closures -> fun_var:Variable.t -> new_fun_var:Variable.t -> Flambda.function_declaration * Flambda.specialised_to Variable.Map.t