]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile/internal/ssagen: fix min/max codegen, again
authorMatthew Dempsky <mdempsky@google.com>
Tue, 27 Jun 2023 23:51:24 +0000 (16:51 -0700)
committerCarlos Amedee <carlos@golang.org>
Wed, 28 Jun 2023 16:07:47 +0000 (16:07 +0000)
commit79d4defa75a26dd975c6ba3ac938e0e414dfd3e9
treeb2a88c1dab06df2cef15a7341eb11740756fd8c7
parenta3093eca64f9efc830c153c835291d751ea167f9
cmd/compile/internal/ssagen: fix min/max codegen, again

The large-function phi placement algorithm evidently doesn't like the
same pseudo-variable being used to represent expressions of varying
types.

Instead, use the same tactic as used for "valVar" (ssa.go:6585--6587),
which is to just generate a fresh marker node each time.

Maybe we could just use the OMIN/OMAX nodes themselves as the key
(like we do for OANDAND/OOROR), but that just seems needlessly risky
for negligible memory savings. Using fresh marker values each time
seems obviously safe by comparison.

Fixes #61041.

Change-Id: Ie2600c9c37b599c2e26ae01f5f8a433025d7fd08
Reviewed-on: https://go-review.googlesource.com/c/go/+/506679
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
src/cmd/compile/internal/ssagen/ssa.go
test/fixedbugs/issue60982.go