Documentation ¶
Overview ¶
Package flow provides control flow analysis functions.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DominatorTree ¶
type DominatorTree struct {
// contains filtered or unexported fields
}
DominatorTree is a flow graph dominator tree.
func Dominators ¶
func Dominators(root graph.Node, g graph.Directed) DominatorTree
Dominators returns a dominator tree for all nodes in the flow graph g starting from the given root node.
func DominatorsSLT ¶
func DominatorsSLT(root graph.Node, g graph.Directed) DominatorTree
DominatorsSLT returns a dominator tree for all nodes in the flow graph g starting from the given root node using the sophisticated version of the Lengauer-Tarjan algorithm. The SLT algorithm may outperform the simple LT algorithm for very large dense graphs.
func (DominatorTree) DominatedBy ¶
func (d DominatorTree) DominatedBy(id int64) []graph.Node
DominatedBy returns a slice of all nodes immediately dominated by the node with the given ID. Elements of the slice are retained by the DominatorTree.
func (DominatorTree) DominatorOf ¶
func (d DominatorTree) DominatorOf(id int64) graph.Node
DominatorOf returns the immediate dominator of the node with the given ID.
func (DominatorTree) Root ¶
func (d DominatorTree) Root() graph.Node
Root returns the root of the tree.