• Matthew Dempsky's avatar
    cmd/compile: stop adding implicit OKEY nodes · bba1ac4f
    Matthew Dempsky authored
    Keys are uncommon in array and slice literals, and normalizing
    OARRAYLIT and OSLICELIT nodes to always use OKEY ends up not reducing
    complexity much. Instead, only create OKEY nodes to represent explicit
    keys, and recalculate implicit keys when/where necessary.
    
    Fixes #15350.
    
    name       old time/op     new time/op     delta
    Template       299ms ± 9%      299ms ±12%    ~           (p=0.694 n=28+30)
    Unicode        165ms ± 7%      162ms ± 9%    ~           (p=0.084 n=27+27)
    GoTypes        950ms ± 9%      963ms ± 5%    ~           (p=0.301 n=30+29)
    Compiler       4.23s ± 7%      4.17s ± 7%    ~           (p=0.057 n=29+27)
    
    name       old user-ns/op  new user-ns/op  delta
    Template        389M ±15%       400M ±12%    ~           (p=0.202 n=30+29)
    Unicode         246M ±21%       232M ±22%  -5.76%        (p=0.006 n=28+29)
    GoTypes        1.34G ± 8%      1.34G ± 7%    ~           (p=0.775 n=28+30)
    Compiler       5.91G ± 6%      5.87G ± 7%    ~           (p=0.298 n=28+29)
    
    name       old alloc/op    new alloc/op    delta
    Template      41.2MB ± 0%     41.2MB ± 0%    ~           (p=0.085 n=30+30)
    Unicode       34.0MB ± 0%     31.5MB ± 0%  -7.28%        (p=0.000 n=30+29)
    GoTypes        121MB ± 0%      121MB ± 0%    ~           (p=0.657 n=30+30)
    Compiler       511MB ± 0%      511MB ± 0%  -0.01%        (p=0.001 n=29+29)
    
    name       old allocs/op   new allocs/op   delta
    Template        390k ± 0%       390k ± 0%    ~           (p=0.225 n=30+29)
    Unicode         318k ± 0%       293k ± 0%  -8.03%        (p=0.000 n=30+29)
    GoTypes        1.16M ± 0%      1.16M ± 0%    ~           (p=0.745 n=30+30)
    Compiler       4.35M ± 0%      4.35M ± 0%    ~           (p=0.105 n=30+30)
    
    Change-Id: I6310739a0bfdb54f1ab8a460b2c03615ad1ff5bc
    Reviewed-on: https://go-review.googlesource.com/32221Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bba1ac4f
Name
Last commit
Last update
..
addr2line Loading commit data...
api Loading commit data...
asm 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...
trace Loading commit data...
vendor Loading commit data...
vet Loading commit data...