Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1000)

Unified Diff: src/heap/mark-compact.h

Issue 1643473002: Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/heap/heap-inl.h ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/heap/heap-inl.h ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698