We need to remove the back pointer from TraceWrapperMember to enable
(a) better swap() performance of HeapVector<TraceWrapperMember<T>>.
(b) move over the manual write barrier use cases that cannot afford using more memory.
(c) get a dry run on how incremental marking in Oilpan would work.
(a) and (b) are wrapper tracing improvements while (c) is essentially a playground for incremental marking in Oilpan.
Proposed solutions:
(1) Use an object start bitmap located in the page to figure out object starts.
(2) Use a conservative barrier that does not check source mark bits.
(1) is blocked because there is currently no fast way to distinguish regular and large objects and we thus lack a way of looking up the proper page header. Going with (2) for now.
Comment 1 by mlippautz@chromium.org
, Aug 4 2017