Module Backend.CallGraph
module type NodeSig = sig ... endval reset : t -> unitempty the graph and shrink it to its initial size
val create : int -> tcreate nmakes an empty graph with initial capacitynwhich grows as required
val n_procs : t -> intnumber of procedures in graph
val mem : t -> int -> boolis an int
idthe index of a node in the graph?
val mem_procname : t -> IR.Procname.t -> boolis there a node for
procnamein the graph?
val flag : t -> IR.Procname.t -> unitval flag_reachable : t -> IR.Procname.t -> unitflag all nodes reachable from the node of the given procname, if it exists
val iter_unflagged_leaves : f:(Node.t -> unit) -> t -> unititerate over all leaves that have their flag set to false
val remove : t -> IR.Procname.t -> unitval to_dotty : t -> string -> unitoutput call graph in dotty format with the given filename in results dir
val add_edge : t -> pname:IR.Procname.t -> successor_pname:IR.Procname.t -> unitadd an edge from
pnametosuccessor_pnamein the graph, creating a node forpnameif there isn't one already
val create_node : t -> IR.Procname.t -> IR.Procname.t list -> unitcreate a new node with edges from
pnametosuccessor_pnamesin the graph