• Josh Bleecher Snyder's avatar
    cmd/internal/gc: convert Val.U to interface{} · 13485be9
    Josh Bleecher Snyder authored
    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/10059Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    13485be9
fmt.go 36.5 KB