]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.22] cmd/compile: don't elide zero extension on top of signed...
authorKeith Randall <khr@golang.org>
Fri, 28 Jun 2024 03:45:22 +0000 (20:45 -0700)
committerCarlos Amedee <carlos@golang.org>
Wed, 10 Jul 2024 19:29:47 +0000 (19:29 +0000)
commit45f9ded1df582eb87e06d7fc8cab905ee68f8aa7
tree34ff6e20becf29afca24ab207c131d237f40789b
parent49906f9575149afdf7e542fa24c7447c0ef78c49
[release-branch.go1.22] cmd/compile: don't elide zero extension on top of signed values

v = ... compute some value, which zeros top 32 bits ...
w = zero-extend v

We want to remove the zero-extension operation, as it doesn't do anything.
But if v is typed as a signed value, and it gets spilled/restored, it
might be re-sign-extended upon restore. So the zero-extend isn't actually
a NOP when there might be calls or other reasons to spill in between v and w.

Fixes #68230

Change-Id: I3b30b8e56c7d70deac1fb09d2becc7395acbadf8
Reviewed-on: https://go-review.googlesource.com/c/go/+/595675
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Joedian Reid <joedian@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
(cherry picked from commit 7f90b960a9711b51bf36f49be4274ac5f7e86a95)
Reviewed-on: https://go-review.googlesource.com/c/go/+/595696
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/compile/internal/ssa/rewrite.go
test/fixedbugs/issue68227.go [new file with mode: 0644]