Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index cc5449f97765e7d1a6c2993b963ff569edc2df89..e8407dfd0eb58b3ae68619c45b49c3985a409378 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -7,7 +7,6 @@ |
#include "src/base/bits.h" |
#include "src/heap/spaces.h" |
-#include "src/heap/store-buffer.h" |
namespace v8 { |
namespace internal { |
@@ -407,8 +406,7 @@ |
void MigrateObject(HeapObject* dst, HeapObject* src, int size, |
AllocationSpace to_old_space, |
- SlotsBuffer** evacuation_slots_buffer, |
- LocalStoreBuffer* local_store_buffer); |
+ SlotsBuffer** evacuation_slots_buffer); |
void InvalidateCode(Code* code); |
@@ -511,11 +509,12 @@ |
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); |
@@ -705,18 +704,25 @@ |
void SweepSpaces(); |
void EvacuateNewSpacePrologue(); |
- void EvacuateNewSpaceEpilogue(); |
+ |
+ // Returns local pretenuring feedback. |
+ HashMap* EvacuateNewSpaceInParallel(); |
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 pages, intptr_t live_bytes); |
- |
- void StartParallelCompaction(Evacuator** evacuators, int len); |
- void WaitUntilCompactionCompleted(Evacuator** evacuators, int len); |
+ int NumberOfParallelCompactionTasks(); |
+ |
+ |
+ void StartParallelCompaction(CompactionSpaceCollection** compaction_spaces, |
+ uint32_t* task_ids, int len); |
+ void WaitUntilCompactionCompleted(uint32_t* task_ids, int len); |
void EvacuateNewSpaceAndCandidates(); |
@@ -745,8 +751,7 @@ |
// Updates store buffer and slot buffer for a pointer in a migrating object. |
void RecordMigratedSlot(Object* value, Address slot, |
- SlotsBuffer** evacuation_slots_buffer, |
- LocalStoreBuffer* local_store_buffer); |
+ SlotsBuffer** evacuation_slots_buffer); |
// Adds the code entry slot to the slots buffer. |
void RecordMigratedCodeEntrySlot(Address code_entry, Address code_entry_slot, |
@@ -772,7 +777,8 @@ |
bool have_code_to_deoptimize_; |
List<Page*> evacuation_candidates_; |
- List<NewSpacePage*> newspace_evacuation_candidates_; |
+ |
+ List<MemoryChunk*> newspace_evacuation_candidates_; |
// The evacuation_slots_buffers_ are used by the compaction threads. |
// When a compaction task finishes, it uses |