]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link/internal/ld: don't call fieldtrack if it's not enabled
authorisharipo <iskander.sharipov@intel.com>
Thu, 17 May 2018 16:45:49 +0000 (19:45 +0300)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 17 May 2018 17:12:27 +0000 (17:12 +0000)
If go toolchain is not built with GOEXPERIMENT=fieldtrack,
skip fieldtrack pass in the linker as it does full symtab traversal.

For linking "hello world" example from net/http:

name      old time/op  new time/op  delta
Linker-4   530ms ± 2%   525ms ± 2%  -1.03%  (p=0.028 n=17+19)

Fixes #20318
Updates #14624

Change-Id: I99336513db77d13f95f47d27339d76f01c42a5da
Reviewed-on: https://go-review.googlesource.com/113635
Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/link/internal/ld/main.go

index 8a812c924ae2084bcc6f153047c254ffa2f23550..bfa3f70a9eefa458d6c7e275c0720efe7fddb4fd 100644 (file)
@@ -202,7 +202,9 @@ func Main(arch *sys.Arch, theArch Arch) {
 
        ctxt.dostrdata()
        deadcode(ctxt)
-       fieldtrack(ctxt)
+       if objabi.Fieldtrack_enabled != 0 {
+               fieldtrack(ctxt)
+       }
        ctxt.callgraph()
 
        ctxt.doelf()