]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/ssa: correct MOVDnop handling for arm64
authorJoel Sing <joel@sing.id.au>
Wed, 4 Sep 2024 14:01:52 +0000 (00:01 +1000)
committerGopher Robot <gobot@golang.org>
Sun, 23 Feb 2025 20:04:15 +0000 (12:04 -0800)
commitfba83cdfc6c4818af5b773afa39e457d16a6db7a
treed25474164f027f4b3fbbef645d579592c305f904
parenta65078204c3c170514af58d325b3197c91be281c
cmd/compile/internal/ssa: correct MOVDnop handling for arm64

The extension-removing rules for ARM64 were moved to late lower in
CL 568616. This means that the late lower pass can now generate
MOVDreg, however the rules that potentially eliminate MOVDreg only
exist in the earlier pass. Fix this by duplicating the MOVDreg/NOVDnop
rules in late lower, such that we can potentially eliminate conversions.

Removes 400+ instructions from the Go binary on openbsd/arm64.

Change-Id: I14aad06b994c9179f3ecdda566629793ba167511
Reviewed-on: https://go-review.googlesource.com/c/go/+/651819
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/compile/internal/ssa/_gen/ARM64latelower.rules
src/cmd/compile/internal/ssa/rewriteARM64latelower.go