]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.regabi] cmd/compile: remove prealloc map
authorRuss Cox <rsc@golang.org>
Thu, 17 Dec 2020 13:49:22 +0000 (08:49 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 18 Dec 2020 17:52:54 +0000 (17:52 +0000)
commitc45313bf451591ab2f7a3ffbbd724bb36d51cba0
tree72a7ca542874e134c820e4f3317709088f802d5d
parentffb0cb7044cb412ce8c2f88740d8c7ea2af05837
[dev.regabi] cmd/compile: remove prealloc map

The prealloc map seems to exist to avoid adding a field to all nodes.
Now we can add a field to just the nodes that need the field,
so let's do that and avoid having a magic global with extra node state
that isn't preserved by operations like Copy nor printed by Dump.

This also makes clear which nodes can be prealloc'ed.
In particular, the code in walkstmt looked up an entry in
prealloc using an ONAME node, but there's no code that
ever stores such an entry, so the lookup never succeeded.
Having fields makes that kind of thing easier to see and fix.

Passes buildall w/ toolstash -cmp.

Change-Id: I418ad0e2847615c08868120c13ee719dc0b2eacb
Reviewed-on: https://go-review.googlesource.com/c/go/+/278915
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/closure.go
src/cmd/compile/internal/gc/order.go
src/cmd/compile/internal/gc/range.go
src/cmd/compile/internal/gc/sinit.go
src/cmd/compile/internal/gc/walk.go
src/cmd/compile/internal/ir/expr.go
src/cmd/compile/internal/ir/stmt.go