]> Cypherpunks repositories - gostls13.git/commit
[dev.link] cmd/link: rework line table generation to reduce heap mem
authorThan McIntosh <thanm@google.com>
Wed, 10 Jun 2020 17:14:15 +0000 (13:14 -0400)
committerThan McIntosh <thanm@google.com>
Wed, 17 Jun 2020 12:01:09 +0000 (12:01 +0000)
commitd08bab99b74b6da2f10e16fdcd4fb4b410ae07cb
treed6f2136fe801e5afe69783aa24fb2dcefe7f59aa
parentbc1dbe58cf35454b4f8f981707013fd868c6ce6f
[dev.link] cmd/link: rework line table generation to reduce heap mem

Rework the way symbols are handled in DWARF line table generation to
eliminate copying the data payload for all SWDWARFLINES syms (emitted
by the compiler) into the payload of the ".debug_line" section symbol
(generated by the linker). Instead, chain together the SWDWARFLINES
symbols into a list, then append that list to the section sym list in
dwarfp (this moves us from a single monolithic .debug_line to a
.debug_line section sym followed by a list symbols (one per function
and an epilog symbol per compilation unit). To enable this work, move
the emission of the DW_LNE_set_address op (at the start of each
function) from the linker to the compiler.

Change-Id: Iec61b44a451f7a386c82a89bf944de482b018789
Reviewed-on: https://go-review.googlesource.com/c/go/+/237427
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
src/cmd/internal/obj/dwarf.go
src/cmd/link/internal/ld/dwarf.go