From 8a074fa275261a3dd1690f81e4fa6c45bdbb0471 Mon Sep 17 00:00:00 2001 From: Cherry Zhang Date: Fri, 6 Mar 2020 01:15:07 -0500 Subject: [dev.link] cmd/internal/goobj2, cmd/link: experiment new aux symbol accessors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Following the previous CLs, do the same for aux symbols. This has some small speedup: (linking cmd/compile) Dostkcheck 41.0ms ± 1% 38.6ms ± 1% -6.00% (p=0.008 n=5+5) Change-Id: Id62b2fc9e4ef1be92e60e4c03faec0a953eee94e Reviewed-on: https://go-review.googlesource.com/c/go/+/222303 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Than McIntosh --- src/cmd/link/internal/ld/deadcode2.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/cmd/link/internal/ld/deadcode2.go') diff --git a/src/cmd/link/internal/ld/deadcode2.go b/src/cmd/link/internal/ld/deadcode2.go index cbf7e22dbd..5088a6e1be 100644 --- a/src/cmd/link/internal/ld/deadcode2.go +++ b/src/cmd/link/internal/ld/deadcode2.go @@ -118,7 +118,6 @@ func (d *deadcodePass2) init() { } func (d *deadcodePass2) flood() { - auxSyms := []loader.Sym{} for !d.wq.empty() { symIdx := d.wq.pop() @@ -162,9 +161,9 @@ func (d *deadcodePass2) flood() { } d.mark(r.Sym(), symIdx) } - auxSyms = d.ldr.ReadAuxSyms(symIdx, auxSyms) - for i := 0; i < len(auxSyms); i++ { - d.mark(auxSyms[i], symIdx) + naux := d.ldr.NAux(symIdx) + for i := 0; i < naux; i++ { + d.mark(d.ldr.Aux2(symIdx, i).Sym(), symIdx) } // Some host object symbols have an outer object, which acts like a // "carrier" symbol, or it holds all the symbols for a particular -- cgit v1.3-5-g9baa