Skip to content
Snippets Groups Projects
  • Cherry Zhang's avatar
    cdfff4d2
    [dev.link] cmd/link: use more compact representation for external relocations · cdfff4d2
    Cherry Zhang authored
    Currently, for external relocations, the ExtReloc structure
    contains all the fields of the relocation. In fact, many of the
    fields are the same with the original relocation. So, instead, we
    can just use an index to reference the original relocation and
    not expand the fields.
    
    There is one place where we modify relocation type: changing
    R_DWARFSECTREF to R_ADDR. Get away with it by changing
    downstreams.
    
    It also makes it easier to retrieve the reloc variant.
    
    This reduces some allocation. Linking cmd/compile with external
    linking,
    
    name           old alloc/op   new alloc/op   delta
    Reloc_GC         34.1MB ± 0%    22.7MB ± 0%  -33.30%  (p=0.000 n=5+4)
    
    Change-Id: Id08a89ed2aee705296886d3b95014b806a0d55cf
    Reviewed-on: https://go-review.googlesource.com/c/go/+/231217
    
    
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarThan McIntosh <thanm@google.com>
    Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
    cdfff4d2
    History
    [dev.link] cmd/link: use more compact representation for external relocations
    Cherry Zhang authored
    Currently, for external relocations, the ExtReloc structure
    contains all the fields of the relocation. In fact, many of the
    fields are the same with the original relocation. So, instead, we
    can just use an index to reference the original relocation and
    not expand the fields.
    
    There is one place where we modify relocation type: changing
    R_DWARFSECTREF to R_ADDR. Get away with it by changing
    downstreams.
    
    It also makes it easier to retrieve the reloc variant.
    
    This reduces some allocation. Linking cmd/compile with external
    linking,
    
    name           old alloc/op   new alloc/op   delta
    Reloc_GC         34.1MB ± 0%    22.7MB ± 0%  -33.30%  (p=0.000 n=5+4)
    
    Change-Id: Id08a89ed2aee705296886d3b95014b806a0d55cf
    Reviewed-on: https://go-review.googlesource.com/c/go/+/231217
    
    
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarThan McIntosh <thanm@google.com>
    Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.