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

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

Issue 1844413002: Use EmbedderHeapTracer instead of object grouping when trace_embedder_heap flag is set (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Move logic from heap to mark compact Created 4 years, 8 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/incremental-marking.cc ('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 cd207bcda27ba792ec2291abead68006c86932be..b4bf0019a6a76837573f63ed4e34dc13ff368897 100644
--- a/src/heap/mark-compact.h
+++ b/src/heap/mark-compact.h
@@ -577,6 +577,20 @@ class MarkCompactCollector {
return nullptr;
}
+ std::vector<std::pair<void*, void*>>& wrappers_to_trace() {
+ return wrappers_to_trace_;
+ }
+
+ void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
+
+ EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; }
+
+ bool UsingEmbedderHeapTracer() { return embedder_heap_tracer(); }
+
+ void TracePossibleWrapper(JSObject* js_object);
+
+ void RegisterExternallyReferencedObject(Object** object);
+
private:
class EvacuateNewSpaceVisitor;
class EvacuateOldSpaceVisitor;
@@ -678,8 +692,8 @@ class MarkCompactCollector {
// or overflowed in the heap. This respects references only considered in
// the final atomic marking pause including the following:
// - Processing of objects reachable through Harmony WeakMaps.
- // - Objects reachable due to host application logic like object groups
- // or implicit references' groups.
+ // - Objects reachable due to host application logic like object groups,
+ // implicit references' groups, or embedder heap tracing.
void ProcessEphemeralMarking(ObjectVisitor* visitor,
bool only_process_harmony_weak_collections);
@@ -813,7 +827,12 @@ class MarkCompactCollector {
base::VirtualMemory* marking_deque_memory_;
size_t marking_deque_memory_committed_;
MarkingDeque marking_deque_;
+ std::vector<std::pair<void*, void*>> wrappers_to_trace_;
+
CodeFlusher* code_flusher_;
+
+ EmbedderHeapTracer* embedder_heap_tracer_;
+
bool have_code_to_deoptimize_;
List<Page*> evacuation_candidates_;
« no previous file with comments | « src/heap/incremental-marking.cc ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698