]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: remove redundant rules
authorJosh Bleecher Snyder <josharian@gmail.com>
Thu, 6 Jun 2019 18:26:55 +0000 (11:26 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Thu, 29 Aug 2019 19:32:42 +0000 (19:32 +0000)
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 <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/rewritegeneric.go

index 347bf2a00f771c479fa055913954e2f2cd2238df..8f2ff28879ed65275c4e5aab7e8e9dfb11c8461c 100644 (file)
 
 (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))
index 6b0cd050478d6cab0e5b6abcaf2b92626fbb663e..e3a123e1d23f0333620e73a0949fd3a6d47254a0 100644 (file)
@@ -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)