Links

9.4 代码结构

Go 的逃逸分析发生在内联操作之后,入口代码如下:
// file: cmd/compile/internal/gc/main.go
func Main() {
// 忽略之前代码
// 逃逸分析
escape.Funcs(typecheck.Target.Decls)
// 忽略之后代码
}
逃逸分析在内联操作之后是因为内联减少了函数调用,同时可能会减少局部变量的逃逸情况。逃逸分析的所有代码都在文件 cmd/compile/internal/escape/escape.go 中。