Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index e8407dfd0eb58b3ae68619c45b49c3985a409378..cc5449f97765e7d1a6c2993b963ff569edc2df89 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -7,6 +7,7 @@ |
#include "src/base/bits.h" |
#include "src/heap/spaces.h" |
+#include "src/heap/store-buffer.h" |
namespace v8 { |
namespace internal { |
@@ -406,7 +407,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); |
@@ -509,13 +511,12 @@ class MarkCompactCollector { |
class EvacuateNewSpaceVisitor; |
class EvacuateOldSpaceVisitor; |
class EvacuateVisitorBase; |
+ class Evacuator; |
class HeapObjectVisitor; |
class SweeperTask; |
typedef std::vector<Page*> SweepingList; |
- static const int kInitialLocalPretenuringFeedbackCapacity = 256; |
- |
explicit MarkCompactCollector(Heap* heap); |
bool WillBeDeoptimized(Code* code); |
@@ -704,25 +705,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(); |
@@ -751,7 +745,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, |
@@ -777,8 +772,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 |