mirror of
https://github.com/golang/go
synced 2024-11-11 20:20:23 -07:00
[dev.regabi] cmd/compile: delete n.List after collapsing OADDSTR to OLITERAL
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>
This commit is contained in:
parent
ee6132a698
commit
c22bc745c3
@ -604,6 +604,7 @@ func evconst(n *Node) {
|
|||||||
if len(s) == 1 && Isconst(s[0], constant.String) {
|
if len(s) == 1 && Isconst(s[0], constant.String) {
|
||||||
n.Op = OLITERAL
|
n.Op = OLITERAL
|
||||||
n.SetVal(s[0].Val())
|
n.SetVal(s[0].Val())
|
||||||
|
n.List.Set(nil)
|
||||||
} else {
|
} else {
|
||||||
n.List.Set(s)
|
n.List.Set(s)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user