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

Unified Diff: src/heap/heap.h

Issue 904633003: Just visit young array buffers during scavenge. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 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/factory.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.h
diff --git a/src/heap/heap.h b/src/heap/heap.h
index 89885782b4507b867248e46848d3bd9e5ce58964..ed4ea0bc9470d7422ff4c5cf7835d73105576fea 100644
--- a/src/heap/heap.h
+++ b/src/heap/heap.h
@@ -853,6 +853,13 @@ class Heap {
void set_array_buffers_list(Object* object) { array_buffers_list_ = object; }
Object* array_buffers_list() const { return array_buffers_list_; }
+ void set_new_array_buffer_views_list(Object* object) {
+ new_array_buffer_views_list_ = object;
+ }
+ Object* new_array_buffer_views_list() const {
+ return new_array_buffer_views_list_;
+ }
+
void set_allocation_sites_list(Object* object) {
allocation_sites_list_ = object;
}
@@ -1453,6 +1460,11 @@ class Heap {
bool deserialization_complete() const { return deserialization_complete_; }
+ bool promotion_failure() const { return promotion_failure_; }
+ void set_promotion_failure(bool promotion_failure) {
+ promotion_failure_ = promotion_failure;
+ }
+
protected:
// Methods made available to tests.
@@ -1618,13 +1630,18 @@ class Heap {
bool inline_allocation_disabled_;
// Weak list heads, threaded through the objects.
- // List heads are initilized lazily and contain the undefined_value at start.
+ // List heads are initialized lazily and contain the undefined_value at start.
Object* native_contexts_list_;
Object* array_buffers_list_;
Object* allocation_sites_list_;
+ // This is a global list of array buffer views in new space. When the views
+ // get promoted, they are removed form the list and added to the corresponding
+ // array buffer.
+ Object* new_array_buffer_views_list_;
+
// WeakHashTable that maps objects embedded in optimized code to dependent
- // code list. It is initilized lazily and contains the undefined_value at
+ // code list. It is initialized lazily and contains the undefined_value at
// start.
Object* weak_object_to_code_table_;
@@ -1960,7 +1977,8 @@ class Heap {
void MarkCompactEpilogue();
void ProcessNativeContexts(WeakObjectRetainer* retainer);
- void ProcessArrayBuffers(WeakObjectRetainer* retainer);
+ void ProcessArrayBuffers(WeakObjectRetainer* retainer, bool stop_after_young);
+ void ProcessNewArrayBufferViews(WeakObjectRetainer* retainer);
void ProcessAllocationSites(WeakObjectRetainer* retainer);
// Deopts all code that contains allocation instruction which are tenured or
@@ -2133,6 +2151,11 @@ class Heap {
bool deserialization_complete_;
+ // A promotion failure indicates that old space promotion failed during
+ // gc, i.e., some objects that should have gotten promoted had to stay in
+ // the new space (they were copied to the other semi-space).
+ bool promotion_failure_;
+
friend class AlwaysAllocateScope;
friend class Deserializer;
friend class Factory;
« no previous file with comments | « src/factory.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698