cmd/compile: error if register is reused when setting edge state
cmd/compile: error if register is reused when setting edge state

When setting the edge state in register allocation we should only
be setting each register once. It is not possible for a register
to hold multiple values at once.

This CL converts the runtime error seen in #38195 into an internal
compiler error (ICE). It is better for the compiler to fail than
generate an incorrect program.

The bug reported in #38195 is now exposed as:

./parserc.go:459:11: internal compiler error: 'yaml_parser_parse_node': R5 is already set (v1074/v1241)

[stack trace]

Updates #38195.

Change-Id: Id95842fd850b95494cbd472b6fd5a55513ecacec
Reviewed-on: https://go-review.googlesource.com/c/go/+/228060
Run-TryBot: Michael Munday <19411bdeea90f848b8e02e9a1c63a7ce7cc699ea@ibm.com>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Keith Randall <8c99c3a9284e493be632950b84cd789d08ed3e9d@golang.org>

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