• Josh Bleecher Snyder's avatar
    cmd/compile: remove some allocs from CSE · f791b288
    Josh Bleecher Snyder authored
    Pick up a few pennies:
    
    * CSE gets run twice for each function,
    but the set of Aux values doesn't change.
    Avoid populating it twice.
    
    * Don't bother populating auxmap for values
    that can't be CSE'd anyway.
    
    name       old alloc/op     new alloc/op     delta
    Template       41.0MB ± 0%      40.7MB ± 0%  -0.61%  (p=0.008 n=5+5)
    Unicode        32.3MB ± 0%      32.3MB ± 0%  -0.22%  (p=0.008 n=5+5)
    GoTypes         122MB ± 0%       121MB ± 0%  -0.55%  (p=0.008 n=5+5)
    Compiler        482MB ± 0%       479MB ± 0%  -0.58%  (p=0.008 n=5+5)
    SSA             865MB ± 0%       862MB ± 0%  -0.35%  (p=0.008 n=5+5)
    Flate          26.5MB ± 0%      26.5MB ± 0%    ~     (p=0.056 n=5+5)
    GoParser       32.6MB ± 0%      32.4MB ± 0%  -0.58%  (p=0.008 n=5+5)
    Reflect        84.2MB ± 0%      83.8MB ± 0%  -0.57%  (p=0.008 n=5+5)
    Tar            27.7MB ± 0%      27.6MB ± 0%  -0.37%  (p=0.008 n=5+5)
    XML            44.7MB ± 0%      44.5MB ± 0%  -0.53%  (p=0.008 n=5+5)
    
    name       old allocs/op    new allocs/op    delta
    Template         373k ± 0%        373k ± 1%    ~     (p=1.000 n=5+5)
    Unicode          326k ± 0%        325k ± 0%    ~     (p=0.548 n=5+5)
    GoTypes         1.16M ± 0%       1.16M ± 0%    ~     (p=0.841 n=5+5)
    Compiler        4.16M ± 0%       4.15M ± 0%    ~     (p=0.222 n=5+5)
    SSA             7.57M ± 0%       7.56M ± 0%  -0.22%  (p=0.008 n=5+5)
    Flate            238k ± 1%        239k ± 1%    ~     (p=0.690 n=5+5)
    GoParser         304k ± 0%        304k ± 0%    ~     (p=1.000 n=5+5)
    Reflect         1.01M ± 0%       1.00M ± 0%  -0.31%  (p=0.016 n=4+5)
    Tar              245k ± 0%        245k ± 1%    ~     (p=0.548 n=5+5)
    XML              393k ± 0%        391k ± 1%    ~     (p=0.095 n=5+5)
    
    Change-Id: I78f1ffe129bd8fd590b7511717dd2bf9f5ecbd6d
    Reviewed-on: https://go-review.googlesource.com/36690
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDaniel Martí <mvdan@mvdan.cc>
    Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
    f791b288
Name
Last commit
Last update
..
gen Loading commit data...
TODO Loading commit data...
block.go Loading commit data...
check.go Loading commit data...
checkbce.go Loading commit data...
compile.go Loading commit data...
config.go Loading commit data...
copyelim.go Loading commit data...
copyelim_test.go Loading commit data...
critical.go Loading commit data...
cse.go Loading commit data...
cse_test.go Loading commit data...
deadcode.go Loading commit data...
deadcode_test.go Loading commit data...
deadstore.go Loading commit data...
deadstore_test.go Loading commit data...
decompose.go Loading commit data...
dom.go Loading commit data...
dom_test.go Loading commit data...
export_test.go Loading commit data...
flagalloc.go Loading commit data...
func.go Loading commit data...
func_test.go Loading commit data...
fuse.go Loading commit data...
fuse_test.go Loading commit data...
html.go Loading commit data...
id.go Loading commit data...
layout.go Loading commit data...
lca.go Loading commit data...
lca_test.go Loading commit data...
likelyadjust.go Loading commit data...
location.go Loading commit data...
loopbce.go Loading commit data...
loopreschedchecks.go Loading commit data...
lower.go Loading commit data...
magic.go Loading commit data...
nilcheck.go Loading commit data...
nilcheck_test.go Loading commit data...
op.go Loading commit data...
opGen.go Loading commit data...
opt.go Loading commit data...
passbm_test.go Loading commit data...
phielim.go Loading commit data...
phiopt.go Loading commit data...
print.go Loading commit data...
prove.go Loading commit data...
redblack32.go Loading commit data...
redblack32_test.go Loading commit data...
regalloc.go Loading commit data...
regalloc_test.go Loading commit data...
rewrite.go Loading commit data...
rewrite386.go Loading commit data...
rewriteAMD64.go Loading commit data...
rewriteARM.go Loading commit data...
rewriteARM64.go Loading commit data...
rewriteMIPS.go Loading commit data...
rewriteMIPS64.go Loading commit data...
rewritePPC64.go Loading commit data...
rewriteS390X.go Loading commit data...
rewrite_test.go Loading commit data...
rewritedec.go Loading commit data...
rewritedec64.go Loading commit data...
rewritegeneric.go Loading commit data...
schedule.go Loading commit data...
schedule_test.go Loading commit data...
shift_test.go Loading commit data...
shortcircuit.go Loading commit data...
shortcircuit_test.go Loading commit data...
sizeof_test.go Loading commit data...
sparsemap.go Loading commit data...
sparseset.go Loading commit data...
sparsetree.go Loading commit data...
sparsetreemap.go Loading commit data...
stackalloc.go Loading commit data...
stackframe.go Loading commit data...
tighten.go Loading commit data...
trim.go Loading commit data...
type.go Loading commit data...
type_test.go Loading commit data...
value.go Loading commit data...
writebarrier.go Loading commit data...
writebarrier_test.go Loading commit data...
zcse.go Loading commit data...