Chromium Code Reviews| Index: src/heap/mark-compact.h |
| diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
| index 00620423fa689ef66d541c3ad5dcb6904e418916..9bb51c21a50451d13c9ff24044831656db0ecdeb 100644 |
| --- a/src/heap/mark-compact.h |
| +++ b/src/heap/mark-compact.h |
| @@ -424,8 +424,16 @@ enum PageEvacuationMode { NEW_TO_NEW, NEW_TO_OLD }; |
| class MinorMarkCompactCollector { |
|
Hannes Payer (out of office)
2017/04/21 14:35:18
Would it make sense to have a higher level abstrac
Michael Lippautz
2017/04/24 13:15:08
Yes, I started implementing that in a smaller CL o
|
| public: |
| + MarkingState marking_state(HeapObject* object) const { |
| + return MarkingState::External(object); |
| + } |
| + |
| + MarkingState marking_state(MemoryChunk* chunk) const { |
| + return MarkingState::External(chunk); |
| + } |
| + |
| explicit MinorMarkCompactCollector(Heap* heap) |
| - : heap_(heap), marking_deque_(heap) {} |
| + : heap_(heap), marking_deque_(heap), page_parallel_job_semaphore_(0) {} |
| void SetUp(); |
| void TearDown(); |
| @@ -447,9 +455,19 @@ class MinorMarkCompactCollector { |
| void MarkLiveObjects(); |
| void ProcessMarkingDeque(); |
| void EmptyMarkingDeque(); |
| + void ClearNonLiveReferences(); |
| + |
| + void EvacuatePrologue(); |
| + void EvacuateEpilogue(); |
| + void EvacuateNewSpace(std::vector<HeapObject*>* black_allocation_objects); |
| + void EvacuatePagesInParallel( |
| + std::vector<HeapObject*>* black_allocation_objects); |
| + void UpdatePointersAfterEvacuation(); |
| Heap* heap_; |
| MarkingDeque marking_deque_; |
| + base::Semaphore page_parallel_job_semaphore_; |
| + List<Page*> new_space_evacuation_pages_; |
| friend class StaticYoungGenerationMarkingVisitor; |
| }; |
| @@ -541,6 +559,14 @@ class MarkCompactCollector { |
| kClearMarkbits, |
| }; |
| + MarkingState marking_state(HeapObject* object) const { |
| + return MarkingState::Internal(object); |
| + } |
| + |
| + MarkingState marking_state(MemoryChunk* chunk) const { |
| + return MarkingState::Internal(chunk); |
| + } |
| + |
| static void Initialize(); |
| static SlotCallbackResult CheckAndMarkObject(Heap* heap, |
| @@ -793,9 +819,6 @@ class MarkCompactCollector { |
| void EvacuateEpilogue(); |
| void EvacuatePagesInParallel(); |
| - // The number of parallel compaction tasks, including the main thread. |
| - int NumberOfParallelCompactionTasks(int pages, intptr_t live_bytes); |
| - |
| void EvacuateNewSpaceAndCandidates(); |
| void UpdatePointersAfterEvacuation(); |