-
Notifications
You must be signed in to change notification settings - Fork 18.1k
cmd/compile: memcombine doesn't combine simple chain #72832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@golang/compiler |
That said, it handles the
|
The other option is to implement the TODO described here: go/src/cmd/compile/internal/ssa/memcombine.go Line 504 in 580b6ee
|
How come that the mechanism used for |
The current rule to move to the large-struct regime is > 4 fields or > 4 words of memory. |
Change https://go.dev/cl/661855 mentions this issue: |
This CL implements the TODO in combineStores to allow combining stores of different sizes, as long as the total size aligns to 2, 4, 8. Fixes golang#72832. Change-Id: I6d1d471335da90d851ad8f3b5a0cf10bdcfa17c4 Reviewed-on: https://go-review.googlesource.com/c/go/+/661855 Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Junyang Shao <shaojunyang@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Uh oh!
There was an error while loading. Please reload this page.
Go version
go version go1.24.1 linux/amd64
Output of
go env
in your module/workspace:What did you do?
go build -gcflags=-S
What did you see happen?
tile2.store
andtile3.store
compile to MOVQ, as expected.tile1.store
, however, uses two MOVL instead.What did you expect to see?
I expected all 3 methods to compile the same, using MOVQ.
The text was updated successfully, but these errors were encountered: