From c22bc745c3b822cdf6da0ea2f9b5cac858e5a5ac Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 24 Nov 2020 11:07:48 -0500 Subject: [PATCH] [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 Run-TryBot: Russ Cox TryBot-Result: Go Bot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/const.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cmd/compile/internal/gc/const.go b/src/cmd/compile/internal/gc/const.go index c30d24ae1a..ebf3896a0a 100644 --- a/src/cmd/compile/internal/gc/const.go +++ b/src/cmd/compile/internal/gc/const.go @@ -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) } -- 2.48.1