From: Josh Bleecher Snyder Date: Thu, 6 Jun 2019 18:26:55 +0000 (-0700) Subject: cmd/compile: remove redundant rules X-Git-Tag: go1.14beta1~1270 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=abda0a6a92749656621acba5bbda6a6f2450718d;p=gostls13.git cmd/compile: remove redundant rules EqPtr and NeqPtr are marked as commutative, so the transformations for rules are already generated by the preceding two lines. Change-Id: Ibecba5c8e54d9df00c84e1dae7e5d8cb53eeff43 Reviewed-on: https://go-review.googlesource.com/c/go/+/180939 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/ssa/gen/generic.rules b/src/cmd/compile/internal/ssa/gen/generic.rules index 347bf2a00f..8f2ff28879 100644 --- a/src/cmd/compile/internal/ssa/gen/generic.rules +++ b/src/cmd/compile/internal/ssa/gen/generic.rules @@ -1916,8 +1916,6 @@ (EqPtr (LocalAddr _ _) (Addr _)) -> (ConstBool [0]) (NeqPtr (LocalAddr _ _) (Addr _)) -> (ConstBool [1]) -(EqPtr (Addr _) (LocalAddr _ _)) -> (ConstBool [0]) -(NeqPtr (Addr _) (LocalAddr _ _)) -> (ConstBool [1]) // Simplify address comparisons. (EqPtr (AddPtr p1 o1) p2) && isSamePtr(p1, p2) -> (Not (IsNonNil o1)) diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index 6b0cd05047..e3a123e1d2 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -27319,42 +27319,6 @@ func rewriteValuegeneric_OpEqPtr_10(v *Value) bool { v.AuxInt = 0 return true } - // match: (EqPtr (Addr _) (LocalAddr _ _)) - // cond: - // result: (ConstBool [0]) - for { - _ = v.Args[1] - v_0 := v.Args[0] - if v_0.Op != OpAddr { - break - } - v_1 := v.Args[1] - if v_1.Op != OpLocalAddr { - break - } - _ = v_1.Args[1] - v.reset(OpConstBool) - v.AuxInt = 0 - return true - } - // match: (EqPtr (LocalAddr _ _) (Addr _)) - // cond: - // result: (ConstBool [0]) - for { - _ = v.Args[1] - v_0 := v.Args[0] - if v_0.Op != OpLocalAddr { - break - } - _ = v_0.Args[1] - v_1 := v.Args[1] - if v_1.Op != OpAddr { - break - } - v.reset(OpConstBool) - v.AuxInt = 0 - return true - } // match: (EqPtr (AddPtr p1 o1) p2) // cond: isSamePtr(p1, p2) // result: (Not (IsNonNil o1)) @@ -27414,11 +27378,6 @@ func rewriteValuegeneric_OpEqPtr_10(v *Value) bool { v.AddArg(v0) return true } - return false -} -func rewriteValuegeneric_OpEqPtr_20(v *Value) bool { - b := v.Block - typ := &b.Func.Config.Types // match: (EqPtr p (Const32 [0])) // cond: // result: (Not (IsNonNil p)) @@ -27456,6 +27415,11 @@ func rewriteValuegeneric_OpEqPtr_20(v *Value) bool { v.AddArg(v0) return true } + return false +} +func rewriteValuegeneric_OpEqPtr_20(v *Value) bool { + b := v.Block + typ := &b.Func.Config.Types // match: (EqPtr p (Const64 [0])) // cond: // result: (Not (IsNonNil p)) @@ -38662,42 +38626,6 @@ func rewriteValuegeneric_OpNeqPtr_10(v *Value) bool { v.AuxInt = 1 return true } - // match: (NeqPtr (Addr _) (LocalAddr _ _)) - // cond: - // result: (ConstBool [1]) - for { - _ = v.Args[1] - v_0 := v.Args[0] - if v_0.Op != OpAddr { - break - } - v_1 := v.Args[1] - if v_1.Op != OpLocalAddr { - break - } - _ = v_1.Args[1] - v.reset(OpConstBool) - v.AuxInt = 1 - return true - } - // match: (NeqPtr (LocalAddr _ _) (Addr _)) - // cond: - // result: (ConstBool [1]) - for { - _ = v.Args[1] - v_0 := v.Args[0] - if v_0.Op != OpLocalAddr { - break - } - _ = v_0.Args[1] - v_1 := v.Args[1] - if v_1.Op != OpAddr { - break - } - v.reset(OpConstBool) - v.AuxInt = 1 - return true - } // match: (NeqPtr (AddPtr p1 o1) p2) // cond: isSamePtr(p1, p2) // result: (IsNonNil o1) @@ -38751,9 +38679,6 @@ func rewriteValuegeneric_OpNeqPtr_10(v *Value) bool { v.AddArg(p) return true } - return false -} -func rewriteValuegeneric_OpNeqPtr_20(v *Value) bool { // match: (NeqPtr p (Const32 [0])) // cond: // result: (IsNonNil p) @@ -38787,6 +38712,9 @@ func rewriteValuegeneric_OpNeqPtr_20(v *Value) bool { v.AddArg(p) return true } + return false +} +func rewriteValuegeneric_OpNeqPtr_20(v *Value) bool { // match: (NeqPtr p (Const64 [0])) // cond: // result: (IsNonNil p)