]> Cypherpunks repositories - gostls13.git/commit
runtime,internal/runtime/maps: specialized swissmaps
authorMichael Pratt <mpratt@google.com>
Thu, 19 Sep 2024 20:06:40 +0000 (16:06 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 30 Oct 2024 15:14:31 +0000 (15:14 +0000)
commitf782e161623e68e25cc3a81e55dac887afd301d5
treec2a39235416bb55ee8f5bdfa54b77fe79e9d451c
parentb5fec2cf54ff9f7b562cb904a2a025266aec2763
runtime,internal/runtime/maps: specialized swissmaps

Add all the specialized variants that exist for the existing maps.

Like the existing maps, the fast variants do not support indirect
key/elem.

Note that as of this CL, the Get and Put methods on Map/table are
effectively dead. They are only reachable from the internal/runtime/maps
unit tests.

For #54766.

Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest-swissmap
Change-Id: I95297750be6200f34ec483e4cfc897f048c26db7
Reviewed-on: https://go-review.googlesource.com/c/go/+/616463
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Keith Randall <khr@google.com>
17 files changed:
src/cmd/compile/internal/walk/walk.go
src/internal/runtime/maps/map.go
src/internal/runtime/maps/runtime_fast32_swiss.go [new file with mode: 0644]
src/internal/runtime/maps/runtime_fast64_swiss.go [new file with mode: 0644]
src/internal/runtime/maps/runtime_faststr_swiss.go [new file with mode: 0644]
src/internal/runtime/maps/runtime_swiss.go
src/reflect/map_swiss.go
src/runtime/map_fast32_swiss.go
src/runtime/map_fast64_swiss.go
src/runtime/map_faststr_swiss.go
src/runtime/map_swiss.go
test/live.go
test/live_noswiss.go
test/live_regabi.go
test/live_regabi_noswiss.go
test/live_regabi_swiss.go
test/live_swiss.go