Commit 7b5f94e7 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

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: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent adc80c06
......@@ -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.
......
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