inline

package standard library
go1.21.6 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2024 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var InlineCall = func(call *ir.CallExpr, fn *ir.Func, inlIndex int) *ir.InlinedCallExpr {
	base.Fatalf("inline.InlineCall not overridden")
	panic("unreachable")
}

InlineCall allows the inliner implementation to be overridden. If it returns nil, the function will not be inlined.

View Source
var SSADumpInline = func(*ir.Func) {}

SSADumpInline gives the SSA back end a chance to dump the function when producing output for debugging the compiler itself.

Functions

func CalleeEffects added in go1.18

func CalleeEffects(init *ir.Nodes, callee ir.Node)

CalleeEffects appends any side effects from evaluating callee to init.

func CanInline

func CanInline(fn *ir.Func, profile *pgo.Profile)

CanInline determines whether fn is inlineable. If so, CanInline saves copies of fn.Body and fn.Dcl in fn.Inl. fn and fn.Body will already have been typechecked.

func InlineCalls

func InlineCalls(fn *ir.Func, profile *pgo.Profile)

InlineCalls/inlnode walks fn's statements and expressions and substitutes any calls made to inlineable functions. This is the external entry point.

func InlineDecls added in go1.20

func InlineDecls(p *pgo.Profile, decls []ir.Node, doInline bool)

InlineDecls applies inlining to the given batch of declarations.

func InlineImpossible added in go1.21.0

func InlineImpossible(fn *ir.Func) string

InlineImpossible returns a non-empty reason string if fn is impossible to inline regardless of cost or contents.

func InlinePackage

func InlinePackage(p *pgo.Profile)

InlinePackage finds functions that can be inlined and clones them before walk expands them.

Types

This section is empty.

Jump to

Keyboard shortcuts

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