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:
parent
b28f2f7399
commit
3431d9113c
@ -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()
|
||||
|
||||
|
@ -286,6 +286,8 @@ var nodfp *Node
|
||||
|
||||
var disable_checknil int
|
||||
|
||||
var autogeneratedPos src.XPos
|
||||
|
||||
// interface to back end
|
||||
|
||||
type Arch struct {
|
||||
|
@ -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
|
||||
|
@ -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()
|
||||
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user