Module Flambda2_reaper.Traverse_acc
module Graph = Flambda2_reaper.Global_flow_graphtype continuation_info = {is_exn_handler : bool;params : Flambda2_identifiers.Variable.t list;arity : Flambda2_kinds.Flambda_kind.With_subkind.t list;
}module Env : sig ... endtype code_dep = {arity : [ `Complex ] Flambda2_kinds.Flambda_arity.t;params : Flambda2_identifiers.Variable.t list;my_closure : Flambda2_identifiers.Variable.t;return : Flambda2_identifiers.Variable.t list;exn : Flambda2_identifiers.Variable.t;is_tupled : bool;known_arity_call_witness : Flambda2_identifiers.Code_id_or_name.t;unknown_arity_call_witnesses : Flambda2_identifiers.Code_id_or_name.t list;
}type apply_dep = {function_containing_apply_expr : Flambda2_identifiers.Code_id.t option;apply_code_id : Flambda2_identifiers.Code_id.t;apply_closure : Flambda2_term_basics.Simple.t option;apply_call_witness : Flambda2_identifiers.Code_id_or_name.t;
}val create : unit -> Flambda2_reaper.Traverse_acc.tval kind :
Flambda2_identifiers.Name.t ->
Flambda2_kinds.Flambda_kind.t ->
Flambda2_reaper.Traverse_acc.t ->
unitval bound_parameter_kind :
Flambda2_bound_identifiers.Bound_parameter.t ->
Flambda2_reaper.Traverse_acc.t ->
unitval alias_kind :
Flambda2_identifiers.Name.t ->
Flambda2_term_basics.Simple.t ->
Flambda2_reaper.Traverse_acc.t ->
unitval fixed_arity_continuation :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Continuation.t ->
unitval fixed_arity_continuations :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Continuation.Set.tval continuation_info :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Continuation.t ->
Flambda2_reaper.Traverse_acc.continuation_info ->
unitval get_continuation_info :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_reaper.Traverse_acc.continuation_info
Flambda2_identifiers.Continuation.Map.tval add_code :
Flambda2_identifiers.Code_id.t ->
Flambda2_reaper.Traverse_acc.code_dep ->
Flambda2_reaper.Traverse_acc.t ->
unitval add_alias :
Flambda2_reaper.Traverse_acc.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_use_dep :
Flambda2_reaper.Traverse_acc.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_accessor_dep :
Flambda2_reaper.Traverse_acc.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
Flambda2_reaper.Field.t ->
base:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_constructor_dep :
Flambda2_reaper.Traverse_acc.t ->
base:Flambda2_identifiers.Code_id_or_name.t ->
Flambda2_reaper.Field.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_coaccessor_dep :
Flambda2_reaper.Traverse_acc.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
Flambda2_reaper.Cofield.t ->
base:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_coconstructor_dep :
Flambda2_reaper.Traverse_acc.t ->
base:Flambda2_identifiers.Code_id_or_name.t ->
Flambda2_reaper.Cofield.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_propagate_dep :
Flambda2_reaper.Traverse_acc.t ->
if_used:Flambda2_identifiers.Code_id_or_name.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_alias_if_any_source_dep :
Flambda2_reaper.Traverse_acc.t ->
if_any_source:Flambda2_identifiers.Code_id_or_name.t ->
to_:Flambda2_identifiers.Code_id_or_name.t ->
from:Flambda2_identifiers.Code_id_or_name.t ->
unitval add_any_usage :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Code_id_or_name.t ->
unitval add_any_source :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Code_id_or_name.t ->
unitval add_code_id_my_closure :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Code_id.t ->
Flambda2_identifiers.Variable.t ->
unitval simple_to_node :
Flambda2_reaper.Traverse_acc.t ->
denv:Flambda2_reaper.Traverse_acc.Env.t ->
Flambda2_term_basics.Simple.t ->
Flambda2_identifiers.Code_id_or_name.tval add_cond_any_usage :
Flambda2_reaper.Traverse_acc.t ->
denv:Flambda2_reaper.Traverse_acc.Env.t ->
Flambda2_term_basics.Simple.t ->
unitval add_cond_any_source :
Flambda2_reaper.Traverse_acc.t ->
denv:Flambda2_reaper.Traverse_acc.Env.t ->
Flambda2_identifiers.Code_id_or_name.t ->
unitval add_apply :
Flambda2_reaper.Traverse_acc.apply_dep ->
Flambda2_reaper.Traverse_acc.t ->
unitval create_known_arity_call_witness :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Code_id.t ->
params:Flambda2_identifiers.Variable.t list ->
returns:Flambda2_identifiers.Variable.t list ->
exn:Flambda2_identifiers.Variable.t ->
Flambda2_identifiers.Code_id_or_name.tval make_known_arity_apply_widget :
Flambda2_reaper.Traverse_acc.t ->
denv:Flambda2_reaper.Traverse_acc.Env.t ->
params:Flambda2_term_basics.Simple.t list ->
returns:Flambda2_identifiers.Variable.t list ->
exn:Flambda2_identifiers.Variable.t ->
Flambda2_identifiers.Code_id_or_name.tval create_unknown_arity_call_witnesses :
Flambda2_reaper.Traverse_acc.t ->
Flambda2_identifiers.Code_id.t ->
is_tupled:bool ->
arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
params:Flambda2_identifiers.Variable.t list ->
returns:Flambda2_identifiers.Variable.t list ->
exn:Flambda2_identifiers.Variable.t ->
Flambda2_identifiers.Code_id_or_name.t listval make_unknown_arity_apply_widget :
Flambda2_reaper.Traverse_acc.t ->
denv:Flambda2_reaper.Traverse_acc.Env.t ->
arity:[ `Complex ] Flambda2_kinds.Flambda_arity.t ->
params:Flambda2_term_basics.Simple.t list ->
returns:Flambda2_identifiers.Variable.t list ->
exn:Flambda2_identifiers.Variable.t ->
Flambda2_identifiers.Code_id_or_name.tval add_set_of_closures_dep :
Flambda2_identifiers.Name.t ->
Flambda2_identifiers.Code_id.t ->
only_full_applications:bool ->
Flambda2_reaper.Traverse_acc.t ->
unitval deps :
Flambda2_reaper.Traverse_acc.t ->
all_constants:Flambda2_identifiers.Name.t ->
Graph.graph