cmd/compile: split n.Noescape() into separate uses

n.Noescape() was overloaded for two uses: (1) to indicate a function
was annotated with //go:noescape, and (2) to indicate that certain
temporary allocations don't outlive the current statement.

The first use case is redundant with n.Func.Pragma&Noescape!=0, which
is the convention we use for checking other function-level pragmas.

The second use case is better served by renaming "Noescape" to
"Transient".

Passes toolstash-check.

Change-Id: I0f09d2d5767513894b7bf49da9cdabd04aa4a05e
Reviewed-on: https://go-review.googlesource.com/c/go/+/199822
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
Matthew Dempsky 2019-10-08 14:21:17 -07:00
parent 5650a53dac
commit 2197321db1
5 changed files with 9 additions and 10 deletions

View file

@ -1293,7 +1293,7 @@ func (e *Escape) finish(fns []*Node) {
}
n.Esc = EscNone
if loc.transient {
n.SetNoescape(true)
n.SetTransient(true)
}
}
}