]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/internal/goobj2, cmd/link: change data type for local object/index...
authorCherry Zhang <cherryyz@google.com>
Wed, 13 May 2020 00:08:27 +0000 (20:08 -0400)
committerCherry Zhang <cherryyz@google.com>
Thu, 14 May 2020 00:30:02 +0000 (00:30 +0000)
commitce36e7f79ee4abde0e3c2be4bd3cb069469c3bd5
treeca84ed24543ddcf0eb91f5aba40e3f8173530c3a
parentd72ea427c6853742e8e49cb9dbcd64c36bb6270d
[dev.link] cmd/internal/goobj2, cmd/link: change data type for local object/index representation

Use uint32 consistently for local index (this is what the object
file uses).

Use a index, instead of a pointer, to refer to the object file.
This reduces memory usage and GC work.

This reduces some allocations. Linking cmd/compile,

name           old alloc/op   new alloc/op   delta
Loadlib_GC       19.9MB ± 0%    16.9MB ± 0%  -15.33%  (p=0.008 n=5+5)

name           old live-B     new live-B     delta
Loadlib_GC        12.6M ± 0%     11.3M ± 0%   -9.97%  (p=0.008 n=5+5)

Change-Id: I20ce60bbb6d31abd2e9e932bdf959e2ae840ab98
Reviewed-on: https://go-review.googlesource.com/c/go/+/233779
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/internal/goobj/readnew.go
src/cmd/internal/goobj2/objfile.go
src/cmd/link/internal/loader/loader.go
src/cmd/link/internal/loader/loader_test.go