]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/gc: convert Val.U to interface{}
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 15 May 2015 00:57:42 +0000 (17:57 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Fri, 15 May 2015 15:12:42 +0000 (15:12 +0000)
commit13485be939d73d6d2a5a8407c74c5fd502e35a6f
tree6a3502692f16bfb2c08f52de9283f146527a0149
parent3c06cff7d1d7382b74ab39bd3bf0e46264ac845d
cmd/internal/gc: convert Val.U to interface{}

This CL was generated by updating Val in go.go
and then running:

sed -i "" 's/\.U\.[SBXFC]val = /.U = /' *.go
sed -i "" 's/\.U\.Sval/.U.\(string\)/g' *.go *.y
sed -i "" 's/\.U\.Bval/.U.\(bool\)/g' *.go *.y
sed -i "" 's/\.U\.Xval/.U.\(\*Mpint\)/g' *.go *.y
sed -i "" 's/\.U\.Fval/.U.\(\*Mpflt\)/g' *.go *.y
sed -i "" 's/\.U\.Cval/.U.\(\*Mpcplx\)/g' *.go *.y

No functional changes. Passes toolstash -cmp.

This reduces the size of gc.Node from 424 to 392 bytes.
This in turn reduces the permanent (pprof -inuse_space)
memory usage while compiling the test/rotate?.go tests:

test old(MB) new(MB) change
rotate0 379.49 364.78 -3.87%
rotate1 373.42 359.07 -3.84%
rotate2 381.17 366.24 -3.91%
rotate3 374.30 359.95 -3.83%

CL 8445 was similar to this; gri asked that Val's implementation
be hidden first. CLs 8912, 9263, and 9267 have at least
isolated the changes to the cmd/internal/gc package.

Updates #9933.

Change-Id: I83ddfe003d48e0a73c92e819edd3b5e620023084
Reviewed-on: https://go-review.googlesource.com/10059
Reviewed-by: Russ Cox <rsc@golang.org>
19 files changed:
src/cmd/internal/gc/cgen.go
src/cmd/internal/gc/const.go
src/cmd/internal/gc/cplx.go
src/cmd/internal/gc/dcl.go
src/cmd/internal/gc/fmt.go
src/cmd/internal/gc/gen.go
src/cmd/internal/gc/go.go
src/cmd/internal/gc/go.y
src/cmd/internal/gc/gsubr.go
src/cmd/internal/gc/lex.go
src/cmd/internal/gc/obj.go
src/cmd/internal/gc/order.go
src/cmd/internal/gc/sinit.go
src/cmd/internal/gc/subr.go
src/cmd/internal/gc/swt.go
src/cmd/internal/gc/typecheck.go
src/cmd/internal/gc/unsafe.go
src/cmd/internal/gc/walk.go
src/cmd/internal/gc/y.go