aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2025-08-06 09:21:41 -0700
committerGopher Robot <gobot@golang.org>2025-08-06 11:04:07 -0700
commit72e8237cc11569de2faf9885a1b83d06446533b5 (patch)
treebaf2d4d05b7f41a048b4ed8b4f08f0ccf3788853 /src/cmd/compile
parent3406a617d9643902e932ca99c6f276fa7b19e030 (diff)
downloadgo-72e8237cc11569de2faf9885a1b83d06446533b5.tar.xz
cmd/compile: allow more args in StructMake folding rule
imakeOfStructMake does the right thing, but we never call it when the StructMake has more than one argument. Fixes #74908 Change-Id: Ib4b1a025bfb1fa69a325207e47b74bd6217092bf Reviewed-on: https://go-review.googlesource.com/c/go/+/693615 Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/cmd/compile')
-rw-r--r--src/cmd/compile/internal/ssa/_gen/generic.rules2
-rw-r--r--src/cmd/compile/internal/ssa/rewritegeneric.go4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/ssa/_gen/generic.rules b/src/cmd/compile/internal/ssa/_gen/generic.rules
index 8f354e977f..793f0a4fb6 100644
--- a/src/cmd/compile/internal/ssa/_gen/generic.rules
+++ b/src/cmd/compile/internal/ssa/_gen/generic.rules
@@ -921,7 +921,7 @@
@x.Block (Load <v.Type> (OffPtr <v.Type.PtrTo()> [t.FieldOff(int(i))] ptr) mem)
// Putting struct{*byte} and similar into direct interfaces.
-(IMake _typ (StructMake val)) => imakeOfStructMake(v)
+(IMake _typ (StructMake ___)) => imakeOfStructMake(v)
(StructSelect [_] (IData x)) => (IData x)
// un-SSAable values use mem->mem copies
diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go
index 83be129a7b..adc4984b6f 100644
--- a/src/cmd/compile/internal/ssa/rewritegeneric.go
+++ b/src/cmd/compile/internal/ssa/rewritegeneric.go
@@ -11200,10 +11200,10 @@ func rewriteValuegeneric_OpFloor(v *Value) bool {
func rewriteValuegeneric_OpIMake(v *Value) bool {
v_1 := v.Args[1]
v_0 := v.Args[0]
- // match: (IMake _typ (StructMake val))
+ // match: (IMake _typ (StructMake ___))
// result: imakeOfStructMake(v)
for {
- if v_1.Op != OpStructMake || len(v_1.Args) != 1 {
+ if v_1.Op != OpStructMake {
break
}
v.copyOf(imakeOfStructMake(v))