mirror of
https://github.com/golang/go
synced 2024-11-19 09:04:41 -07:00
cmd/internal/obj: cache dwarfSym
Follow-up to review feedback from mdempsky on CL 40507. Reduces mutex contention by about 1%. Change-Id: I540ea6772925f4a59e58f55a3458eff15880c328 Reviewed-on: https://go-review.googlesource.com/40575 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
adc80c0665
commit
7b5f94e76c
@ -324,11 +324,12 @@ type LSym struct {
|
||||
|
||||
// A FuncInfo contains extra fields for STEXT symbols.
|
||||
type FuncInfo struct {
|
||||
Args int32
|
||||
Locals int32
|
||||
Text *Prog
|
||||
Autom []*Auto
|
||||
Pcln Pcln
|
||||
Args int32
|
||||
Locals int32
|
||||
Text *Prog
|
||||
Autom []*Auto
|
||||
Pcln Pcln
|
||||
dwarfSym *LSym
|
||||
}
|
||||
|
||||
// Attribute is a set of symbol attributes.
|
||||
|
@ -560,7 +560,10 @@ func (ctxt *Link) dwarfSym(s *LSym) *LSym {
|
||||
if s.Type != STEXT {
|
||||
ctxt.Diag("dwarfSym of non-TEXT %v", s)
|
||||
}
|
||||
return ctxt.Lookup(dwarf.InfoPrefix+s.Name, int(s.Version))
|
||||
if s.FuncInfo.dwarfSym == nil {
|
||||
s.FuncInfo.dwarfSym = ctxt.Lookup(dwarf.InfoPrefix+s.Name, int(s.Version))
|
||||
}
|
||||
return s.FuncInfo.dwarfSym
|
||||
}
|
||||
|
||||
// populateDWARF fills in the DWARF Debugging Information Entry for TEXT symbol s.
|
||||
|
Loading…
Reference in New Issue
Block a user