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>
// 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.
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.