]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: don't accumulate duplicated named slots
authorCherry Zhang <cherryyz@google.com>
Wed, 21 Apr 2021 00:33:43 +0000 (20:33 -0400)
committerCherry Zhang <cherryyz@google.com>
Wed, 21 Apr 2021 14:15:55 +0000 (14:15 +0000)
commitdaee726a0b7c932ed418e623ef29697c77d113a8
tree82ff0fc7b4c809dc9e71c3aa2246276cd5717d4f
parent4d56576ec02e3e3b4459bc23eb1601e6e96f3cfc
cmd/compile: don't accumulate duplicated named slots

Currently, in expand_calls, for each appearance of a named
variables's component, we add the named slot to f.Names list. If
a variable appears many times, we add it to f.Names many times.
Furthure, for each duplicated named slot, its entry in
f.NamedValues is a slice that contains all Values associated with
that name. This leads to quadratic behavior when iterating named
values like

for _, name := range f.Names {
for _, v := range f.NamedValues[name] {
...
}
}

This CL makes it not to add duplicated entries to f.Names.

Change-Id: I82a8d009db81ecf48b4577e0bca501feff677cdf
Reviewed-on: https://go-review.googlesource.com/c/go/+/312093
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/compile/internal/ssa/expand_calls.go