From a2bff7c2964c6bf2c9741eb767d749d773f20770 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 1 Mar 2020 16:44:06 -0800 Subject: [PATCH] cmd/compile: make pre-elimination of rulegen bounds checks more precise In cases in which we had a named value whose args were all _, like this rule from ARM.rules: (MOVBUreg x:(MOVBUload _ _)) -> (MOVWreg x) We previously inserted _ = x.Args[1] even though it is unnecessary. This change eliminates this pointless bounds check. And in other cases, we now check bounds just as far as strictly necessary. No significant movement on any compiler metrics. Just nicer (and less) code. Passes toolstash-check -all. Change-Id: I075dfe9f926cc561cdc705e9ddaab563164bed3a Reviewed-on: https://go-review.googlesource.com/c/go/+/221781 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- src/cmd/compile/internal/ssa/gen/rulegen.go | 25 +- src/cmd/compile/internal/ssa/rewrite386.go | 15 +- src/cmd/compile/internal/ssa/rewriteAMD64.go | 82 ++---- src/cmd/compile/internal/ssa/rewriteARM.go | 92 ++----- src/cmd/compile/internal/ssa/rewriteARM64.go | 92 ++----- src/cmd/compile/internal/ssa/rewriteMIPS.go | 35 +-- src/cmd/compile/internal/ssa/rewriteMIPS64.go | 19 -- src/cmd/compile/internal/ssa/rewritePPC64.go | 30 +-- src/cmd/compile/internal/ssa/rewriteS390X.go | 233 ++++-------------- src/cmd/compile/internal/ssa/rewriteWasm.go | 12 - src/cmd/compile/internal/ssa/rewritedec.go | 5 - src/cmd/compile/internal/ssa/rewritedec64.go | 13 - .../compile/internal/ssa/rewritegeneric.go | 162 ++---------- 13 files changed, 170 insertions(+), 645 deletions(-) diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index 759336fb2b..8e88d0b6a3 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -1001,16 +1001,21 @@ func genMatch0(rr *RuleRewrite, arch arch, match, v string, cnt map[string]int, } } - // Access last argument first to minimize bounds checks. - if n := len(args); n > 1 && !pregenTop { - a := args[n-1] - if a != "_" && !rr.declared(a) && token.IsIdentifier(a) && !(commutative && len(args) == 2) { - rr.add(declf(a, "%s.Args[%d]", v, n-1)) - - // delete the last argument so it is not reprocessed - args = args[:n-1] - } else { - rr.add(stmtf("_ = %s.Args[%d]", v, n-1)) + if !pregenTop { + // Access last argument first to minimize bounds checks. + for n := len(args) - 1; n > 0; n-- { + a := args[n] + if a == "_" { + continue + } + if !rr.declared(a) && token.IsIdentifier(a) && !(commutative && len(args) == 2) { + rr.add(declf(a, "%s.Args[%d]", v, n)) + // delete the last argument so it is not reprocessed + args = args[:n] + } else { + rr.add(stmtf("_ = %s.Args[%d]", v, n)) + } + break } } if commutative && !pregenTop { diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go index b83c65da86..8b2da94c13 100644 --- a/src/cmd/compile/internal/ssa/rewrite386.go +++ b/src/cmd/compile/internal/ssa/rewrite386.go @@ -4087,9 +4087,8 @@ func rewriteValue386_Op386MOVBLSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -4203,9 +4202,8 @@ func rewriteValue386_Op386MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5109,9 +5107,8 @@ func rewriteValue386_Op386MOVLload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -7523,9 +7520,8 @@ func rewriteValue386_Op386MOVWLSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -7663,9 +7659,8 @@ func rewriteValue386_Op386MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index a0d422b372..c37bae2c22 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -1858,11 +1858,10 @@ func rewriteValueAMD64_OpAMD64ADDLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -2479,11 +2478,10 @@ func rewriteValueAMD64_OpAMD64ADDQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -2634,11 +2632,10 @@ func rewriteValueAMD64_OpAMD64ADDSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -2738,11 +2735,10 @@ func rewriteValueAMD64_OpAMD64ADDSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -3063,11 +3059,10 @@ func rewriteValueAMD64_OpAMD64ANDLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ANDL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -3450,11 +3445,10 @@ func rewriteValueAMD64_OpAMD64ANDQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ANDQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -9766,9 +9760,8 @@ func rewriteValueAMD64_OpAMD64MOVBQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -10019,9 +10012,8 @@ func rewriteValueAMD64_OpAMD64MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12046,9 +12038,8 @@ func rewriteValueAMD64_OpAMD64MOVLQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12353,9 +12344,8 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12554,11 +12544,10 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool { if v_1.Op != OpAMD64MOVSSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVLf2i) v.AddArg(val) return true @@ -14721,7 +14710,6 @@ func rewriteValueAMD64_OpAMD64MOVOstore(v *Value) bool { } srcOff := v_1.AuxInt srcSym := v_1.Aux - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpSB { break @@ -14863,9 +14851,8 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -15040,11 +15027,10 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool { if v_1.Op != OpAMD64MOVSDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVQf2i) v.AddArg(val) return true @@ -16627,11 +16613,10 @@ func rewriteValueAMD64_OpAMD64MOVSDload(v *Value) bool { if v_1.Op != OpAMD64MOVQstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVQi2f) v.AddArg(val) return true @@ -17237,11 +17222,10 @@ func rewriteValueAMD64_OpAMD64MOVSSload(v *Value) bool { if v_1.Op != OpAMD64MOVLstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVLi2f) v.AddArg(val) return true @@ -17847,9 +17831,8 @@ func rewriteValueAMD64_OpAMD64MOVWQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -18066,9 +18049,8 @@ func rewriteValueAMD64_OpAMD64MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -20680,11 +20662,10 @@ func rewriteValueAMD64_OpAMD64MULSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64MULSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -20784,11 +20765,10 @@ func rewriteValueAMD64_OpAMD64MULSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64MULSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -22560,11 +22540,10 @@ func rewriteValueAMD64_OpAMD64ORLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ORL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -24304,11 +24283,10 @@ func rewriteValueAMD64_OpAMD64ORQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ORQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -30779,11 +30757,10 @@ func rewriteValueAMD64_OpAMD64SUBLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -31059,11 +31036,10 @@ func rewriteValueAMD64_OpAMD64SUBQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -31211,11 +31187,10 @@ func rewriteValueAMD64_OpAMD64SUBSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -31312,11 +31287,10 @@ func rewriteValueAMD64_OpAMD64SUBSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -32238,11 +32212,10 @@ func rewriteValueAMD64_OpAMD64XORLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64XORL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -32603,11 +32576,10 @@ func rewriteValueAMD64_OpAMD64XORQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64XORQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) diff --git a/src/cmd/compile/internal/ssa/rewriteARM.go b/src/cmd/compile/internal/ssa/rewriteARM.go index 52ab522434..91ef5fe14f 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM.go +++ b/src/cmd/compile/internal/ssa/rewriteARM.go @@ -5120,9 +5120,8 @@ func rewriteValueARM_OpARMMOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5179,13 +5178,9 @@ func rewriteValueARM_OpARMMOVBUloadidx(v *Value) bool { if v_2.Op != OpARMMOVBstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVBUreg) @@ -5231,7 +5226,6 @@ func rewriteValueARM_OpARMMOVBUreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -5344,9 +5338,8 @@ func rewriteValueARM_OpARMMOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5390,13 +5383,9 @@ func rewriteValueARM_OpARMMOVBloadidx(v *Value) bool { if v_2.Op != OpARMMOVBstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVBreg) @@ -5442,7 +5431,6 @@ func rewriteValueARM_OpARMMOVBreg(v *Value) bool { if x.Op != OpARMMOVBload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -5751,9 +5739,8 @@ func rewriteValueARM_OpARMMOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5898,9 +5885,8 @@ func rewriteValueARM_OpARMMOVFload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6047,9 +6033,8 @@ func rewriteValueARM_OpARMMOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6106,13 +6091,9 @@ func rewriteValueARM_OpARMMOVHUloadidx(v *Value) bool { if v_2.Op != OpARMMOVHstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVHUreg) @@ -6158,7 +6139,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6170,7 +6150,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool { if x.Op != OpARMMOVHUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6294,9 +6273,8 @@ func rewriteValueARM_OpARMMOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6340,13 +6318,9 @@ func rewriteValueARM_OpARMMOVHloadidx(v *Value) bool { if v_2.Op != OpARMMOVHstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVHreg) @@ -6392,7 +6366,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVBload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6404,7 +6377,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6416,7 +6388,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVHload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6715,9 +6686,8 @@ func rewriteValueARM_OpARMMOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6842,13 +6812,9 @@ func rewriteValueARM_OpARMMOVWloadidx(v *Value) bool { if v_2.Op != OpARMMOVWstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -6989,13 +6955,9 @@ func rewriteValueARM_OpARMMOVWloadshiftLL(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -7033,13 +6995,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRA(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -7077,13 +7035,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRL(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) diff --git a/src/cmd/compile/internal/ssa/rewriteARM64.go b/src/cmd/compile/internal/ssa/rewriteARM64.go index 99beedcea1..4d1ed50d9b 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM64.go +++ b/src/cmd/compile/internal/ssa/rewriteARM64.go @@ -4118,11 +4118,10 @@ func rewriteValueARM64_OpARM64FMOVDload(v *Value) bool { if v_1.Op != OpARM64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVDgpfp) v.AddArg(val) return true @@ -4366,11 +4365,10 @@ func rewriteValueARM64_OpARM64FMOVSload(v *Value) bool { if v_1.Op != OpARM64MOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVSgpfp) v.AddArg(val) return true @@ -6838,7 +6836,6 @@ func rewriteValueARM64_OpARM64MOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -6903,9 +6900,8 @@ func rewriteValueARM64_OpARM64MOVBUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVBstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -6924,7 +6920,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -6936,7 +6931,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -7103,7 +7097,6 @@ func rewriteValueARM64_OpARM64MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -7155,9 +7148,8 @@ func rewriteValueARM64_OpARM64MOVBloadidx(v *Value) bool { if v_2.Op != OpARM64MOVBstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -7176,7 +7168,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -7188,7 +7179,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -9277,11 +9267,10 @@ func rewriteValueARM64_OpARM64MOVDload(v *Value) bool { if v_1.Op != OpARM64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVDfpgp) v.AddArg(val) return true @@ -9379,7 +9368,6 @@ func rewriteValueARM64_OpARM64MOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -9470,9 +9458,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx(v *Value) bool { if v_2.Op != OpARM64MOVDstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -9509,9 +9496,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx8(v *Value) bool { if v_2.Op != OpARM64MOVDstorezeroidx8 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10145,7 +10131,6 @@ func rewriteValueARM64_OpARM64MOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -10255,9 +10240,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -10294,9 +10278,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx2(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx2 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10315,7 +10298,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10327,7 +10309,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10339,7 +10320,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10351,7 +10331,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10363,7 +10342,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10548,7 +10526,6 @@ func rewriteValueARM64_OpARM64MOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -10645,9 +10622,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -10684,9 +10660,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx2(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx2 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10705,7 +10680,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10717,7 +10691,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10729,7 +10702,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10741,7 +10713,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10753,7 +10724,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10765,7 +10735,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10777,7 +10746,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12086,11 +12054,10 @@ func rewriteValueARM64_OpARM64MOVWUload(v *Value) bool { if v_1.Op != OpARM64FMOVSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVSfpgp) v.AddArg(val) return true @@ -12188,7 +12155,6 @@ func rewriteValueARM64_OpARM64MOVWUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -12279,9 +12245,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -12318,9 +12283,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx4(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx4 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -12339,7 +12303,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12351,7 +12314,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12363,7 +12325,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12375,7 +12336,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12387,7 +12347,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12399,7 +12358,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12411,7 +12369,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12423,7 +12380,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUloadidx4 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12619,7 +12575,6 @@ func rewriteValueARM64_OpARM64MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -12697,9 +12652,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -12736,9 +12690,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx4(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx4 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -12757,7 +12710,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12769,7 +12721,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12781,7 +12732,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12793,7 +12743,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12805,7 +12754,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12817,7 +12765,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12829,7 +12776,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12841,7 +12787,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12853,7 +12798,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12865,7 +12809,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12877,7 +12820,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12889,7 +12831,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12901,7 +12842,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWloadidx4 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index 83bb92fc35..5815874db9 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -2416,9 +2416,8 @@ func rewriteValueMIPS_OpMIPSMOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -2438,7 +2437,6 @@ func rewriteValueMIPS_OpMIPSMOVBUreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -2563,9 +2561,8 @@ func rewriteValueMIPS_OpMIPSMOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -2585,7 +2582,6 @@ func rewriteValueMIPS_OpMIPSMOVBreg(v *Value) bool { if x.Op != OpMIPSMOVBload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -2916,9 +2912,8 @@ func rewriteValueMIPS_OpMIPSMOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3038,9 +3033,8 @@ func rewriteValueMIPS_OpMIPSMOVFload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3160,9 +3154,8 @@ func rewriteValueMIPS_OpMIPSMOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3182,7 +3175,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3194,7 +3186,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool { if x.Op != OpMIPSMOVHUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3330,9 +3321,8 @@ func rewriteValueMIPS_OpMIPSMOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3352,7 +3342,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVBload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3364,7 +3353,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3376,7 +3364,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVHload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3695,9 +3682,8 @@ func rewriteValueMIPS_OpMIPSMOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6445,7 +6431,6 @@ func rewriteValueMIPS_OpSelect0(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -6464,7 +6449,6 @@ func rewriteValueMIPS_OpSelect0(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -6638,7 +6622,6 @@ func rewriteValueMIPS_OpSelect1(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7269,7 +7252,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSNE, cmp) return true } @@ -7284,7 +7266,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSNE, cmp) return true } @@ -7545,7 +7526,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSEQ, cmp) return true } @@ -7560,7 +7540,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSEQ, cmp) return true } diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go index c8d72363b3..5136b1ca62 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go @@ -2606,7 +2606,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -2692,7 +2691,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3193,7 +3191,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3205,7 +3202,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3302,7 +3298,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3314,7 +3309,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3326,7 +3320,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVHload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3807,7 +3800,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3819,7 +3811,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3831,7 +3822,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVWUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3939,7 +3929,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3951,7 +3940,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3963,7 +3951,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVHload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3975,7 +3962,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3987,7 +3973,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVWload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -7765,7 +7750,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64NE, cmp) return true } @@ -7780,7 +7764,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64NE, cmp) return true } @@ -8023,7 +8006,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64EQ, cmp) return true } @@ -8038,7 +8020,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64EQ, cmp) return true } diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go index 1bdd8ee23a..82fa1354f8 100644 --- a/src/cmd/compile/internal/ssa/rewritePPC64.go +++ b/src/cmd/compile/internal/ssa/rewritePPC64.go @@ -4125,7 +4125,6 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool { if x.Op != OpPPC64MOVBZload { continue } - _ = x.Args[1] v.reset(OpPPC64ANDconst) v.AuxInt = c & 0xFF v.AddArg(x) @@ -5003,11 +5002,10 @@ func rewriteValuePPC64_OpPPC64FMOVDload(v *Value) bool { if v_1.Op != OpPPC64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + x := v_1.Args[1] if ptr != v_1.Args[0] { break } - x := v_1.Args[1] v.reset(OpPPC64MTVSRD) v.AddArg(x) return true @@ -6359,7 +6357,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -6370,7 +6367,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -7651,11 +7647,10 @@ func rewriteValuePPC64_OpPPC64MOVDload(v *Value) bool { if v_1.Op != OpPPC64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + x := v_1.Args[1] if ptr != v_1.Args[0] { break } - x := v_1.Args[1] v.reset(OpPPC64MFVSRD) v.AddArg(x) return true @@ -8284,7 +8279,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if y.Op != OpPPC64MOVHBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -8307,7 +8301,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8318,7 +8311,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -8329,7 +8321,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVHZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8340,7 +8331,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVHZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -8666,7 +8656,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if x.Op != OpPPC64MOVHload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8677,7 +8666,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if x.Op != OpPPC64MOVHloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9268,7 +9256,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64AND { break } - _ = y.Args[1] y_0 := y.Args[0] y_1 := y.Args[1] for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { @@ -9412,7 +9399,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVHBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -9423,7 +9409,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVWBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -9446,7 +9431,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9457,7 +9441,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9468,7 +9451,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVHZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9479,7 +9461,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVHZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9490,7 +9471,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVWZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9501,7 +9481,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVWZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9673,7 +9652,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if y.Op != OpPPC64AND { break } - _ = y.Args[1] y_0 := y.Args[0] y_1 := y.Args[1] for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { @@ -9846,7 +9824,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVHload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9857,7 +9834,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVHloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9868,7 +9844,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVWload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9879,7 +9854,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVWloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } diff --git a/src/cmd/compile/internal/ssa/rewriteS390X.go b/src/cmd/compile/internal/ssa/rewriteS390X.go index 2ac8a6f05e..7c750574bc 100644 --- a/src/cmd/compile/internal/ssa/rewriteS390X.go +++ b/src/cmd/compile/internal/ssa/rewriteS390X.go @@ -5652,9 +5652,8 @@ func rewriteValueS390X_OpS390XADDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -6154,9 +6153,8 @@ func rewriteValueS390X_OpS390XANDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7245,9 +7243,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7265,9 +7262,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7588,9 +7584,8 @@ func rewriteValueS390X_OpS390XFMOVSload(v *Value) bool { if v_1.Op != OpS390XFMOVSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8304,9 +8299,8 @@ func rewriteValueS390X_OpS390XMOVBZload(v *Value) bool { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8570,11 +8564,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -8585,11 +8575,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -8678,7 +8664,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if x.Op != OpS390XLOCGR { break } - _ = x.Args[2] + _ = x.Args[1] x_0 := x.Args[0] if x_0.Op != OpS390XMOVDconst { break @@ -8725,9 +8711,8 @@ func rewriteValueS390X_OpS390XMOVBload(v *Value) bool { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8991,11 +8976,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -9006,11 +8987,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -10018,9 +9995,8 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -10037,9 +10013,8 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -10790,9 +10765,8 @@ func rewriteValueS390X_OpS390XMOVHZload(v *Value) bool { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -11041,11 +11015,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11056,11 +11026,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11071,11 +11037,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -11086,11 +11048,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -11201,9 +11159,8 @@ func rewriteValueS390X_OpS390XMOVHload(v *Value) bool { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -11452,11 +11409,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11467,11 +11420,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11482,11 +11431,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11497,11 +11442,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11512,11 +11453,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11527,11 +11464,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12340,9 +12273,8 @@ func rewriteValueS390X_OpS390XMOVWZload(v *Value) bool { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -12574,11 +12506,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12589,11 +12517,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12604,11 +12528,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -12619,11 +12539,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -12634,11 +12550,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 4) { + if x.Op != OpS390XMOVWZload || !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } v.copyOf(x) @@ -12649,11 +12561,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 4) { + if x.Op != OpS390XMOVWZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } v.copyOf(x) @@ -12749,9 +12657,8 @@ func rewriteValueS390X_OpS390XMOVWload(v *Value) bool { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -12983,11 +12890,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -12998,11 +12901,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13013,11 +12912,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13028,11 +12923,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13043,11 +12934,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVWload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13058,11 +12945,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVWloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13073,11 +12956,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -13088,11 +12967,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -13103,11 +12978,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -13118,11 +12989,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -13873,9 +13740,8 @@ func rewriteValueS390X_OpS390XMULLDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -16511,9 +16377,8 @@ func rewriteValueS390X_OpS390XORload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -17949,9 +17814,8 @@ func rewriteValueS390X_OpS390XSUBload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -18397,9 +18261,8 @@ func rewriteValueS390X_OpS390XXORload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } diff --git a/src/cmd/compile/internal/ssa/rewriteWasm.go b/src/cmd/compile/internal/ssa/rewriteWasm.go index 4b100b6c32..2c7add4996 100644 --- a/src/cmd/compile/internal/ssa/rewriteWasm.go +++ b/src/cmd/compile/internal/ssa/rewriteWasm.go @@ -3096,7 +3096,6 @@ func rewriteValueWasm_OpSignExt16to32(v *Value) bool { if x.Op != OpWasmI64Load16S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3138,7 +3137,6 @@ func rewriteValueWasm_OpSignExt16to64(v *Value) bool { if x.Op != OpWasmI64Load16S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3180,7 +3178,6 @@ func rewriteValueWasm_OpSignExt32to64(v *Value) bool { if x.Op != OpWasmI64Load32S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3222,7 +3219,6 @@ func rewriteValueWasm_OpSignExt8to16(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3264,7 +3260,6 @@ func rewriteValueWasm_OpSignExt8to32(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3306,7 +3301,6 @@ func rewriteValueWasm_OpSignExt8to64(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4591,7 +4585,6 @@ func rewriteValueWasm_OpZeroExt16to32(v *Value) bool { if x.Op != OpWasmI64Load16U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4617,7 +4610,6 @@ func rewriteValueWasm_OpZeroExt16to64(v *Value) bool { if x.Op != OpWasmI64Load16U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4643,7 +4635,6 @@ func rewriteValueWasm_OpZeroExt32to64(v *Value) bool { if x.Op != OpWasmI64Load32U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4669,7 +4660,6 @@ func rewriteValueWasm_OpZeroExt8to16(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4695,7 +4685,6 @@ func rewriteValueWasm_OpZeroExt8to32(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4721,7 +4710,6 @@ func rewriteValueWasm_OpZeroExt8to64(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } diff --git a/src/cmd/compile/internal/ssa/rewritedec.go b/src/cmd/compile/internal/ssa/rewritedec.go index 08ed1fd129..1d7979f5c9 100644 --- a/src/cmd/compile/internal/ssa/rewritedec.go +++ b/src/cmd/compile/internal/ssa/rewritedec.go @@ -54,7 +54,6 @@ func rewriteValuedec_OpComplexReal(v *Value) bool { if v_0.Op != OpComplexMake { break } - _ = v_0.Args[1] real := v_0.Args[0] v.copyOf(real) return true @@ -83,7 +82,6 @@ func rewriteValuedec_OpITab(v *Value) bool { if v_0.Op != OpIMake { break } - _ = v_0.Args[1] itab := v_0.Args[0] v.copyOf(itab) return true @@ -230,7 +228,6 @@ func rewriteValuedec_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] len := v_0.Args[1] v.copyOf(len) return true @@ -245,7 +242,6 @@ func rewriteValuedec_OpSlicePtr(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] ptr := v_0.Args[0] v.copyOf(ptr) return true @@ -405,7 +401,6 @@ func rewriteValuedec_OpStringPtr(v *Value) bool { if v_0.Op != OpStringMake { break } - _ = v_0.Args[1] ptr := v_0.Args[0] v.copyOf(ptr) return true diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go index 08a045ccac..b7048f111c 100644 --- a/src/cmd/compile/internal/ssa/rewritedec64.go +++ b/src/cmd/compile/internal/ssa/rewritedec64.go @@ -439,7 +439,6 @@ func rewriteValuedec64_OpInt64Hi(v *Value) bool { if v_0.Op != OpInt64Make { break } - _ = v_0.Args[1] hi := v_0.Args[0] v.copyOf(hi) return true @@ -704,7 +703,6 @@ func rewriteValuedec64_OpLsh16x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -770,7 +768,6 @@ func rewriteValuedec64_OpLsh32x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -916,7 +913,6 @@ func rewriteValuedec64_OpLsh64x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1022,7 +1018,6 @@ func rewriteValuedec64_OpLsh8x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1204,7 +1199,6 @@ func rewriteValuedec64_OpRsh16Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1271,7 +1265,6 @@ func rewriteValuedec64_OpRsh16x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1339,7 +1332,6 @@ func rewriteValuedec64_OpRsh32Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1406,7 +1398,6 @@ func rewriteValuedec64_OpRsh32x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1552,7 +1543,6 @@ func rewriteValuedec64_OpRsh64Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1757,7 +1747,6 @@ func rewriteValuedec64_OpRsh64x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1881,7 +1870,6 @@ func rewriteValuedec64_OpRsh8Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1948,7 +1936,6 @@ func rewriteValuedec64_OpRsh8x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index e0541f8710..0a4879a8ad 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -6886,12 +6886,10 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpLocalAddr { continue } b := v_1.Aux - _ = v_1.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b) return true @@ -6906,7 +6904,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -6916,7 +6913,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b && o == 0) return true @@ -6936,7 +6932,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0_0.Aux - _ = v_0_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -6946,7 +6941,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b && o1 == o2) return true @@ -7037,11 +7031,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { // result: (ConstBool [0]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpAddr { + if v_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -7058,11 +7048,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpAddr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -7075,11 +7061,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { // result: (ConstBool [0]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -7100,11 +7082,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -7328,7 +7306,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool { if v_0.Op != OpLoad { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] if v_0_0.Op != OpOffPtr { break @@ -7342,7 +7319,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool { if v_0_0_0_0.Op != OpIMake { break } - _ = v_0_0_0_0.Args[1] v_0_0_0_0_0 := v_0_0_0_0.Args[0] if v_0_0_0_0_0.Op != OpAddr { break @@ -7445,7 +7421,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd8 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7477,7 +7452,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7509,7 +7483,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7541,7 +7514,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7569,7 +7541,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd16 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7601,7 +7572,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd16 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7633,7 +7603,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd16 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7661,7 +7630,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd32 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7693,7 +7661,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd32 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7721,7 +7688,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd64 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8116,7 +8082,6 @@ func rewriteValuegeneric_OpIsNonNil(v *Value) bool { if v_0.Op != OpLocalAddr { break } - _ = v_0.Args[1] v.reset(OpConstBool) v.AuxInt = 1 return true @@ -8144,7 +8109,6 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value) bool { if v_0.Op != OpAnd32 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8172,7 +8136,6 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value) bool { if v_0.Op != OpAnd64 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8850,9 +8813,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] - p2 := v_1.Args[0] x := v_1.Args[1] + p2 := v_1.Args[0] if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) { break } @@ -8876,9 +8838,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t3 := v_1_2.Aux - _ = v_1_2.Args[2] - p3 := v_1_2.Args[0] x := v_1_2.Args[1] + p3 := v_1_2.Args[0] if !(isSamePtr(p1, p3) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p3, sizeof(t3), p2, sizeof(t2))) { break } @@ -8909,9 +8870,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t4 := v_1_2_2.Aux - _ = v_1_2_2.Args[2] - p4 := v_1_2_2.Args[0] x := v_1_2_2.Args[1] + p4 := v_1_2_2.Args[0] if !(isSamePtr(p1, p4) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p4, sizeof(t4), p2, sizeof(t2)) && disjoint(p4, sizeof(t4), p3, sizeof(t3))) { break } @@ -8949,9 +8909,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t5 := v_1_2_2_2.Aux - _ = v_1_2_2_2.Args[2] - p5 := v_1_2_2_2.Args[0] x := v_1_2_2_2.Args[1] + p5 := v_1_2_2_2.Args[0] if !(isSamePtr(p1, p5) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p5, sizeof(t5), p2, sizeof(t2)) && disjoint(p5, sizeof(t5), p3, sizeof(t3)) && disjoint(p5, sizeof(t5), p4, sizeof(t4))) { break } @@ -8968,7 +8927,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst64 { @@ -8992,7 +8951,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst32 { @@ -9016,7 +8975,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst64F { @@ -9040,7 +8999,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst32F { @@ -9076,7 +9035,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p3 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p3) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2))) { break @@ -9119,7 +9077,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p4 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p4) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3))) { break @@ -9169,7 +9126,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p5 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p5) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3)) && disjoint(op, t1.Size(), p4, sizeof(t4))) { break @@ -9226,7 +9182,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p6 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p6) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3)) && disjoint(op, t1.Size(), p4, sizeof(t4)) && disjoint(op, t1.Size(), p5, sizeof(t5))) { break @@ -9254,7 +9209,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(t1.IsBoolean() && isSamePtr(p1, p2) && n >= o+1) { break @@ -9277,7 +9231,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is8BitInt(t1) && isSamePtr(p1, p2) && n >= o+1) { break @@ -9300,7 +9253,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is16BitInt(t1) && isSamePtr(p1, p2) && n >= o+2) { break @@ -9323,7 +9275,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is32BitInt(t1) && isSamePtr(p1, p2) && n >= o+4) { break @@ -9346,7 +9297,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is64BitInt(t1) && isSamePtr(p1, p2) && n >= o+8) { break @@ -9369,7 +9319,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is32BitFloat(t1) && isSamePtr(p1, p2) && n >= o+4) { break @@ -9392,7 +9341,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is64BitFloat(t1) && isSamePtr(p1, p2) && n >= o+8) { break @@ -11082,7 +11030,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { if mem.Op != OpZero || mem.AuxInt != n || mem.Aux != t { break } - _ = mem.Args[1] dst2 := mem.Args[0] if !(isSamePtr(src, dst2)) { break @@ -11109,7 +11056,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { if mem_0.Op != OpZero || mem_0.AuxInt != n || mem_0.Aux != t { break } - _ = mem_0.Args[1] dst0 := mem_0.Args[0] if !(isSamePtr(src, dst0)) { break @@ -11284,7 +11230,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_2.Aux - _ = mem_2.Args[2] + d2 := mem_2.Args[1] op3 := mem_2.Args[0] if op3.Op != OpOffPtr { break @@ -11294,7 +11240,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p3 := op3.Args[0] - d2 := mem_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && o2 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)) { break } @@ -11353,7 +11298,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_2_2.Aux - _ = mem_2_2.Args[2] + d3 := mem_2_2.Args[1] op4 := mem_2_2.Args[0] if op4.Op != OpOffPtr { break @@ -11363,7 +11308,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p4 := op4.Args[0] - d3 := mem_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && o3 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)) { break } @@ -11442,7 +11386,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_2_2_2.Aux - _ = mem_2_2_2.Args[2] + d4 := mem_2_2_2.Args[1] op5 := mem_2_2_2.Args[0] if op5.Op != OpOffPtr { break @@ -11452,7 +11396,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p5 := op5.Args[0] - d4 := mem_2_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && o4 == sizeof(t5) && o3-o4 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)+sizeof(t5)) { break } @@ -11513,7 +11456,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_0_2.Aux - _ = mem_0_2.Args[2] + d2 := mem_0_2.Args[1] op3 := mem_0_2.Args[0] if op3.Op != OpOffPtr { break @@ -11523,7 +11466,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p3 := op3.Args[0] - d2 := mem_0_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && o2 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)) { break } @@ -11586,7 +11528,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_0_2_2.Aux - _ = mem_0_2_2.Args[2] + d3 := mem_0_2_2.Args[1] op4 := mem_0_2_2.Args[0] if op4.Op != OpOffPtr { break @@ -11596,7 +11538,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p4 := op4.Args[0] - d3 := mem_0_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && o3 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)) { break } @@ -11679,7 +11620,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_0_2_2_2.Aux - _ = mem_0_2_2_2.Args[2] + d4 := mem_0_2_2_2.Args[1] op5 := mem_0_2_2_2.Args[0] if op5.Op != OpOffPtr { break @@ -11689,7 +11630,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p5 := op5.Args[0] - d4 := mem_0_2_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && o4 == sizeof(t5) && o3-o4 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)+sizeof(t5)) { break } @@ -11746,7 +11686,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_2.Aux - _ = mem_2.Args[1] p3 := mem_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) { break @@ -11804,7 +11743,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_2_2.Aux - _ = mem_2_2.Args[1] p4 := mem_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3)) { break @@ -11882,7 +11820,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_2_2_2.Aux - _ = mem_2_2_2.Args[1] p5 := mem_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4)) { break @@ -11980,7 +11917,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t6 := mem_2_2_2_2.Aux - _ = mem_2_2_2_2.Args[1] p6 := mem_2_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && isSamePtr(p5, p6) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && alignof(t6) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4) && n >= o5+sizeof(t5)) { break @@ -12046,7 +11982,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_0_2.Aux - _ = mem_0_2.Args[1] p3 := mem_0_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) { break @@ -12108,7 +12043,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_0_2_2.Aux - _ = mem_0_2_2.Args[1] p4 := mem_0_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3)) { break @@ -12190,7 +12124,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_0_2_2_2.Aux - _ = mem_0_2_2_2.Args[1] p5 := mem_0_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4)) { break @@ -12292,7 +12225,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t6 := mem_0_2_2_2_2.Aux - _ = mem_0_2_2_2_2.Args[1] p6 := mem_0_2_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && isSamePtr(p5, p6) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && alignof(t6) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4) && n >= o5+sizeof(t5)) { break @@ -12340,9 +12272,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t2 := midmem.Aux - _ = midmem.Args[2] - tmp2 := midmem.Args[0] src := midmem.Args[1] + tmp2 := midmem.Args[0] if !(t1.(*types.Type).Compare(t2.(*types.Type)) == types.CMPeq && isSamePtr(tmp1, tmp2) && isStackPtr(src) && disjoint(src, s, tmp2, s) && (disjoint(src, s, dst, s) || isInlinableMemmove(dst, src, s, config))) { break } @@ -12369,9 +12300,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t2 := midmem_0.Aux - _ = midmem_0.Args[2] - tmp2 := midmem_0.Args[0] src := midmem_0.Args[1] + tmp2 := midmem_0.Args[0] if !(t1.(*types.Type).Compare(t2.(*types.Type)) == types.CMPeq && isSamePtr(tmp1, tmp2) && isStackPtr(src) && disjoint(src, s, tmp2, s) && (disjoint(src, s, dst, s) || isInlinableMemmove(dst, src, s, config))) { break } @@ -14378,12 +14308,10 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpLocalAddr { continue } b := v_1.Aux - _ = v_1.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b) return true @@ -14398,7 +14326,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -14408,7 +14335,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b || o != 0) return true @@ -14428,7 +14354,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0_0.Aux - _ = v_0_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -14438,7 +14363,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b || o1 != o2) return true @@ -14529,11 +14453,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { // result: (ConstBool [1]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpAddr { + if v_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -14550,11 +14470,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpAddr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -14567,11 +14483,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { // result: (ConstBool [1]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -14592,11 +14504,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -16290,7 +16198,6 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value) bool { if v_0.Op != OpRsh16x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -16725,7 +16632,6 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value) bool { if v_0.Op != OpRsh32x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -17196,7 +17102,6 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value) bool { if v_0.Op != OpRsh64x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -17703,7 +17608,6 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value) bool { if v_0.Op != OpRsh8x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -18298,7 +18202,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpConst64 { break @@ -18316,7 +18220,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpConst32 { break @@ -18334,7 +18238,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpSliceLen { break @@ -18354,7 +18258,6 @@ func rewriteValuegeneric_OpSlicePtr(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] v_0_0 := v_0.Args[0] if v_0_0.Op != OpSlicePtr { break @@ -18664,7 +18567,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p2 := mem.Args[0] if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) { break @@ -18696,7 +18598,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2.AuxInt - _ = mem_2.Args[1] p3 := mem_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) { break @@ -18735,7 +18636,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2_2.AuxInt - _ = mem_2_2.Args[1] p4 := mem_2_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p4) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3))) { break @@ -18781,7 +18681,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2_2_2.AuxInt - _ = mem_2_2_2.Args[1] p5 := mem_2_2_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p5) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3)) && disjoint(op, sizeof(t1), p4, sizeof(t4))) { break @@ -19416,7 +19315,6 @@ func rewriteValuegeneric_OpStringPtr(v *Value) bool { if v_0.Op != OpStringMake { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] if v_0_0.Op != OpAddr { break @@ -19452,7 +19350,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake2 { break } - _ = v_0.Args[1] x := v_0.Args[0] v.copyOf(x) return true @@ -19473,7 +19370,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake3 { break } - _ = v_0.Args[2] x := v_0.Args[0] v.copyOf(x) return true @@ -19484,7 +19380,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 1 || v_0.Op != OpStructMake3 { break } - _ = v_0.Args[2] x := v_0.Args[1] v.copyOf(x) return true @@ -19505,7 +19400,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[0] v.copyOf(x) return true @@ -19516,7 +19410,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 1 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[1] v.copyOf(x) return true @@ -19527,7 +19420,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 2 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[2] v.copyOf(x) return true -- 2.50.0