Commit 245ef3a1 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

cmd/compile: look up more runtime symbols before SSA begins

This avoids concurrent runtime package lookups.

Updates #15756

Change-Id: I9e2cbd042aba44923f0d03e6ca5b4eb60fa9e7ea
Reviewed-on: https://go-review.googlesource.com/40853
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 9d4a8467
......@@ -265,5 +265,10 @@ var (
assertE2I,
assertE2I2,
assertI2I,
assertI2I2 *obj.LSym
assertI2I2,
goschedguarded,
writeBarrier,
writebarrierptr,
typedmemmove,
typedmemclr *obj.LSym
)
......@@ -85,6 +85,11 @@ func initssaconfig() {
assertE2I2 = Sysfunc("assertE2I2")
assertI2I = Sysfunc("assertI2I")
assertI2I2 = Sysfunc("assertI2I2")
goschedguarded = Sysfunc("goschedguarded")
writeBarrier = Sysfunc("writeBarrier")
writebarrierptr = Sysfunc("writebarrierptr")
typedmemmove = Sysfunc("typedmemmove")
typedmemclr = Sysfunc("typedmemclr")
}
// buildssa builds an SSA function.
......@@ -4942,7 +4947,20 @@ func (e *ssafn) UseWriteBarrier() bool {
}
func (e *ssafn) Syslook(name string) *obj.LSym {
return Linksym(syslook(name).Sym)
switch name {
case "goschedguarded":
return goschedguarded
case "writeBarrier":
return writeBarrier
case "writebarrierptr":
return writebarrierptr
case "typedmemmove":
return typedmemmove
case "typedmemclr":
return typedmemclr
}
Fatalf("unknown Syslook func %v", name)
return nil
}
func (n *Node) Typ() ssa.Type {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment