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

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

Issue 1608583002: New page local store buffer. (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 unified diff | Download patch
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 842 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 853
854 // Converts the given boolean condition to JavaScript boolean value. 854 // Converts the given boolean condition to JavaScript boolean value.
855 inline Object* ToBoolean(bool condition); 855 inline Object* ToBoolean(bool condition);
856 856
857 // Check whether the heap is currently iterable. 857 // Check whether the heap is currently iterable.
858 bool IsHeapIterable(); 858 bool IsHeapIterable();
859 859
860 // Notify the heap that a context has been disposed. 860 // Notify the heap that a context has been disposed.
861 int NotifyContextDisposed(bool dependant_context); 861 int NotifyContextDisposed(bool dependant_context);
862 862
863 inline void increment_scan_on_scavenge_pages() {
864 scan_on_scavenge_pages_++;
865 if (FLAG_gc_verbose) {
866 PrintF("Scan-on-scavenge pages: %d\n", scan_on_scavenge_pages_);
867 }
868 }
869
870 inline void decrement_scan_on_scavenge_pages() {
871 scan_on_scavenge_pages_--;
872 if (FLAG_gc_verbose) {
873 PrintF("Scan-on-scavenge pages: %d\n", scan_on_scavenge_pages_);
874 }
875 }
876
877 void set_native_contexts_list(Object* object) { 863 void set_native_contexts_list(Object* object) {
878 native_contexts_list_ = object; 864 native_contexts_list_ = object;
879 } 865 }
880 Object* native_contexts_list() const { return native_contexts_list_; } 866 Object* native_contexts_list() const { return native_contexts_list_; }
881 867
882 void set_allocation_sites_list(Object* object) { 868 void set_allocation_sites_list(Object* object) {
883 allocation_sites_list_ = object; 869 allocation_sites_list_ = object;
884 } 870 }
885 Object* allocation_sites_list() { return allocation_sites_list_; } 871 Object* allocation_sites_list() { return allocation_sites_list_; }
886 872
(...skipping 802 matching lines...) Expand 10 before | Expand all | Expand 10 after
1689 static const int kMaxMarkCompactsInIdleRound = 7; 1675 static const int kMaxMarkCompactsInIdleRound = 7;
1690 static const int kIdleScavengeThreshold = 5; 1676 static const int kIdleScavengeThreshold = 5;
1691 1677
1692 static const int kInitialFeedbackCapacity = 256; 1678 static const int kInitialFeedbackCapacity = 256;
1693 1679
1694 Heap(); 1680 Heap();
1695 1681
1696 static String* UpdateNewSpaceReferenceInExternalStringTableEntry( 1682 static String* UpdateNewSpaceReferenceInExternalStringTableEntry(
1697 Heap* heap, Object** pointer); 1683 Heap* heap, Object** pointer);
1698 1684
1699 static void ScavengeStoreBufferCallback(Heap* heap, MemoryChunk* page,
1700 StoreBufferEvent event);
1701
1702 // Selects the proper allocation space based on the pretenuring decision. 1685 // Selects the proper allocation space based on the pretenuring decision.
1703 static AllocationSpace SelectSpace(PretenureFlag pretenure) { 1686 static AllocationSpace SelectSpace(PretenureFlag pretenure) {
1704 return (pretenure == TENURED) ? OLD_SPACE : NEW_SPACE; 1687 return (pretenure == TENURED) ? OLD_SPACE : NEW_SPACE;
1705 } 1688 }
1706 1689
1707 #define ROOT_ACCESSOR(type, name, camel_name) \ 1690 #define ROOT_ACCESSOR(type, name, camel_name) \
1708 inline void set_##name(type* value); 1691 inline void set_##name(type* value);
1709 ROOT_LIST(ROOT_ACCESSOR) 1692 ROOT_LIST(ROOT_ACCESSOR)
1710 #undef ROOT_ACCESSOR 1693 #undef ROOT_ACCESSOR
1711 1694
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
2206 // For keeping track of context disposals. 2189 // For keeping track of context disposals.
2207 int contexts_disposed_; 2190 int contexts_disposed_;
2208 2191
2209 // The length of the retained_maps array at the time of context disposal. 2192 // The length of the retained_maps array at the time of context disposal.
2210 // This separates maps in the retained_maps array that were created before 2193 // This separates maps in the retained_maps array that were created before
2211 // and after context disposal. 2194 // and after context disposal.
2212 int number_of_disposed_maps_; 2195 int number_of_disposed_maps_;
2213 2196
2214 int global_ic_age_; 2197 int global_ic_age_;
2215 2198
2216 int scan_on_scavenge_pages_;
2217
2218 NewSpace new_space_; 2199 NewSpace new_space_;
2219 OldSpace* old_space_; 2200 OldSpace* old_space_;
2220 OldSpace* code_space_; 2201 OldSpace* code_space_;
2221 MapSpace* map_space_; 2202 MapSpace* map_space_;
2222 LargeObjectSpace* lo_space_; 2203 LargeObjectSpace* lo_space_;
2223 HeapState gc_state_; 2204 HeapState gc_state_;
2224 int gc_post_processing_depth_; 2205 int gc_post_processing_depth_;
2225 Address new_space_top_after_last_gc_; 2206 Address new_space_top_after_last_gc_;
2226 2207
2227 // Returns the amount of external memory registered since last global gc. 2208 // Returns the amount of external memory registered since last global gc.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2275 2256
2276 // List of encountered weak collections (JSWeakMap and JSWeakSet) during 2257 // List of encountered weak collections (JSWeakMap and JSWeakSet) during
2277 // marking. It is initialized during marking, destroyed after marking and 2258 // marking. It is initialized during marking, destroyed after marking and
2278 // contains Smi(0) while marking is not active. 2259 // contains Smi(0) while marking is not active.
2279 Object* encountered_weak_collections_; 2260 Object* encountered_weak_collections_;
2280 2261
2281 Object* encountered_weak_cells_; 2262 Object* encountered_weak_cells_;
2282 2263
2283 Object* encountered_transition_arrays_; 2264 Object* encountered_transition_arrays_;
2284 2265
2285 StoreBufferRebuilder store_buffer_rebuilder_;
2286
2287 List<GCCallbackPair> gc_epilogue_callbacks_; 2266 List<GCCallbackPair> gc_epilogue_callbacks_;
2288 List<GCCallbackPair> gc_prologue_callbacks_; 2267 List<GCCallbackPair> gc_prologue_callbacks_;
2289 2268
2290 // Total RegExp code ever generated 2269 // Total RegExp code ever generated
2291 double total_regexp_code_generated_; 2270 double total_regexp_code_generated_;
2292 2271
2293 int deferred_counters_[v8::Isolate::kUseCounterFeatureCount]; 2272 int deferred_counters_[v8::Isolate::kUseCounterFeatureCount];
2294 2273
2295 GCTracer* tracer_; 2274 GCTracer* tracer_;
2296 2275
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
2799 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 2778 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
2800 2779
2801 private: 2780 private:
2802 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 2781 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
2803 }; 2782 };
2804 #endif // DEBUG 2783 #endif // DEBUG
2805 } // namespace internal 2784 } // namespace internal
2806 } // namespace v8 2785 } // namespace v8
2807 2786
2808 #endif // V8_HEAP_HEAP_H_ 2787 #endif // V8_HEAP_HEAP_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698