mirror of
https://github.com/golang/go
synced 2024-11-24 09:40:08 -07:00
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>
This commit is contained in:
parent
cc6feab396
commit
260e3d0818
@ -424,6 +424,7 @@ var passes = [...]pass{
|
||||
{name: "insert resched checks", fn: insertLoopReschedChecks,
|
||||
disabled: objabi.Preemptibleloops_enabled == 0}, // insert resched checks in loops.
|
||||
{name: "lower", fn: lower, required: true},
|
||||
{name: "lowered deadcode for cse", fn: deadcode}, // deadcode immediately before CSE avoids CSE making dead values live again
|
||||
{name: "lowered cse", fn: cse},
|
||||
{name: "elim unread autos", fn: elimUnreadAutos},
|
||||
{name: "lowered deadcode", fn: deadcode, required: true},
|
||||
|
Loading…
Reference in New Issue
Block a user