• Than McIntosh's avatar
    [dev.link] cmd/link/internal/loader: add PkgNone resolver cache · 2e2ef666
    Than McIntosh authored
    Add a cache for the loader.Loader.resolve() method to use when
    looking mapping local PkgNone symbols to global symbol indices.
    This helps avoid repeated map lookups during deadcode and other
    early phases of the linker when we haven't fully read in all
    of object file symbols. Benchstat numbers:
    
    name                      old time/op       new time/op       delta
    LinkCompiler                    1.97s ±13%        1.67s ± 8%  -15.34%  (p=0.000 n=20+20)
    LinkWithoutDebugCompiler        1.48s ±12%        1.21s ±11%  -18.14%  (p=0.000 n=20+20)
    
    name                      old user-time/op  new user-time/op  delta
    LinkCompiler                    2.19s ± 9%        2.04s ±17%   -6.98%  (p=0.002 n=19+20)
    LinkWithoutDebugCompiler        1.29s ±13%        1.20s ±13%   -7.70%  (p=0.000 n=20+20)
    
    Change-Id: I4b0b05c8208ee44ee9405b24774b84443e486831
    Reviewed-on: https://go-review.googlesource.com/c/go/+/203197
    
    
    Run-TryBot: Than McIntosh <thanm@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    2e2ef666
loader.go 26.4 KB