1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
(*
* Compute Tarjan's dominator derived graph from a dominator tree.
* This is used partly to computing path expressions. Alternatively,
* it can also be used for testing for reducibility. In particular,
* cycles involving more than one node represent irreducible loops
* in the flow graph.
*
* -- Allen
*)
signature DERIVED_GRAPH =
sig
structure Dom : DOMINATOR_TREE
type ('n,'e) derived_graph = ('n,'e Graph.edge,unit) Graph.graph
val derived_graph : (* O(n+e) *)
('n,'e,'g) Dom.dominator_tree -> ('n,'e) derived_graph
end
|