• Josh Bleecher Snyder's avatar
    cmd/compile: run deadcode before lowered CSE · 260e3d08
    Josh Bleecher Snyder authored
    CSE can make dead values live again.
    Running deadcode first avoids that;
    it also makes CSE more efficient.
    
    file    before    after     Δ       %       
    api     5970616   5966520   -4096   -0.069% 
    asm     4867088   4846608   -20480  -0.421% 
    compile 23988320  23935072  -53248  -0.222% 
    link    6084376   6080280   -4096   -0.067% 
    nm      4165736   4161640   -4096   -0.098% 
    objdump 4572216   4568120   -4096   -0.090% 
    pprof   14452996  14457092  +4096   +0.028% 
    trace   11467292  11471388  +4096   +0.036% 
    total   132181100 132099180 -81920  -0.062% 
    
    Compiler performance impact is negligible:
    
    name        old alloc/op      new alloc/op      delta
    Template         38.8MB ± 0%       38.8MB ± 0%  -0.04%  (p=0.008 n=5+5)
    Unicode          28.2MB ± 0%       28.2MB ± 0%    ~     (p=1.000 n=5+5)
    GoTypes           131MB ± 0%        131MB ± 0%  -0.14%  (p=0.008 n=5+5)
    Compiler          606MB ± 0%        606MB ± 0%  -0.05%  (p=0.008 n=5+5)
    SSA              2.14GB ± 0%       2.13GB ± 0%  -0.26%  (p=0.008 n=5+5)
    Flate            24.0MB ± 0%       24.0MB ± 0%  -0.18%  (p=0.008 n=5+5)
    GoParser         28.8MB ± 0%       28.8MB ± 0%  -0.15%  (p=0.008 n=5+5)
    Reflect          83.8MB ± 0%       83.7MB ± 0%  -0.11%  (p=0.008 n=5+5)
    Tar              36.4MB ± 0%       36.4MB ± 0%  -0.09%  (p=0.008 n=5+5)
    XML              47.9MB ± 0%       47.8MB ± 0%  -0.15%  (p=0.008 n=5+5)
    [Geo mean]       84.6MB            84.5MB       -0.12%
    
    name        old allocs/op     new allocs/op     delta
    Template           379k ± 0%         380k ± 0%  +0.15%  (p=0.008 n=5+5)
    Unicode            340k ± 0%         340k ± 0%    ~     (p=0.738 n=5+5)
    GoTypes           1.36M ± 0%        1.36M ± 0%  +0.05%  (p=0.008 n=5+5)
    Compiler          5.49M ± 0%        5.49M ± 0%  +0.12%  (p=0.008 n=5+5)
    SSA               17.5M ± 0%        17.5M ± 0%  -0.18%  (p=0.008 n=5+5)
    Flate              235k ± 0%         235k ± 0%    ~     (p=0.079 n=5+5)
    GoParser           302k ± 0%         302k ± 0%    ~     (p=0.310 n=5+5)
    Reflect            976k ± 0%         977k ± 0%  +0.08%  (p=0.008 n=5+5)
    Tar                352k ± 0%         352k ± 0%  +0.12%  (p=0.008 n=5+5)
    XML                436k ± 0%         436k ± 0%  -0.05%  (p=0.008 n=5+5)
    [Geo mean]         842k              842k       +0.03%
    
    
    Change-Id: I53e8faed1859885ca5c4a5d45067a50984f3eff1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175879
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarKeith Randall <khr@golang.org>
    260e3d08
compile.go 16 KB