Module Flambda2_simplify.Control_flow_graph
type t = {dummy_toplevel_cont : Flambda2_identifiers.Continuation.t;callers : Flambda2_identifiers.Continuation.Set.t Flambda2_identifiers.Continuation.Map.t;parents : Flambda2_identifiers.Continuation.t Flambda2_identifiers.Continuation.Map.t;children : Flambda2_identifiers.Continuation.Set.t Flambda2_identifiers.Continuation.Map.t;
}An internal type for the data_flow graph
val create :
dummy_toplevel_cont:Flambda2_identifiers.Continuation.t ->
Flambda2_simplify.Flow_types.Acc.t ->
Flambda2_simplify.Control_flow_graph.tCreate the data flow graph
val fixpoint :
Flambda2_simplify.Control_flow_graph.t ->
init:'a Flambda2_identifiers.Continuation.Map.t ->
eq:('a -> 'a -> bool) ->
f:
(caller:Flambda2_identifiers.Continuation.t ->
caller_set:'a ->
callee:Flambda2_identifiers.Continuation.t ->
callee_set:'a ->
'a) ->
'a Flambda2_identifiers.Continuation.Map.tval compute_continuation_extra_args_for_aliases :
speculative:bool ->
required_names:Flambda2_identifiers.Name.Set.t ->
source_info:Flambda2_simplify.Flow_types.Acc.t ->
unboxed_blocks:Flambda2_term_basics.Simple.Set.t ->
Flambda2_term_basics.Simple.t Flambda2_identifiers.Variable.Map.t ->
Flambda2_simplify.Control_flow_graph.t ->
Flambda2_simplify.Flow_types.Continuation_param_aliases.t
Flambda2_identifiers.Continuation.Map.tRun the required names analysis
module Dot : sig ... end