1
0
mirror of https://github.com/golang/go synced 2024-11-17 19:54:45 -07:00

cmd/compile: add global autogeneratedPos

We use an "autogenerated" position in several places.
Rather than recreate it each time, make one early on and reuse it.
This removes the creation of new positions during the backend,
which was not concurrency-safe.

Updates #15756

Change-Id: Ic116b2e60f0e99de1a2ea87fe763831b50b645f8
Reviewed-on: https://go-review.googlesource.com/38915
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Josh Bleecher Snyder 2017-03-28 13:52:14 -07:00
parent b28f2f7399
commit 3431d9113c
5 changed files with 8 additions and 6 deletions

View File

@ -186,7 +186,7 @@ func genhash(sym *Sym, t *Type) {
fmt.Printf("genhash %v %v\n", sym, t)
}
lineno = makePos(nil, 1, 0) // less confusing than end of input
lineno = autogeneratedPos // less confusing than end of input
dclcontext = PEXTERN
markdcl()
@ -364,7 +364,7 @@ func geneq(sym *Sym, t *Type) {
fmt.Printf("geneq %v %v\n", sym, t)
}
lineno = makePos(nil, 1, 0) // less confusing than end of input
lineno = autogeneratedPos // less confusing than end of input
dclcontext = PEXTERN
markdcl()

View File

@ -286,6 +286,8 @@ var nodfp *Node
var disable_checknil int
var autogeneratedPos src.XPos
// interface to back end
type Arch struct {

View File

@ -4,8 +4,6 @@
package gc
import "cmd/internal/src"
// a function named init is a special case.
// it is called by the initialization before
// main is run. to make it unique within a
@ -77,7 +75,7 @@ func anyinit(n []*Node) bool {
}
func fninit(n []*Node) {
lineno = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
lineno = autogeneratedPos
nf := initfix(n)
if !anyinit(nf) {
return

View File

@ -351,6 +351,8 @@ func Main(archInit func(*Arch)) {
dclcontext = PEXTERN
nerrors = 0
autogeneratedPos = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
timings.Start("fe", "loadsys")
loadsys()

View File

@ -1717,7 +1717,7 @@ func genwrapper(rcvr *Type, method *Field, newnam *Sym, iface int) {
fmt.Printf("genwrapper rcvrtype=%v method=%v newnam=%v\n", rcvr, method, newnam)
}
lineno = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
lineno = autogeneratedPos
dclcontext = PEXTERN
markdcl()