|author||Than McIntosh <firstname.lastname@example.org>||Tue May 04 13:24:11 2021 -0400|
|committer||Than McIntosh <email@example.com>||Tue May 04 19:56:15 2021 +0000|
cmd/compile: establish regabi name/value mapping for small in-params When the expand_calls phase in the SSA backend lowers prolog OpArg values into OpArgIntReg/OpArgFloatReg values, we don't always record the assocation between the new lowered value and the parameter name. This patch handles the simple case where a given parameter fits into exactly one register; in this scenario it makes sense to manufacture a new pseudo-slot for the value that points to the param, and install the slot/value mapping in the NamedValues table for the function. More work will be needed to deal with params that span multiple registers; that will need to be addressed in a subsequent patch. This change improves the parameter error rate "optargorder" benchmark by about 7-8% (when run on the optargorder binary). Updates #45945. Change-Id: Ic9adbe20b6f91145d49651348818f0f5cba92b18 Reviewed-on: https://go-review.googlesource.com/c/go/+/316890 Trust: Than McIntosh <firstname.lastname@example.org> Run-TryBot: Than McIntosh <email@example.com> Reviewed-by: David Chase <firstname.lastname@example.org> Reviewed-by: Cherry Zhang <email@example.com> TryBot-Result: Go Bot <firstname.lastname@example.org>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://golang.org/doc/contribute.html.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.