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

Side by Side Diff: src/heap/heap.h

Issue 2506633002: [heap] Only visit strong links during scavenge of promoted objects (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | src/heap/heap.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 // serializer/deserializer, since GC does not care about smis. 1148 // serializer/deserializer, since GC does not care about smis.
1149 void IterateSmiRoots(ObjectVisitor* v); 1149 void IterateSmiRoots(ObjectVisitor* v);
1150 // Iterates over all the other roots in the heap. 1150 // Iterates over all the other roots in the heap.
1151 void IterateWeakRoots(ObjectVisitor* v, VisitMode mode); 1151 void IterateWeakRoots(ObjectVisitor* v, VisitMode mode);
1152 1152
1153 // Iterate pointers of promoted objects. 1153 // Iterate pointers of promoted objects.
1154 void IteratePromotedObject(HeapObject* target, int size, 1154 void IteratePromotedObject(HeapObject* target, int size,
1155 bool was_marked_black, 1155 bool was_marked_black,
1156 ObjectSlotCallback callback); 1156 ObjectSlotCallback callback);
1157 1157
1158 void IteratePromotedObjectPointers(HeapObject* object, Address start,
Michael Lippautz 2016/11/15 14:15:37 Removed; this should not be on our API.
1159 Address end, bool record_slots,
1160 ObjectSlotCallback callback);
1161
1162 // =========================================================================== 1158 // ===========================================================================
1163 // Store buffer API. ========================================================= 1159 // Store buffer API. =========================================================
1164 // =========================================================================== 1160 // ===========================================================================
1165 1161
1166 // Write barrier support for object[offset] = o; 1162 // Write barrier support for object[offset] = o;
1167 inline void RecordWrite(Object* object, int offset, Object* o); 1163 inline void RecordWrite(Object* object, int offset, Object* o);
1168 inline void RecordWriteIntoCode(Code* host, RelocInfo* rinfo, Object* target); 1164 inline void RecordWriteIntoCode(Code* host, RelocInfo* rinfo, Object* target);
1169 void RecordWriteIntoCodeSlow(Code* host, RelocInfo* rinfo, Object* target); 1165 void RecordWriteIntoCodeSlow(Code* host, RelocInfo* rinfo, Object* target);
1170 void RecordWritesIntoCode(Code* code); 1166 void RecordWritesIntoCode(Code* code);
1171 inline void RecordFixedArrayElements(FixedArray* array, int offset, 1167 inline void RecordFixedArrayElements(FixedArray* array, int offset,
(...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after
2329 bool delay_sweeper_tasks_for_testing_; 2325 bool delay_sweeper_tasks_for_testing_;
2330 2326
2331 // Classes in "heap" can be friends. 2327 // Classes in "heap" can be friends.
2332 friend class AlwaysAllocateScope; 2328 friend class AlwaysAllocateScope;
2333 friend class GCCallbacksScope; 2329 friend class GCCallbacksScope;
2334 friend class GCTracer; 2330 friend class GCTracer;
2335 friend class HeapIterator; 2331 friend class HeapIterator;
2336 friend class IdleScavengeObserver; 2332 friend class IdleScavengeObserver;
2337 friend class IncrementalMarking; 2333 friend class IncrementalMarking;
2338 friend class IncrementalMarkingJob; 2334 friend class IncrementalMarkingJob;
2339 friend class IteratePromotedObjectsVisitor;
2340 friend class LargeObjectSpace; 2335 friend class LargeObjectSpace;
2341 friend class MarkCompactCollector; 2336 friend class MarkCompactCollector;
2342 friend class MarkCompactMarkingVisitor; 2337 friend class MarkCompactMarkingVisitor;
2343 friend class NewSpace; 2338 friend class NewSpace;
2344 friend class ObjectStatsCollector; 2339 friend class ObjectStatsCollector;
2345 friend class Page; 2340 friend class Page;
2346 friend class PagedSpace; 2341 friend class PagedSpace;
2347 friend class Scavenger; 2342 friend class Scavenger;
2348 friend class StoreBuffer; 2343 friend class StoreBuffer;
2349 friend class TestMemoryAllocatorScope; 2344 friend class TestMemoryAllocatorScope;
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
2642 friend class LargeObjectSpace; 2637 friend class LargeObjectSpace;
2643 friend class NewSpace; 2638 friend class NewSpace;
2644 friend class PagedSpace; 2639 friend class PagedSpace;
2645 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2640 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2646 }; 2641 };
2647 2642
2648 } // namespace internal 2643 } // namespace internal
2649 } // namespace v8 2644 } // namespace v8
2650 2645
2651 #endif // V8_HEAP_HEAP_H_ 2646 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | src/heap/heap.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698