mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: free compressed symbols after dwarfcompress
Once the symbol is compressed, we will not need the uncompressed symbol content. Free its memory. Linking cmd/compile, name old live-B new live-B delta Dwarfcompress_GC 42.7M ± 0% 37.9M ± 0% -11.31% (p=0.008 n=5+5) Change-Id: Ib6cc73832946d158ff4f5b4f31be9c35ba7cf103 Reviewed-on: https://go-review.googlesource.com/c/go/+/230859 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>
This commit is contained in:
parent
65c1805e77
commit
0bbc19760b
2 changed files with 9 additions and 2 deletions
|
|
@ -2054,7 +2054,6 @@ func (l *Loader) LoadFull(arch *sys.Arch, syms *sym.Symbols, needReloc bool) {
|
|||
// be copied in a later loop).
|
||||
toConvert := make([]Sym, 0, len(l.payloads))
|
||||
for _, i := range l.extReader.syms {
|
||||
sname := l.RawSymName(i)
|
||||
if !l.attrReachable.Has(i) {
|
||||
continue
|
||||
}
|
||||
|
|
@ -2065,7 +2064,7 @@ func (l *Loader) LoadFull(arch *sys.Arch, syms *sym.Symbols, needReloc bool) {
|
|||
// outer/sub processing below. Note that once we do this,
|
||||
// we'll need to get at the payload for a symbol with direct
|
||||
// reference to l.payloads[] as opposed to calling l.getPayload().
|
||||
s := l.allocSym(sname, 0)
|
||||
s := l.allocSym(pp.name, 0)
|
||||
l.installSym(i, s)
|
||||
toConvert = append(toConvert, i)
|
||||
}
|
||||
|
|
@ -2655,6 +2654,13 @@ func (l *Loader) CreateStaticSym(name string) Sym {
|
|||
return l.newExtSym(name, l.anonVersion)
|
||||
}
|
||||
|
||||
func (l *Loader) FreeSym(i Sym) {
|
||||
if l.IsExternal(i) {
|
||||
pp := l.getPayload(i)
|
||||
*pp = extSymPayload{}
|
||||
}
|
||||
}
|
||||
|
||||
func loadObjFull(l *Loader, r *oReader, needReloc bool) {
|
||||
for i, n := 0, r.NSym()+r.NNonpkgdef(); i < n; i++ {
|
||||
// A symbol may be a dup or overwritten. In this case, its
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue