There is a loop in MState::allocation_start that reads a single revocation / shadow bit at a time to find the start of an allocation:
|
while (!revoker.shadow_bit_get(address) && (address > base)) |
. This is inefficient and could be improved by reading a whole word of bits and using
ctz and other tricks. Probably not a huge deal but worth investigating when we need to improve performance of
heap_free.