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.