diff options
author | Josh Bleecher Snyder <josharian@gmail.com> | 2017-03-15 23:01:31 -0700 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2017-03-17 05:12:23 +0000 |
commit | ccaa8e3c6fbba08f238c5ccea437b7cac513685f (patch) | |
tree | 46c2407d54b332db0a28455956abdf258c45a4ea | |
parent | 0cfb23135c67314dbb9fc2e78fd0f364b6882f25 (diff) | |
download | go-git-ccaa8e3c6fbba08f238c5ccea437b7cac513685f.tar.gz |
cmd/compile: avoid calling unnecessary Sym format routine
Minor cleanup only.
No reason to go through String() when it is
just as easy to do a direct string comparison.
Eliminates a surprising number of allocations.
name old alloc/op new alloc/op delta
Template 40.9MB ± 0% 40.9MB ± 0% ~ (p=0.190 n=10+10)
Unicode 30.3MB ± 0% 30.3MB ± 0% ~ (p=0.218 n=10+10)
GoTypes 116MB ± 0% 116MB ± 0% -0.09% (p=0.000 n=10+10)
SSA 871MB ± 0% 869MB ± 0% -0.14% (p=0.000 n=10+9)
Flate 26.2MB ± 0% 26.2MB ± 0% -0.15% (p=0.002 n=10+10)
GoParser 32.5MB ± 0% 32.5MB ± 0% ~ (p=0.165 n=10+10)
Reflect 80.5MB ± 0% 80.4MB ± 0% -0.12% (p=0.003 n=9+10)
Tar 27.3MB ± 0% 27.3MB ± 0% -0.13% (p=0.008 n=10+9)
XML 43.1MB ± 0% 43.1MB ± 0% ~ (p=0.218 n=10+10)
name old allocs/op new allocs/op delta
Template 402k ± 1% 400k ± 1% -0.64% (p=0.002 n=10+10)
Unicode 322k ± 1% 321k ± 1% ~ (p=0.075 n=10+10)
GoTypes 1.19M ± 0% 1.18M ± 0% -0.90% (p=0.000 n=10+10)
SSA 7.94M ± 0% 7.81M ± 0% -1.66% (p=0.000 n=10+9)
Flate 246k ± 0% 242k ± 1% -1.42% (p=0.000 n=10+10)
GoParser 325k ± 1% 323k ± 1% -0.84% (p=0.000 n=10+10)
Reflect 1.02M ± 0% 1.01M ± 0% -0.99% (p=0.000 n=10+10)
Tar 259k ± 0% 257k ± 1% -0.72% (p=0.009 n=10+10)
XML 406k ± 1% 403k ± 1% -0.69% (p=0.001 n=10+10)
Change-Id: Ia129a4cd272027d627e1f3b27e9f07f93e3aa27e
Reviewed-on: https://go-review.googlesource.com/38230
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r-- | src/cmd/compile/internal/gc/ssa.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 8f61590864..4aca79307a 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -3205,7 +3205,7 @@ func (s *state) canSSA(n *Node) bool { return false } } - if n.Class == PPARAM && n.String() == ".this" { + if n.Class == PPARAM && n.Sym != nil && n.Sym.Name == ".this" { // wrappers generated by genwrapper need to update // the .this pointer in place. // TODO: treat as a PPARMOUT? |