Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index cfb2d9d27022f033341acce33c68212faa8ac31a..1c233ea5d8ef56ed35b597df3107d62a022afbe4 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -406,7 +406,8 @@ class MarkCompactCollector { |
void MigrateObject(HeapObject* dst, HeapObject* src, int size, |
AllocationSpace to_old_space, |
- SlotsBuffer** evacuation_slots_buffer); |
+ SlotsBuffer** evacuation_slots_buffer, |
+ LocalStoreBuffer* local_store_buffer); |
void InvalidateCode(Code* code); |
@@ -421,7 +422,8 @@ class MarkCompactCollector { |
// required_freed_bytes was freed. If required_freed_bytes was set to zero |
// then the whole given space is swept. It returns the size of the maximum |
// continuous freed memory chunk. |
- int SweepInParallel(PagedSpace* space, int required_freed_bytes); |
+ int SweepInParallel(PagedSpace* space, int required_freed_bytes, |
+ int max_pages = 0); |
Hannes Payer (out of office)
2016/01/20 13:19:39
Please remove the sweeper change from the CL. This
Michael Lippautz
2016/01/21 10:00:08
Done.
|
// Sweeps a given page concurrently to the sweeper threads. It returns the |
// size of the maximum continuous freed memory chunk. |
@@ -508,11 +510,10 @@ class MarkCompactCollector { |
class EvacuateNewSpaceVisitor; |
class EvacuateOldSpaceVisitor; |
class EvacuateVisitorBase; |
+ class Evacuator; |
class HeapObjectVisitor; |
class SweeperTask; |
- static const int kInitialLocalPretenuringFeedbackCapacity = 256; |
- |
explicit MarkCompactCollector(Heap* heap); |
bool WillBeDeoptimized(Code* code); |
@@ -699,25 +700,18 @@ class MarkCompactCollector { |
void SweepSpaces(); |
void EvacuateNewSpacePrologue(); |
- |
- // Returns local pretenuring feedback. |
- HashMap* EvacuateNewSpaceInParallel(); |
+ void EvacuateNewSpaceEpilogue(); |
void AddEvacuationSlotsBufferSynchronized( |
SlotsBuffer* evacuation_slots_buffer); |
- void EvacuatePages(CompactionSpaceCollection* compaction_spaces, |
- SlotsBuffer** evacuation_slots_buffer); |
- |
void EvacuatePagesInParallel(); |
// The number of parallel compaction tasks, including the main thread. |
- int NumberOfParallelCompactionTasks(); |
+ int NumberOfParallelCompactionTasks(int pages, intptr_t live_bytes); |
- |
- void StartParallelCompaction(CompactionSpaceCollection** compaction_spaces, |
- uint32_t* task_ids, int len); |
- void WaitUntilCompactionCompleted(uint32_t* task_ids, int len); |
+ void StartParallelCompaction(Evacuator** evacuators, int len); |
+ void WaitUntilCompactionCompleted(Evacuator** evacuators, int len); |
void EvacuateNewSpaceAndCandidates(); |
@@ -752,7 +746,8 @@ class MarkCompactCollector { |
// Updates store buffer and slot buffer for a pointer in a migrating object. |
void RecordMigratedSlot(Object* value, Address slot, |
- SlotsBuffer** evacuation_slots_buffer); |
+ SlotsBuffer** evacuation_slots_buffer, |
+ LocalStoreBuffer* local_store_buffer); |
// Adds the code entry slot to the slots buffer. |
void RecordMigratedCodeEntrySlot(Address code_entry, Address code_entry_slot, |
@@ -778,8 +773,7 @@ class MarkCompactCollector { |
bool have_code_to_deoptimize_; |
List<Page*> evacuation_candidates_; |
- |
- List<MemoryChunk*> newspace_evacuation_candidates_; |
+ List<NewSpacePage*> newspace_evacuation_candidates_; |
// The evacuation_slots_buffers_ are used by the compaction threads. |
// When a compaction task finishes, it uses |