cmd/compile: establish regabi name/value mapping for small in-params
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 <4b2922593166fc595a9b1a408f34f5d3817fe9d2@google.com>
Run-TryBot: Than McIntosh <4b2922593166fc595a9b1a408f34f5d3817fe9d2@google.com>
Reviewed-by: David Chase <ae171625adc8645b8b79b7e405a6da5aba5341e0@google.com>
Reviewed-by: Cherry Zhang <d62e63aa42ce272d7b6a5055d97e942b33a34679@google.com>
TryBot-Result: Go Bot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>

golang/go,cloudflare/go,nawawi/go,CAFxX/go,nawawi/go,CAFxX/go,cloudflare/go,golang/go,cloudflare/go,golang/go,golang/go,cloudflare/go,cloudflare/go,CAFxX/go,CAFxX/go,CAFxX/go,golang/go,nawawi/go,golang/go,cloudflare/go,nawawi/go,cloudflare/go,nawawi/go,golang/go,cloudflare/go,golang/go,CAFxX/go,nawawi/go,CAFxX/go,nawawi/go,CAFxX/go,nawawi/go