]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: eliminate dead code
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 9 Nov 2018 19:45:04 +0000 (11:45 -0800)
committerJosh Bleecher Snyder <josharian@gmail.com>
Fri, 9 Nov 2018 19:57:57 +0000 (19:57 +0000)
During walkexpr, we were assessing whether shifts were bounded.
However, that information was dropped on the floor during SSA conversion.
The SSA backend already finds all bounded shifts that walkexpr could have,
and at negligible extra cost (0.02% in alloc, CPU undetectable).

Change-Id: Ieda1af1a2a3ec99bfdc2b0b704c9b80ce8a34486
Reviewed-on: https://go-review.googlesource.com/c/148897
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/walk.go

index fd484a647244a00361a6d90c6d2da1e4b40928ba..f459cb3decd37327fbce908b3c3f067ed2156d27 100644 (file)
@@ -486,7 +486,7 @@ opswitch:
                OIND, OSPTR, OITAB, OIDATA, OADDR:
                n.Left = walkexpr(n.Left, init)
 
-       case OEFACE, OAND, OSUB, OMUL, OADD, OOR, OXOR:
+       case OEFACE, OAND, OSUB, OMUL, OADD, OOR, OXOR, OLSH, ORSH:
                n.Left = walkexpr(n.Left, init)
                n.Right = walkexpr(n.Right, init)
 
@@ -538,15 +538,6 @@ opswitch:
                        n.SetTypecheck(1)
                }
 
-       case OLSH, ORSH:
-               n.Left = walkexpr(n.Left, init)
-               n.Right = walkexpr(n.Right, init)
-               t := n.Left.Type
-               n.SetBounded(bounded(n.Right, 8*t.Width))
-               if Debug['m'] != 0 && n.Bounded() && !Isconst(n.Right, CTINT) {
-                       Warn("shift bounds check elided")
-               }
-
        case OCOMPLEX:
                // Use results from call expression as arguments for complex.
                if n.Left == nil && n.Right == nil {