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

type batch

type closure

type escape

func Funcs(all []*ir.Func) {}

// Batch performs escape analysis on a minimal batch of
// functions.
func Batch(fns []*ir.Func, recursive bool) {}

func (b *batch) with(fn *ir.Func) *escape {}

func (b *batch) initFunc(fn *ir.Func) {}

func (b *batch) walkFunc(fn *ir.Func) {}

func (b *batch) flowClosure(k hole, clo *ir.ClosureExpr) {}

func (b *batch) finish(fns []*ir.Func) {}

// inMutualBatch reports whether function fn is in the batch of
// mutually recursive functions being analyzed. When this is true,
// fn has not yet been analyzed, so its parameters and results
// should be incorporated directly into the flow graph instead of
// relying on its escape analysis tagging.
func (b *batch) inMutualBatch(fn *ir.Name) bool {}

const escFuncUnknown

const escFuncPlanned

const escFuncStarted

const escFuncTagged

type labelState

const looping

const nonlooping

func (b *batch) paramTag(fn *ir.Func, narg int, f *types.Field) string {}

func (b *batch) reportLeaks(pos src.XPos, name string, esc leaks, sig *types.Type) {}