analysis

package
v0.0.0-...-563a209 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2016 License: LGPL-3.0 Imports: 6 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PrintValues

func PrintValues(mod *ssa.Module, out io.Writer)

Types

type CFG

type CFG struct {
	// contains filtered or unexported fields
}

func NewBlockCFG

func NewBlockCFG(fn *ssa.Function) *CFG

func (*CFG) Add

func (v *CFG) Add(block *ssa.Block, prev, next []*CFGNode)

func (CFG) NodeForBlock

func (v CFG) NodeForBlock(b *ssa.Block) *CFGNode

nil if unfound

func (CFG) Nodes

func (v CFG) Nodes() []*CFGNode

func (CFG) SaveImage

func (v CFG) SaveImage(filename string) error

Warning: will overwrite images. Always uses svg. Requires `dot` command from the graphviz package be available.

type CFGNode

type CFGNode struct {
	// contains filtered or unexported fields
}

func (*CFGNode) Block

func (v *CFGNode) Block() *ssa.Block

func (CFGNode) Next

func (v CFGNode) Next() []*CFGNode

func (CFGNode) Prev

func (v CFGNode) Prev() []*CFGNode

func (CFGNode) String

func (v CFGNode) String() string

type DominatorTree

type DominatorTree struct {
	// contains filtered or unexported fields
}

func NewBlockDominatorTree

func NewBlockDominatorTree(cfg *CFG) *DominatorTree

func (DominatorTree) BlockCFG

func (v DominatorTree) BlockCFG() *CFG

func (DominatorTree) NodeForBlock

func (v DominatorTree) NodeForBlock(b *ssa.Block) *DominatorTreeNode

return nil if unfound

func (DominatorTree) Nodes

func (v DominatorTree) Nodes() []*DominatorTreeNode

func (DominatorTree) SaveImage

func (v DominatorTree) SaveImage(filename string) error

Warning: will overwrite images. Always uses svg. Requires `dot` command from the graphviz package be available.

func (DominatorTree) String

func (v DominatorTree) String() string

type DominatorTreeNode

type DominatorTreeNode struct {
	// contains filtered or unexported fields
}

"strict" refers to strict dominators.

func (*DominatorTreeNode) DominatedBy

func (v *DominatorTreeNode) DominatedBy(node *DominatorTreeNode, strict bool) bool

func (*DominatorTreeNode) Dominators

func (v *DominatorTreeNode) Dominators(strict bool) []*DominatorTreeNode

func (DominatorTreeNode) ImmediateDominator

func (v DominatorTreeNode) ImmediateDominator() *DominatorTreeNode

Returns nil for entry node

func (DominatorTreeNode) String

func (v DominatorTreeNode) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL