• Daniel Martí's avatar
    cmd/compile: cache sparse maps across ssa passes · cd2cb6e3
    Daniel Martí authored
    This is done for sparse sets already, but it was missing for sparse
    maps. Only affects deadstore and regalloc, as they're the only ones that
    use sparse maps.
    
    name                 old time/op    new time/op    delta
    DSEPass-4               247µs ± 0%     216µs ± 0%  -12.75%  (p=0.008 n=5+5)
    DSEPassBlock-4         3.05ms ± 1%    2.87ms ± 1%   -6.02%  (p=0.002 n=6+6)
    CSEPass-4              2.30ms ± 0%    2.32ms ± 0%   +0.53%  (p=0.026 n=6+6)
    CSEPassBlock-4         23.8ms ± 0%    23.8ms ± 0%     ~     (p=0.931 n=6+5)
    DeadcodePass-4         51.7µs ± 1%    51.5µs ± 2%     ~     (p=0.429 n=5+6)
    DeadcodePassBlock-4     734µs ± 1%     742µs ± 3%     ~     (p=0.394 n=6+6)
    MultiPass-4             152µs ± 0%     149µs ± 2%     ~     (p=0.082 n=5+6)
    MultiPassBlock-4       2.67ms ± 1%    2.41ms ± 2%   -9.77%  (p=0.008 n=5+5)
    
    name                 old alloc/op   new alloc/op   delta
    DSEPass-4              41.2kB ± 0%     0.1kB ± 0%  -99.68%  (p=0.002 n=6+6)
    DSEPassBlock-4          560kB ± 0%       4kB ± 0%  -99.34%  (p=0.026 n=5+6)
    CSEPass-4               189kB ± 0%     189kB ± 0%     ~     (all equal)
    CSEPassBlock-4         3.10MB ± 0%    3.10MB ± 0%     ~     (p=0.444 n=5+5)
    DeadcodePass-4         10.5kB ± 0%    10.5kB ± 0%     ~     (all equal)
    DeadcodePassBlock-4     164kB ± 0%     164kB ± 0%     ~     (all equal)
    MultiPass-4             240kB ± 0%     199kB ± 0%  -17.06%  (p=0.002 n=6+6)
    MultiPassBlock-4       3.60MB ± 0%    2.99MB ± 0%  -17.06%  (p=0.002 n=6+6)
    
    name                 old allocs/op  new allocs/op  delta
    DSEPass-4                8.00 ± 0%      4.00 ± 0%  -50.00%  (p=0.002 n=6+6)
    DSEPassBlock-4            240 ± 0%       120 ± 0%  -50.00%  (p=0.002 n=6+6)
    CSEPass-4                9.00 ± 0%      9.00 ± 0%     ~     (all equal)
    CSEPassBlock-4          1.35k ± 0%     1.35k ± 0%     ~     (all equal)
    DeadcodePass-4           3.00 ± 0%      3.00 ± 0%     ~     (all equal)
    DeadcodePassBlock-4      9.00 ± 0%      9.00 ± 0%     ~     (all equal)
    MultiPass-4              11.0 ± 0%      10.0 ± 0%   -9.09%  (p=0.002 n=6+6)
    MultiPassBlock-4          165 ± 0%       150 ± 0%   -9.09%  (p=0.002 n=6+6)
    
    Change-Id: I43860687c88f33605eb1415f36473c5cfe8fde4a
    Reviewed-on: https://go-review.googlesource.com/98449
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    cd2cb6e3
sparsemap.go 1.98 KB