Currently when we canonicalize cell liveness data in MarkedBlocks, we set the mark bit for every cell in the block except for those in the free list. This allows us to consider objects that were allocated since the previous collection to be considered live until they have a chance to be properly marked by the collector. If we want to use the mark bits to signify other types of information, e.g. using sticky mark bits for generational collection, we will have to keep track of newly allocated objects in a different fashion when we canonicalize cell liveness. One method would be to allocate a separate set of bits while canonicalizing liveness data. These bits would track the newly allocated objects in the block separately from those objects who had already been marked. We would then check these bits, along with the mark bits, when determining liveness. At the end of the conservative scan, we then throw away these Bitmaps.
Created attachment 171705 [details] Patch
Created attachment 172113 [details] Patch
Comment on attachment 172113 [details] Patch Attachment 172113 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/14714023
Comment on attachment 172113 [details] Patch Attachment 172113 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/14714026
Created attachment 172121 [details] Patch
Comment on attachment 172121 [details] Patch Clearing flags on attachment: 172121 Committed r133358: <http://trac.webkit.org/changeset/133358>
All reviewed patches have been landed. Closing bug.