aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorJohn Dethridge <jcd@golang.org>2016-10-07 15:06:09 +1100
committerJohn Dethridge <jcd@golang.org>2016-10-11 01:42:35 +0000
commit8f65379f947f77f5caadf283f219b2cc6e9bdb84 (patch)
tree90636032005133267cb9da4550bfebd247bbc71e /src/runtime
parent3a9072829e7d315ecda030281b622632c1bbe1b6 (diff)
downloadgo-8f65379f947f77f5caadf283f219b2cc6e9bdb84.tar.xz
cmd/link: more efficient encoding of DWARF line number information
The (pc, line) deltas in the line number information are currently encoded either with a special opcode, or with a triplet of DW_LNS_advance_pc, DW_LNS_advance_line, and DW_LNS_copy instructions. Instead of DW_LNS_copy, this change always uses a special opcode, which can make DW_LNS_advance_pc or DW_LNS_advance_line unnecessary, or make their operands take fewer bytes. It chooses the special opcode so that the encoding of the remaining deltas is as small as possible. Use DW_LNS_const_add_pc or DW_LNS_fixed_advance_pc instead of DW_LNS_advance_pc for deltas where they save a byte. Update LINE_BASE and LINE_RANGE constants to optimal values for this strategy. This reduces line number information by about 35% and total size by about 2% for a typical binary. Change-Id: Ia61d6bf19c95c1d34ba63c67ed32b376beda225f Reviewed-on: https://go-review.googlesource.com/30577 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime')
0 files changed, 0 insertions, 0 deletions