Jump To
Table of Contents
- ocaml-base-compiler
- Library
compiler-libs.bytecomp
- Library
compiler-libs.common
- Annot
- Arg_helper
- Ast_helper
- Ast_invariants
- Ast_iterator
- Ast_mapper
- Asttypes
- Attr_helper
- Binutils
- Btype
- Build_path_prefix_map
- Builtin_attributes
- Bytesections
- CamlinternalMenhirLib
- Ccomp
- Clflags
- Cmi_format
- Cmo_format
- Cmt2annot
- Cmt_format
- Compenv
- Compile_common
- Compmisc
- Compression
- Config
- Config_boot
- Config_main
- Consistbl
- Ctype
- Datarepr
- Debuginfo
- Depend
- Diffing
- Diffing_with_keys
- Dll
- Docstrings
- Domainstate
- Env
- Envaux
- Errortrace
- Expunge
- Ident
- Identifiable
- Includeclass
- Includecore
- Includemod
- Includemod_errorprinter
- Int_replace_polymorphic_compare
- Lambda
- Lazy_backtrack
- Lexer
- Load_path
- Local_store
- Location
- Longident
- Main_args
- Makedepend
- Matching
- Meta
- Misc
- Mtype
- Numbers
- Opcodes
- Oprint
- Outcometree
- Parmatch
- Parse
- Parser
- Parsetree
- Path
- Patterns
- Persistent_env
- Pparse
- Pprintast
- Predef
- Primitive
- Printast
- Printlambda
- Printpat
- Printtyp
- Printtyped
- Profile
- Runtimedef
- Shape
- Shape_reduce
- Signature_group
- Simplif
- Strongly_connected_components
- Stypes
- Subst
- Switch
- Symtable
- Syntaxerr
- Targetint
- Tast_iterator
- Tast_mapper
- Terminfo
- Tmc
- Translattribute
- Translclass
- Translcore
- Translmod
- Translobj
- Translprim
- Type_immediacy
- Typeclass
- Typecore
- Typedecl
- Typedecl_immediacy
- Typedecl_properties
- Typedecl_separability
- Typedecl_unboxed
- Typedecl_variance
- Typedtree
- Typemod
- Typeopt
- Types
- Typetexp
- Unit_info
- Untypeast
- Value_rec_check
- Value_rec_compiler
- Value_rec_types
- Warnings
- X86_ast
- Library
compiler-libs.optcomp
- Afl_instrument
- Alias_analysis
- Allocated_const
- Arch
- Asmgen
- Asmlibrarian
- Asmlink
- Asmpackager
- Augment_specialised_args
- Backend_intf
- Backend_var
- Branch_relaxation
- Branch_relaxation_intf
- Build_export_info
- CSE
- CSEgen
- Clambda
- Clambda_primitives
- Closure
- Closure_conversion
- Closure_conversion_aux
- Closure_element
- Closure_id
- Closure_middle_end
- Closure_offsets
- Closure_origin
- Cmm
- Cmm_helpers
- Cmm_invariants
- Cmmgen
- Cmmgen_state
- Cmx_format
- Cmxs_format
- Coloring
- Comballoc
- Compilation_unit
- Compilenv
- Convert_primitives
- Dataflow
- Deadcode
- Effect_analysis
- Emit
- Emitaux
- Emitenv
- Export_id
- Export_info
- Export_info_for_pack
- Extract_projections
- Find_recursive_functions
- Flambda
- Flambda_invariants
- Flambda_iterators
- Flambda_middle_end
- Flambda_to_clambda
- Flambda_utils
- Freshening
- Id_types
- Import_approx
- Inconstant_idents
- Initialize_symbol_to_let_symbol
- Inline_and_simplify
- Inline_and_simplify_aux
- Inlining_cost
- Inlining_decision
- Inlining_decision_intf
- Inlining_stats
- Inlining_stats_types
- Inlining_transforms
- Interf
- Internal_variable_names
- Interval
- Invariant_params
- Lift_code
- Lift_constants
- Lift_let_to_initialize_symbol
- Linear
- Linear_format
- Linearize
- Linkage_name
- Linscan
- Liveness
- Mach
- Mutable_variable
- Optcompile
- Opterrors
- Optmaindriver
- Parameter
- Pass_wrapper
- Polling
- Printclambda
- Printclambda_primitives
- Printcmm
- Printlinear
- Printmach
- Proc
- Projection
- Ref_to_variables
- Reg
- Reload
- Reloadgen
- Remove_free_vars_equal_to_args
- Remove_unused_arguments
- Remove_unused_closure_vars
- Remove_unused_program_constructs
- Schedgen
- Scheduling
- Selectgen
- Selection
- Semantics_of_primitives
- Set_of_closures_id
- Set_of_closures_origin
- Share_constants
- Simple_value_approx
- Simplify_boxed_integer_ops
- Simplify_boxed_integer_ops_intf
- Simplify_common
- Simplify_primitives
- Spill
- Split
- Stackframe
- Stackframegen
- Static_exception
- Strmatch
- Symbol
- Tag
- Thread_sanitizer
- Traverse_for_exported_symbols
- Un_anf
- Unbox_closures
- Unbox_free_vars_of_closures
- Unbox_specialised_args
- Var_within_closure
- Variable
- Library
compiler-libs.toplevel
- Library
dynlink
- Library
runtime_events
- Library
stdlib
- Library
str
- Library
threads
- Library
unix
- Library
When approximations of free variables of closures indicate that they are closures or blocks, rewrite projections from such blocks to new variables (which become free in the closures), with the defining expressions of the projections lifted out of the corresponding sets of closures.
val run :
env:Inline_and_simplify_aux.Env.t ->
set_of_closures:Flambda.set_of_closures ->
(Flambda.expr * Inlining_cost.Benefit.t) option