Initialize start bits during allocation instead of Collector::init()
Summary:
Instead of walking all slabs to initialize start bits during
the "init" phase of GC, set start bits during allocation, when
allocating fresh objects from slabs.
This removes the last remaining reason we need to scan slabs
at gc-init time; init is much faster.
Setting & clearing start bits in FreeList::likelyPop()/push()
would be too expensive, so this diff leaves start-bits set
permanently; we ignore free objects as needed, by inspecting
HeaderKind.
Reviewed By: swtaarrs, alexeyt
Differential Revision:
D6603142
fbshipit-source-id:
f746690c03fbafdfd125175b86ded4a0e1c15c5e