package liveness

import "cmd/compile/internal/liveness"

Index

Functions

func IsUnsafe

func IsUnsafe(f *ssa.Func) bool

IsUnsafe indicates that all points in this function are unsafe-points.

func WriteFuncMap

func WriteFuncMap(fn *ir.Func, abiInfo *abi.ABIParamResultInfo)

WriteFuncMap writes the pointer bitmaps for bodyless function fn's inputs and outputs as the value of symbol <fn>.args_stackmap. If fn has outputs, two bitmaps are written, otherwise just one.

Types

type Map

type Map struct {
	Vals map[ssa.ID]objw.LivenessIndex
	// The set of live, pointer-containing variables at the DeferReturn
	// call (only set when open-coded defers are used).
	DeferReturn objw.LivenessIndex
}

Map maps from *ssa.Value to LivenessIndex.

func Compute

func Compute(curfn *ir.Func, f *ssa.Func, stkptrsize int64, pp *objw.Progs) (Map, map[*ir.Name]bool)

Entry pointer for Compute analysis. Solves for the Compute of pointer variables in the function and emits a runtime data structure read by the garbage collector. Returns a map from GC safe points to their corresponding stack map index, and a map that contains all input parameters that may be partially live.

func (Map) Get

func (m Map) Get(v *ssa.Value) objw.LivenessIndex

Source Files

bvset.go plive.go

Version
v1.17.12
Published
Jul 12, 2022
Platform
linux/amd64
Imports
18 packages
Last checked
25 seconds ago

Tools for package owners.