From 8bb391312c7c2c8cde57c083eeb4390f992e3d88 Mon Sep 17 00:00:00 2001 From: isharipo Date: Thu, 17 May 2018 19:45:49 +0300 Subject: [PATCH] cmd/link/internal/ld: don't call fieldtrack if it's not enabled MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/cmd/link/internal/ld/main.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go index 8a812c924a..bfa3f70a9e 100644 --- a/src/cmd/link/internal/ld/main.go +++ b/src/cmd/link/internal/ld/main.go @@ -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() -- 2.50.0