-
- Downloads
runtime: align taggable pointers more so we can use low bits for tag
Currently we assume alignment to 8 bytes, so we can steal the low 3 bits. This CL assumes alignment to 512 bytes, so we can steal the low 9 bits. That's 6 extra bits! Aligning to 512 bytes wastes a bit of space but it is not egregious. Most of the objects that we make tagged pointers to are pretty big. Update #49405 Change-Id: I66fc7784ac1be5f12f285de1d7851d5a6871fb75 Reviewed-on: https://go-review.googlesource.com/c/go/+/665815 Reviewed-by:Keith Randall <khr@google.com> Reviewed-by:
Michael Knyszek <mknyszek@google.com> Auto-Submit: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Showing
- src/runtime/export_test.go 4 additions, 2 deletionssrc/runtime/export_test.go
- src/runtime/lfstack.go 2 additions, 10 deletionssrc/runtime/lfstack.go
- src/runtime/lfstack_test.go 1 addition, 1 deletionsrc/runtime/lfstack_test.go
- src/runtime/mgc.go 7 additions, 1 deletionsrc/runtime/mgc.go
- src/runtime/mspanset.go 11 additions, 2 deletionssrc/runtime/mspanset.go
- src/runtime/netpoll.go 6 additions, 2 deletionssrc/runtime/netpoll.go
- src/runtime/tagptr.go 11 additions, 2 deletionssrc/runtime/tagptr.go
- src/runtime/tagptr_32bit.go 3 additions, 0 deletionssrc/runtime/tagptr_32bit.go
- src/runtime/tagptr_64bit.go 20 additions, 14 deletionssrc/runtime/tagptr_64bit.go
Loading
Please register or sign in to comment