-
bigarray
-
dynlink
-
ocamlbytecomp
-
ocamlcommon
-
ocamlmiddleend
-
ocamloptcomp
-
odoc_info
-
raw_spacetime_lib
-
-
stdlib
-
str
-
threads
-
unix
Library
Module
Module type
Parameter
Class
Class type
Result structures approximately follow the evaluation order of the program. They are returned by the simplification algorithm acting on an Flambda subexpression.
val create : unit -> t
val approx : t -> Simple_value_approx.t
The approximation of the subexpression that has just been simplified.
val set_approx : t -> Simple_value_approx.t -> t
Set the approximation of the subexpression that has just been simplified. Typically used just before returning from a case of the simplification algorithm.
val meet_approx : t -> Env.t -> Simple_value_approx.t -> t
Set the approximation of the subexpression to the meet of the current return approximation and the provided one. Typically used just before returning from a branch case of the simplification algorithm.
val used_static_exceptions : t -> Static_exception.Set.t
All static exceptions for which use_staticfail
has been called on the given result structure.
val use_static_exception : t -> Static_exception.t -> t
Mark that the given static exception has been used.
val exit_scope_catch : t -> Static_exception.t -> t
Mark that we are moving up out of the scope of a static-catch block that catches the given static exception identifier. This has the effect of removing the identifier from the used_staticfail
set.
val benefit : t -> Inlining_cost.Benefit.t
The benefit to be gained by inlining the subexpression whose simplification yielded the given result structure.
val map_benefit :
t ->
(Inlining_cost.Benefit.t -> Inlining_cost.Benefit.t) ->
t
Apply a transformation to the inlining benefit stored within the given result structure.
val add_benefit : t -> Inlining_cost.Benefit.t -> t
Add some benefit to the inlining benefit stored within the given result structure.
Set the benefit of inlining the subexpression corresponding to the given result structure to zero.
val set_inlining_threshold : t -> Inlining_cost.Threshold.t option -> t
val add_inlining_threshold : t -> Inlining_cost.Threshold.t -> t
val sub_inlining_threshold : t -> Inlining_cost.Threshold.t -> t
val inlining_threshold : t -> Inlining_cost.Threshold.t option
val num_direct_applications : t -> int