]> Cypherpunks repositories - gostls13.git/commitdiff
internal/runtime/maps: speed up modulo
authorMichael Pratt <mpratt@google.com>
Mon, 12 Aug 2024 20:38:58 +0000 (16:38 -0400)
committerGopher Robot <gobot@golang.org>
Mon, 28 Oct 2024 20:35:22 +0000 (20:35 +0000)
For #54766.

Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest-swissmap
Change-Id: Ic47721e101f6fee650e6825a5a241fcd12fa0009
Reviewed-on: https://go-review.googlesource.com/c/go/+/611185
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/internal/runtime/maps/table.go

index 60f426310034ab98763de6415f910b34f2965c4f..232c077db35cda4219b4f2b67c411071215acecf 100644 (file)
@@ -571,7 +571,7 @@ func (it *Iter) Next() {
                //
                // We could avoid most of these lookups if we left a flag
                // behind on the old table to denote that it is stale.
-               dirIdx := int((uint64(it.dirIdx) + it.dirOffset) % uint64(len(it.m.directory)))
+               dirIdx := int((uint64(it.dirIdx) + it.dirOffset) & uint64(len(it.m.directory)-1))
                newTab := it.m.directory[dirIdx]
                if it.tab == nil {
                        if newTab.index != dirIdx {