]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: don't wrap numeric or type literals in OPAREN
authorMatthew Dempsky <mdempsky@google.com>
Tue, 25 Oct 2016 22:43:05 +0000 (15:43 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Tue, 25 Oct 2016 23:01:51 +0000 (23:01 +0000)
commit70d685dc7244d46b3c22c4ac9588e51d76087ded
treeb72d70425e56e34af3088dea019cbe8a538f1aad
parent57df2f802f0417f08100ff8002f3b062e695e148
cmd/compile: don't wrap numeric or type literals in OPAREN

It's only necessary to wrap named OTYPE or OLITERAL nodes, because
their line numbers reflect the line number of the declaration, rather
than use.

Saves a lot of wrapper nodes in composite-literal-heavy packages like
Unicode.

name       old alloc/op    new alloc/op    delta
Template      41.8MB ± 0%     41.8MB ± 0%  -0.07%        (p=0.000 n=10+10)
Unicode       36.6MB ± 0%     34.2MB ± 0%  -6.55%        (p=0.000 n=10+10)
GoTypes        123MB ± 0%      123MB ± 0%  -0.02%        (p=0.004 n=10+10)
Compiler       495MB ± 0%      495MB ± 0%  -0.03%        (p=0.000 n=10+10)

name       old allocs/op   new allocs/op   delta
Template        409k ± 0%       409k ± 0%  -0.05%        (p=0.029 n=10+10)
Unicode         371k ± 0%       354k ± 0%  -4.48%         (p=0.000 n=10+9)
GoTypes        1.22M ± 0%      1.22M ± 0%    ~           (p=0.075 n=10+10)
Compiler       4.44M ± 0%      4.44M ± 0%  -0.02%        (p=0.000 n=10+10)

Change-Id: Id1183170835125c778fb41b7e76d06d5ecd4f7a1
Reviewed-on: https://go-review.googlesource.com/32021
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/gc/noder.go
src/cmd/compile/internal/gc/subr.go