go/src/cmd/compile/internal/escape/graph.go

type location

type locAttr

const attrEscapes

const attrPersists

const attrMutates

const attrCalls

func (l *location) hasAttr(attr locAttr) bool {}

type edge

func (l *location) asHole() hole {}

// leak records that parameter l leaks to sink.
func (l *location) leakTo(sink *location, derefs int) {}

// leakTo records that parameter l leaks to sink.
func (b *batch) leakTo(l, sink *location, derefs int) {}

func (l *location) isName(c ir.Class) bool {}

type hole

type note

func (k hole) note(where ir.Node, why string) hole {}

func (k hole) shift(delta int) hole {}

func (k hole) deref(where ir.Node, why string) hole {}

func (k hole) addr(where ir.Node, why string) hole  {}

func (k hole) dotType(t *types.Type, where ir.Node, why string) hole {}

func (b *batch) flow(k hole, src *location) {}

func (b *batch) heapHole() hole    {}

func (b *batch) mutatorHole() hole {}

func (b *batch) calleeHole() hole  {}

func (b *batch) discardHole() hole {}

func (b *batch) oldLoc(n *ir.Name) *location {}

func (e *escape) newLoc(n ir.Node, persists bool) *location {}

// teeHole returns a new hole that flows into each hole of ks,
// similar to the Unix tee(1) command.
func (e *escape) teeHole(ks ...hole) hole {}

// later returns a new hole that flows into k, but some time later.
// Its main effect is to prevent immediate reuse of temporary
// variables introduced during Order.
func (e *escape) later(k hole) hole {}

// Fmt is called from node printing to print information about escape analysis results.
func Fmt(n ir.Node) string {}