• Josh Bleecher Snyder's avatar
    cmd/compile: don’t generate pointless gotos during inlining · d1faf387
    Josh Bleecher Snyder authored
    Their only purpose in life was to suppress an error.
    Suppress that error explicitly instead by reusing
    an existing, aptly named Node field.
    
    This generates fewer blocks during ssa construction.
    
    name       old alloc/op     new alloc/op     delta
    Template       47.5MB ± 0%      47.2MB ± 0%  -0.72%        (p=0.000 n=15+15)
    Unicode        36.8MB ± 0%      36.8MB ± 0%    ~           (p=0.775 n=15+15)
    GoTypes         143MB ± 0%       142MB ± 0%  -1.03%        (p=0.000 n=15+14)
    Compiler        686MB ± 0%       674MB ± 0%  -1.75%        (p=0.000 n=15+15)
    
    name       old allocs/op    new allocs/op    delta
    Template         446k ± 0%        445k ± 0%  -0.20%        (p=0.000 n=15+15)
    Unicode          355k ± 0%        355k ± 0%    ~           (p=0.235 n=13+15)
    GoTypes         1.36M ± 0%       1.36M ± 0%  -0.41%        (p=0.000 n=13+15)
    Compiler        5.77M ± 0%       5.70M ± 0%  -1.16%        (p=0.000 n=15+15)
    
    
    Change-Id: I5f14afb833c9d355688d9a229eb820e95c7657bf
    Reviewed-on: https://go-review.googlesource.com/27461
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    d1faf387
ssa.go 140 KB