]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: remove stores to unread parameters
authorCherry Mui <cherryyz@google.com>
Mon, 22 Sep 2025 14:57:29 +0000 (10:57 -0400)
committerCherry Mui <cherryyz@google.com>
Fri, 3 Oct 2025 19:31:20 +0000 (12:31 -0700)
commit38b26f29f1f97d24afc852b9f4eee829341ee682
tree0b0d35385870fb46f10629b16270aff76bdc6a79
parent003b5ce1bc15cf265e74ba1ec4eb7cf801e49986
cmd/compile: remove stores to unread parameters

Currently, we remove stores to local variables that are not read.
We don't do that for arguments. But arguments and locals are
essentially the same. Arguments are passed by value, and are not
expected to be read in the caller's frame. So we can remove the
writes to them as well. One exception is the cgo_unsafe_arg
directive, which makes all the arguments effectively address-taken.
cgo_unsafe_arg implies ABI0, so we just skip ABI0 functions'
arguments.

Cherry-picked from the dev.simd branch. This CL is not
necessarily SIMD specific. Apply early to reduce risk.

Change-Id: I8999fc50da6a87f22c1ec23e9a0c15483b6f7df8
Reviewed-on: https://go-review.googlesource.com/c/go/+/705815
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/708865
src/cmd/compile/internal/ssa/deadstore.go
src/runtime/testdata/testprog/badtraceback.go
test/codegen/stack.go