]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: move v.Pos.line check to warnRule
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 28 May 2018 21:47:35 +0000 (14:47 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Sat, 8 Sep 2018 14:21:45 +0000 (14:21 +0000)
This simplifies the rewrite rules.

Change-Id: Iff062297d42a23cb31ad55e8c733842ecbc07da2
Reviewed-on: https://go-review.googlesource.com/129377
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewritegeneric.go

index aa944b53798d1cbf03272e609b93bfc716f86d14..d0d49c7b8fd71f97523c97dc38db045935516507 100644 (file)
 (NilCheck (Load (OffPtr [c] (SP)) (StaticCall {sym} _)) _)
        && isSameSym(sym, "runtime.newobject")
        && c == config.ctxt.FixedFrameSize() + config.RegSize // offset of return value
-       && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
+       && warnRule(fe.Debug_checknil(), v, "removed nil check")
        -> (Invalid)
 (NilCheck (OffPtr (Load (OffPtr [c] (SP)) (StaticCall {sym} _))) _)
        && isSameSym(sym, "runtime.newobject")
        && c == config.ctxt.FixedFrameSize() + config.RegSize // offset of return value
-       && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
+       && warnRule(fe.Debug_checknil(), v, "removed nil check")
        -> (Invalid)
 
 // Evaluate constant address comparisons.
index ca6280deb1593695f6b7daa58b2ae39f50d4a3fc..18ad7e1e4ad3e206cca81c8dbaf8a70389585bd7 100644 (file)
@@ -646,11 +646,11 @@ func noteRule(s string) bool {
        return true
 }
 
-// warnRule generates compiler debug output with string s when
-// cond is true and the rule is fired.
+// warnRule generates compiler debug output with string s when
+// v is not in autogenerated code, cond is true and the rule has fired.
 func warnRule(cond bool, v *Value, s string) bool {
-       if cond {
-               v.Block.Func.Warnl(v.Pos, s)
+       if pos := v.Pos; pos.Line() > 1 && cond {
+               v.Block.Func.Warnl(pos, s)
        }
        return true
 }
index 81bebede4689e36c5cac3fb18d7e8502b21e8917..d91900d72f9c09bb82f4f23d113bdcbbef9a1491 100644 (file)
@@ -21412,7 +21412,7 @@ func rewriteValuegeneric_OpNilCheck_0(v *Value) bool {
                return true
        }
        // match: (NilCheck (Load (OffPtr [c] (SP)) (StaticCall {sym} _)) _)
-       // cond: isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
+       // cond: isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil(), v, "removed nil check")
        // result: (Invalid)
        for {
                _ = v.Args[1]
@@ -21435,14 +21435,14 @@ func rewriteValuegeneric_OpNilCheck_0(v *Value) bool {
                        break
                }
                sym := v_0_1.Aux
-               if !(isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")) {
+               if !(isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize && warnRule(fe.Debug_checknil(), v, "removed nil check")) {
                        break
                }
                v.reset(OpInvalid)
                return true
        }
        // match: (NilCheck (OffPtr (Load (OffPtr [c] (SP)) (StaticCall {sym} _))) _)
-       // cond: isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
+       // cond: isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil(), v, "removed nil check")
        // result: (Invalid)
        for {
                _ = v.Args[1]
@@ -21469,7 +21469,7 @@ func rewriteValuegeneric_OpNilCheck_0(v *Value) bool {
                        break
                }
                sym := v_0_0_1.Aux
-               if !(isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")) {
+               if !(isSameSym(sym, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize && warnRule(fe.Debug_checknil(), v, "removed nil check")) {
                        break
                }
                v.reset(OpInvalid)