• Austin Clements's avatar
    cmd/compile: output stack map index everywhere it changes · ed7a0682
    Austin Clements authored
    Currently, the code generator only considers outputting stack map
    indexes at CALL instructions. Raise this into the code generator loop
    itself so that changes in the stack map index at any instruction emit
    a PCDATA Prog before the actual instruction.
    
    We'll optimize this in later CLs:
    
    name        old time/op       new time/op       delta
    Template          190ms ± 2%        191ms ± 2%    ~     (p=0.529 n=10+10)
    Unicode          96.4ms ± 1%       98.5ms ± 3%  +2.18%  (p=0.001 n=9+10)
    GoTypes           669ms ± 1%        673ms ± 1%  +0.62%  (p=0.004 n=9+9)
    Compiler          3.18s ± 1%        3.22s ± 1%  +1.06%  (p=0.000 n=10+9)
    SSA               7.59s ± 1%        7.64s ± 1%  +0.66%  (p=0.023 n=10+10)
    Flate             128ms ± 1%        130ms ± 2%  +1.07%  (p=0.043 n=10+10)
    GoParser          157ms ± 2%        158ms ± 3%    ~     (p=0.123 n=10+10)
    Reflect           442ms ± 1%        445ms ± 1%  +0.73%  (p=0.017 n=10+9)
    Tar               179ms ± 1%        180ms ± 1%  +0.58%  (p=0.019 n=9+9)
    XML               229ms ± 1%        232ms ± 2%  +1.27%  (p=0.009 n=10+10)
    [Geo mean]        401ms             405ms       +0.94%
    
    name        old exe-bytes     new exe-bytes     delta
    HelloSize         1.46M ± 0%        1.47M ± 0%  +0.84%  (p=0.000 n=10+10)
    [Geo mean]        1.46M             1.47M       +0.84%
    
    For #24543.
    
    Change-Id: I4bfe45b767c9d9db47308a27763b303fa75bfa54
    Reviewed-on: https://go-review.googlesource.com/109350
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    ed7a0682
Name
Last commit
Last update
..
addr2line Loading commit data...
api Loading commit data...
asm Loading commit data...
buildid Loading commit data...
cgo Loading commit data...
compile Loading commit data...
cover Loading commit data...
dist Loading commit data...
doc Loading commit data...
fix Loading commit data...
go Loading commit data...
gofmt Loading commit data...
internal Loading commit data...
link Loading commit data...
nm Loading commit data...
objdump Loading commit data...
pack Loading commit data...
pprof Loading commit data...
test2json Loading commit data...
trace Loading commit data...
vendor Loading commit data...
vet Loading commit data...