• David Chase's avatar
    cmd/compile: reduce debugger-worsening line number churn · 00263a89
    David Chase authored
    Reuse block head or preceding instruction's line number for
    register allocator's spill, fill, copy, rematerialization
    instructionsl; and also for phi, and for no-src-pos
    instructions.  Assembler creates same line number tables
    for copy-predecessor-line and for no-src-pos,
    but copy-predecessor produces better-looking assembly
    language output with -S and with GOSSAFUNC, and does not
    require changes to tests of existing assembly language.
    
    Split "copyInto" into two cases, one for register allocation,
    one for otherwise.  This caused the test score line change
    count to increase by one, which may reflect legitimately
    useful information preserved.  Without any special treatment
    for copyInto, the change count increases by 21 more, from
    51 to 72 (i.e., quite a lot).
    
    There is a test; using two naive "scores" for line number
    churn, the old numbering is 2x or 4x worse.
    
    Fixes #18902.
    
    Change-Id: I0a0a69659d30ee4e5d10116a0dd2b8c5df8457b1
    Reviewed-on: https://go-review.googlesource.com/36207
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    00263a89
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...