cmd/compile: run deadcode before lowered CSE
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: Keith Randall <khr@golang.org>