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

Side by Side Diff: src/heap/mark-compact.h

Issue 2801073006: Decouple root visitors from object visitors. (Closed)
Patch Set: rebase Created 3 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 unified diff | Download patch
« no previous file with comments | « src/heap/incremental-marking.cc ('k') | src/heap/mark-compact.cc » ('j') | no next file with comments »
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_MARK_COMPACT_H_ 5 #ifndef V8_HEAP_MARK_COMPACT_H_
6 #define V8_HEAP_MARK_COMPACT_H_ 6 #define V8_HEAP_MARK_COMPACT_H_
7 7
8 #include <deque> 8 #include <deque>
9 9
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 // Mark objects reachable (transitively) from objects in the marking stack 680 // Mark objects reachable (transitively) from objects in the marking stack
681 // or overflowed in the heap. 681 // or overflowed in the heap.
682 void ProcessMarkingDeque(); 682 void ProcessMarkingDeque();
683 683
684 // Mark objects reachable (transitively) from objects in the marking stack 684 // Mark objects reachable (transitively) from objects in the marking stack
685 // or overflowed in the heap. This respects references only considered in 685 // or overflowed in the heap. This respects references only considered in
686 // the final atomic marking pause including the following: 686 // the final atomic marking pause including the following:
687 // - Processing of objects reachable through Harmony WeakMaps. 687 // - Processing of objects reachable through Harmony WeakMaps.
688 // - Objects reachable due to host application logic like object groups, 688 // - Objects reachable due to host application logic like object groups,
689 // implicit references' groups, or embedder heap tracing. 689 // implicit references' groups, or embedder heap tracing.
690 void ProcessEphemeralMarking(ObjectVisitor* visitor, 690 void ProcessEphemeralMarking(bool only_process_harmony_weak_collections);
691 bool only_process_harmony_weak_collections);
692 691
693 // If the call-site of the top optimized code was not prepared for 692 // If the call-site of the top optimized code was not prepared for
694 // deoptimization, then treat the maps in the code as strong pointers, 693 // deoptimization, then treat the maps in the code as strong pointers,
695 // otherwise a map can die and deoptimize the code. 694 // otherwise a map can die and deoptimize the code.
696 void ProcessTopOptimizedFrame(ObjectVisitor* visitor); 695 void ProcessTopOptimizedFrame(RootMarkingVisitor* visitor);
697 696
698 // Collects a list of dependent code from maps embedded in optimize code. 697 // Collects a list of dependent code from maps embedded in optimize code.
699 DependentCode* DependentCodeListFromNonLiveMaps(); 698 DependentCode* DependentCodeListFromNonLiveMaps();
700 699
701 // Mark objects reachable (transitively) from objects in the marking 700 // Mark objects reachable (transitively) from objects in the marking
702 // stack. This function empties the marking stack, but may leave 701 // stack. This function empties the marking stack, but may leave
703 // overflowed objects in the heap, in which case the marking stack's 702 // overflowed objects in the heap, in which case the marking stack's
704 // overflow flag will be set. 703 // overflow flag will be set.
705 void EmptyMarkingDeque(); 704 void EmptyMarkingDeque();
706 705
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 ~EvacuationScope() { collector_->set_evacuation(false); } 833 ~EvacuationScope() { collector_->set_evacuation(false); }
835 834
836 private: 835 private:
837 MarkCompactCollector* collector_; 836 MarkCompactCollector* collector_;
838 }; 837 };
839 838
840 } // namespace internal 839 } // namespace internal
841 } // namespace v8 840 } // namespace v8
842 841
843 #endif // V8_HEAP_MARK_COMPACT_H_ 842 #endif // V8_HEAP_MARK_COMPACT_H_
OLDNEW
« 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