▲ | tomp 5 days ago | |||||||||||||
A non-moving GC must visit dead objects. | ||||||||||||||
▲ | pizlonator 5 days ago | parent | next [-] | |||||||||||||
Not quite. FUGC used a bit vector SIMD sweep using a bit vector on the side so it doesn’t visit the dead objects at all in the sense that it doesn’t touch their contents. And it only visits them in the sense that a single instruction deals with many dead or alive objects at once. | ||||||||||||||
▲ | writebetterc 5 days ago | parent | prev [-] | |||||||||||||
I forgot that this GC is non-moving (I'm not used to that assumption, and it was a bit of a quick comment). I do find the statement dubious still, do you mind clearing it up for me? Given a page { void* addr; size_t size; size_t alignment; BitMap used; } where used's size in bits is page.size / page.alignment, surely we only need to visit the used bitmap for marking a memory slot as free? | ||||||||||||||
|