• Russ Cox's avatar
    runtime: use 1-bit pointer bitmaps in type representation · 6d8a147b
    Russ Cox authored
    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/9702Reviewed-by: default avatarAustin Clements <austin@google.com>
    6d8a147b
type.go 56.9 KB