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
