mirror of
https://github.com/golang/go
synced 2024-11-06 22:26:11 -07:00
[dev.link] cmd/link/internal/loader: reduce ABI alias postprocessing overhead
In loadObjFull when populating the sym.Reloc vector for live symbols, avoid using the loader.SymType() method to determine if a relocation targets an ABI alias; since invoking loader.SymType requires a global-to-local index translation and a read from the object file. Instead just look at the target symbol itself, which has already been created at this point. Hyperkube performance numbers for this change: name old time/op new time/op delta RelinkHyperkube 29.9s ± 2% 29.2s ± 3% -2.42% (p=0.000 n=20+20) RelinkWithoutDebugHyperkube 22.0s ± 3% 21.4s ± 3% -2.58% (p=0.000 n=20+20) Change-Id: Ib7696d8760dd0485240246d6d640668fbf451d71 Reviewed-on: https://go-review.googlesource.com/c/go/+/205257 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jeremy Faller <jeremy@golang.org>
This commit is contained in:
parent
b4245ea544
commit
17722c21e7
@ -1058,7 +1058,7 @@ func loadObjFull(l *Loader, r *oReader) {
|
||||
rs = 0
|
||||
sz = 0
|
||||
}
|
||||
if rs != 0 && l.SymType(rs) == sym.SABIALIAS {
|
||||
if rs != 0 && l.Syms[rs] != nil && l.Syms[rs].Type == sym.SABIALIAS {
|
||||
rsrelocs := l.Relocs(rs)
|
||||
rs = rsrelocs.At(0).Sym
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user