]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: consolidate logic for rewriting fixed loads
authorJake Bailey <jacob.b.bailey@gmail.com>
Fri, 5 Sep 2025 20:08:21 +0000 (13:08 -0700)
committerGopher Robot <gobot@golang.org>
Mon, 8 Sep 2025 20:34:03 +0000 (13:34 -0700)
commitb915e14490e1c3ac5a84c274bfab647e1cb105a7
tree71de1e4464e87d36f951588a8838976394456b59
parent06e791c0cdef1a0d35ed553875c51c85716b0f57
cmd/compile: consolidate logic for rewriting fixed loads

Many CLs have worked with this bit of code, extending the cases more and
more for various fixed addresses and constants. But, I find that it's
getting duplicitive, and I don't find the current setup very clear that
something like isFixed32 _only_ works for a specific element within the
type data.

This CL rewrites these rules (pun unintended) into a single set of
rewrite rules with shared logic, which stops hardcoding offsets and type
compatibility checks.

This should open the door to optimizing further type:... field loads, of
which most can be done entirely statically but are not yet today outside
Hash and Elem.

Passes toolstash -cmp.

Change-Id: I754138ce1785c6036eada9ed53f0ce2ad2a58b63
Reviewed-on: https://go-review.googlesource.com/c/go/+/701297
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Florian Lehner <lehner.florian86@gmail.com>
src/cmd/compile/internal/ssa/_gen/generic.rules
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewritegeneric.go