aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/ld/lib.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2020-04-30 01:32:48 -0400
committerCherry Zhang <cherryyz@google.com>2020-04-30 15:53:43 +0000
commit516c29a79f6aee3fe8c9109c36a4475efa748dcb (patch)
tree5c1f0a1ef44c713d0b3bbeb5607536413bb235cd /src/cmd/link/internal/ld/lib.go
parent5aa59c6a99606d914abb170ee3e15342af3727b8 (diff)
downloadgo-516c29a79f6aee3fe8c9109c36a4475efa748dcb.tar.gz
go-516c29a79f6aee3fe8c9109c36a4475efa748dcb.zip
[dev.link] cmd/link: pass reloc by value to Adddynrel2
Adddynrel2 is a function pointer. In dynrelocsym we pass &r to it, which will cause r to escape. Pass it by value instead. Linking cmd/compile, name old alloc/op new alloc/op delta Dodata_GC 15.8MB ± 0% 5.9MB ± 0% -62.55% (p=0.008 n=5+5) Change-Id: Ib86005d1026ebaca57777b27ead037e613585f44 Reviewed-on: https://go-review.googlesource.com/c/go/+/231045 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Jeremy Faller <jeremy@golang.org>
Diffstat (limited to 'src/cmd/link/internal/ld/lib.go')
-rw-r--r--src/cmd/link/internal/ld/lib.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 9a87cbef33..a328efd03b 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -233,7 +233,7 @@ type Arch struct {
Dragonflydynld string
Solarisdynld string
Adddynrel func(*Target, *loader.Loader, *ArchSyms, *sym.Symbol, *sym.Reloc) bool
- Adddynrel2 func(*Target, *loader.Loader, *ArchSyms, loader.Sym, *loader.Reloc2, int) bool
+ Adddynrel2 func(*Target, *loader.Loader, *ArchSyms, loader.Sym, loader.Reloc2, int) bool
Archinit func(*Link)
// Archreloc is an arch-specific hook that assists in relocation processing
// (invoked by 'relocsym'); it handles target-specific relocation tasks.