]> Cypherpunks repositories - gostls13.git/commit
runtime: use 1-bit pointer bitmaps in type representation
authorRuss Cox <rsc@golang.org>
Tue, 28 Apr 2015 04:28:47 +0000 (00:28 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 11 May 2015 14:43:33 +0000 (14:43 +0000)
commit6d8a147bef8ee28eb647db21ea91ecb823fa2480
tree1c14bd4162ef484aa775232d3e5abc7a8a16774e
parent7d9e16abc6bea2eb12d718b578f91328af99586a
runtime: use 1-bit pointer bitmaps in type representation

The type information in reflect.Type and the GC programs is now
1 bit per word, down from 2 bits.

The in-memory unrolled type bitmap representation are now
1 bit per word, down from 4 bits.

The conversion from the unrolled (now 1-bit) bitmap to the
heap bitmap (still 4-bit) is not optimized. A followup CL will
work on that, after the heap bitmap has been converted to 2-bit.

The typeDead optimization, in which a special value denotes
that there are no more pointers anywhere in the object, is lost
in this CL. A followup CL will bring it back in the final form of
heapBitsSetType.

Change-Id: If61e67950c16a293b0b516a6fd9a1c755b6d5549
Reviewed-on: https://go-review.googlesource.com/9702
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/internal/gc/reflect.go
src/cmd/internal/ld/data.go
src/cmd/internal/obj/mgc0.go
src/reflect/all_test.go
src/reflect/export_test.go
src/reflect/type.go
src/runtime/export_test.go
src/runtime/gcinfo_test.go
src/runtime/mbarrier.go
src/runtime/mbitmap.go