]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.regabi] cmd/compile: delete n.List after collapsing OADDSTR to OLITERAL
authorRuss Cox <rsc@golang.org>
Tue, 24 Nov 2020 16:07:48 +0000 (11:07 -0500)
committerRuss Cox <rsc@golang.org>
Tue, 24 Nov 2020 20:58:36 +0000 (20:58 +0000)
The leftover n.List is clearly unnecessary, but it makes the
inlining cost of the expression unnecessarily high.

This change breaks toolstash -cmp:

# cmd/internal/src
toolstash: compiler output differs, with optimizers disabled (-N)

inconsistent log line:
/tmp/go-build866291351/b230/_pkg_.a.log:77:
/Users/rsc/go/src/cmd/internal/src/pos.go:275:6: can inline (*PosBase).SymFilename with cost 9 as: method(*PosBase) func() string { if b != nil { return b.symFilename }; return "gofile..??" }
/tmp/go-build866291351/b230/_pkg_.a.stash.log:77:
/Users/rsc/go/src/cmd/internal/src/pos.go:275:6: can inline (*PosBase).SymFilename with cost 11 as: method(*PosBase) func() string { if b != nil { return b.symFilename }; return "gofile..??" }

Separated from other constant work so that the bigger CL can pass toolstash -cmp.

Change-Id: I5c7ddbc8373207b5b9824eafb8639488da0ca1b7
Reviewed-on: https://go-review.googlesource.com/c/go/+/272868
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/const.go

index c30d24ae1a7e02fea1af706fe60799e1949c5378..ebf3896a0a9a3b29e35f6c0178cf5954845c493f 100644 (file)
@@ -604,6 +604,7 @@ func evconst(n *Node) {
                if len(s) == 1 && Isconst(s[0], constant.String) {
                        n.Op = OLITERAL
                        n.SetVal(s[0].Val())
+                       n.List.Set(nil)
                } else {
                        n.List.Set(s)
                }