Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Specialize heap small and large chunk implementations (#4366)
Prior to this commit, the heap `chunk_t` was generic for both small and large chunks taking up more space than required for either one. This commit specializes the small and large chunk structures by using pointer tagging on the `chunk->m` field to keep track of the chunk type and large chunk slot/shallow/finaliser and the small chunk sizeclass. This should in theory improve performance as now the `large_chunk_t` is 32 bytes and `small_chunk_t` is 36 bytes on 64 bit platforms (while `chunk_t` was previously 44 bytes. There are no logic changes other than whatever was required to support the specialization.
- Loading branch information