Skip to content
Snippets Groups Projects
  • Than McIntosh's avatar
    8634642f
    [dev.link] cmd/link: demote dwarf {range,loc} sub-symbols to aux · 8634642f
    Than McIntosh authored
    When the compiler emits DWARF for a function F, in addition to the
    text symbol for F, it emits a set of sibling or child symbols that
    carry the various DWARF bits for F (for example, go.info.F,
    go.ranges.F, go.loc.F, and so on).
    
    Prior to the linker modernization work, name lookup was the way you
    made your way from a function symbol to one of its child DWARF
    symbols. We now have a new mechanism (aux symbols), so there is really
    no need for the DWARF sub-symbols to be named or to be dupok.
    
    This patch converts DWARF "range" and "loc" sub-symbols to be pure aux
    syms: unnamed, and connected to their parent text symbol only via aux
    data. This should presumably have performance benefits in that we add
    fewer symbols to the linker lookup tables.
    
    Other related DWARF sub-symbols (ex: go.line.*) will be handled in a
    subsequent patch.
    
    Change-Id: Iae3ec2d42452962d4afc1df4a1bd89ccdeadc6e4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/222673
    
    
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    8634642f
    History
    [dev.link] cmd/link: demote dwarf {range,loc} sub-symbols to aux
    Than McIntosh authored
    When the compiler emits DWARF for a function F, in addition to the
    text symbol for F, it emits a set of sibling or child symbols that
    carry the various DWARF bits for F (for example, go.info.F,
    go.ranges.F, go.loc.F, and so on).
    
    Prior to the linker modernization work, name lookup was the way you
    made your way from a function symbol to one of its child DWARF
    symbols. We now have a new mechanism (aux symbols), so there is really
    no need for the DWARF sub-symbols to be named or to be dupok.
    
    This patch converts DWARF "range" and "loc" sub-symbols to be pure aux
    syms: unnamed, and connected to their parent text symbol only via aux
    data. This should presumably have performance benefits in that we add
    fewer symbols to the linker lookup tables.
    
    Other related DWARF sub-symbols (ex: go.line.*) will be handled in a
    subsequent patch.
    
    Change-Id: Iae3ec2d42452962d4afc1df4a1bd89ccdeadc6e4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/222673
    
    
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.