Module Flambda2_simplify
module Apply_cont_rewrite : sig ... endRewrites applied to Apply_cont expressions in order to reflect changes in continuation arities consequential to addition or removal of parameters.
module Are_lifting_conts : sig ... endontinuation Lifting Status
module Build_unboxing_denv : sig ... endTransform an unboxing decision tree into the downwards environment required for simplification.
module Call_site_inlining_decision : sig ... endmodule Closure_info : sig ... endmodule Common_subexpression_elimination : sig ... endMaintenance of environments and associated calculations for common subexpression elimination, performed during Simplify.
module Comparison_result : sig ... endmodule Continuation_extra_params_and_args : sig ... endmodule Continuation_in_env : sig ... endmodule Continuation_shortcut : sig ... endA continuation shortcut is an anonymous continuation whose body is a single Apply_cont expression to another continuation.
module Continuation_uses : sig ... endRecording of the uses of a single continuation. This module also computes, for each parameter of the continuation, the join of all corresponding argument types across the recorded uses; and the environment to be used for simplifying the continuation itself.
module Continuation_uses_env : sig ... endmodule Continuation_uses_env_intf : sig ... endmodule Control_flow_graph : sig ... endmodule Data_flow_graph : sig ... endmodule Dominator_graph : sig ... endmodule Downwards_acc : sig ... endmodule Downwards_env : sig ... endmodule Expr_builder : sig ... endFunctions for rebuilding expressions that are used during simplification. Unlike the basic creation functions in Expr these functions do things such as keeping track of free names and avoiding generation of unused bindings. They also elide construction of the terms themselves if required, e.g. during speculative inlining.
module Flow : sig ... endmodule Flow_acc : sig ... endDataflow analysis.
module Flow_analysis : sig ... endDataflow analysis.
module Flow_types : sig ... endmodule Function_decl_inlining_decision : sig ... endmodule Inlining_transforms : sig ... endmodule Is_unboxing_beneficial : sig ... endmodule Join_points : sig ... endCompute, for each parameter of a continuation, the join of all corresponding argument types across the recorded uses; together with the environment to be used for simplifying the continuation itself.
module Lifted_constant : sig ... endDescription of a group of statically-allocated values discovered during simplification.
module Lifted_constant_state : sig ... endmodule Lifted_cont_params : sig ... endmodule Loopify_state : sig ... endmodule Mutable_unboxing : sig ... endmodule Named_rewrite : sig ... endmodule Non_constructed_code : sig ... endCode without any function bodies, but with all the associated metadata, e.g. free names.
module Non_recursive_handler : sig ... endmodule Number_adjuncts : sig ... endAdditional information about kinds of numbers (mainly relating to conversions and boxing/unboxing) in a standard form that can be fed to functors parametric in number kinds.
module One_continuation_use : sig ... endmodule One_recursive_handler : sig ... endmodule Optimistic_unboxing_decision : sig ... endmodule Original_handlers : sig ... endmodule Rebuilt_expr : sig ... endThe type of expressions constructed by the simplifier.
module Rebuilt_static_const : sig ... endStatic constants, equipped with free name information, as rebuilt by the simplifier. Definitions of the constants themselves are not kept when not rebuilding terms, but some of the metadata is.
module Reification : sig ... endConstruct terms using only information from types.
module Replay_history : sig ... endmodule Simplified_named : sig ... endmodule Simplify : sig ... endSimplification of Flambda programs: inlining, specialisation, unboxing and so forth.
module Simplify_apply_cont_expr : sig ... endmodule Simplify_apply_expr : sig ... endmodule Simplify_binary_primitive : sig ... endSimplification of primitives taking two arguments.
module Simplify_coercion : sig ... endmodule Simplify_common : sig ... endMiscellaneous utility functions and types used by the simplifier.
module Simplify_expr : sig ... endSimplification proceeds in two passes: the downwards pass and the upwards pass.
module Simplify_extcall : sig ... endSimplification of external calls
module Simplify_import : sig ... endmodule Simplify_let_cont_expr : sig ... endmodule Simplify_let_expr : sig ... endmodule Simplify_named : sig ... endSimplification of the right-hand sides of Let bindings.
module Simplify_named_result : sig ... endmodule Simplify_nullary_primitive : sig ... endSimplification of primitives taking no argument.
module Simplify_primitive : sig ... endSimplification of primitive applications.
module Simplify_primitive_result : sig ... endmodule Simplify_quaternary_primitive : sig ... endmodule Simplify_rec_info_expr : sig ... endSimplification functions on Rec_info_expr.t.
module Simplify_set_of_closures : sig ... endSimplification of recursive groups of sets of closures. This process makes new, simplified versions of Code bindings based on the contextual information available from the corresponding set of closures definition. (Code bindings are not simplified earlier, except in the special case of stub functions, because much more information is available at the set of closures definitions. Stub functions are simplified once since it is unlikely more information will be gained at the set of closures definitions; this also avoids potential performance problems in pathological cases.
module Simplify_set_of_closures_context : sig ... endmodule Simplify_simple : sig ... endSimplification functions on Simple.t.
module Simplify_static_const : sig ... endSimplification of statically-allocated constants bound to symbols.
module Simplify_switch_expr : sig ... endmodule Simplify_ternary_primitive : sig ... endSimplification of primitives taking three arguments.
module Simplify_unary_primitive : sig ... endSimplification of primitives taking one argument.
module Simplify_variadic_primitive : sig ... endSimplification of primitives taking variable numbers of arguments.
module Specialization_cost : sig ... endontinuation Specialization Cost
module Unbox_continuation_params : sig ... endmodule Unboxers : sig ... endmodule Unboxing_epa : sig ... endHandling of the extra params and args required for the unboxing of a continuation's parameter(s).
module Unboxing_types : sig ... endmodule Upwards_acc : sig ... endmodule Upwards_env : sig ... endUpwards environments used during simplification.