]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: use math/bits for bvec
authorJosh Bleecher Snyder <josharian@gmail.com>
Tue, 28 May 2019 17:35:26 +0000 (10:35 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Thu, 9 Apr 2020 01:14:53 +0000 (01:14 +0000)
And delete some dead code.

Minor cleanup. Passes toolstash-check.

Change-Id: Ia3c77c6bf14942654d00d125a6221e63a442f3c6
Reviewed-on: https://go-review.googlesource.com/c/go/+/227317
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/bv.go

index 5ddfd5f2caef2738c397c6915e5a677fc36a16ee..e32ab97ad52d2df06b3fe0f6cd9c0c9ac8ff6523 100644 (file)
@@ -4,6 +4,10 @@
 
 package gc
 
+import (
+       "math/bits"
+)
+
 const (
        wordBits  = 32
        wordMask  = wordBits - 1
@@ -108,30 +112,11 @@ func (bv bvec) Next(i int32) int32 {
 
        // Find 1 bit.
        w := bv.b[i>>wordShift] >> uint(i&wordMask)
-
-       for w&1 == 0 {
-               w >>= 1
-               i++
-       }
+       i += int32(bits.TrailingZeros32(w))
 
        return i
 }
 
-// Len returns the minimum number of bits required to represent bv.
-// The result is 0 if no bits are set in bv.
-func (bv bvec) Len() int32 {
-       for wi := len(bv.b) - 1; wi >= 0; wi-- {
-               if w := bv.b[wi]; w != 0 {
-                       for i := wordBits - 1; i >= 0; i-- {
-                               if w>>uint(i) != 0 {
-                                       return int32(wi)*wordBits + int32(i) + 1
-                               }
-                       }
-               }
-       }
-       return 0
-}
-
 func (bv bvec) IsEmpty() bool {
        for _, x := range bv.b {
                if x != 0 {