OLD | NEW |
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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 // address with the mask will result in the start address of the new space | 636 // address with the mask will result in the start address of the new space |
637 // for all addresses in either semispace. | 637 // for all addresses in either semispace. |
638 Address NewSpaceStart() { return new_space_.start(); } | 638 Address NewSpaceStart() { return new_space_.start(); } |
639 uintptr_t NewSpaceMask() { return new_space_.mask(); } | 639 uintptr_t NewSpaceMask() { return new_space_.mask(); } |
640 Address NewSpaceTop() { return new_space_.top(); } | 640 Address NewSpaceTop() { return new_space_.top(); } |
641 | 641 |
642 NewSpace* new_space() { return &new_space_; } | 642 NewSpace* new_space() { return &new_space_; } |
643 OldSpace* old_space() { return old_space_; } | 643 OldSpace* old_space() { return old_space_; } |
644 OldSpace* code_space() { return code_space_; } | 644 OldSpace* code_space() { return code_space_; } |
645 MapSpace* map_space() { return map_space_; } | 645 MapSpace* map_space() { return map_space_; } |
646 CellSpace* cell_space() { return cell_space_; } | |
647 LargeObjectSpace* lo_space() { return lo_space_; } | 646 LargeObjectSpace* lo_space() { return lo_space_; } |
648 PagedSpace* paged_space(int idx) { | 647 PagedSpace* paged_space(int idx) { |
649 switch (idx) { | 648 switch (idx) { |
650 case OLD_SPACE: | 649 case OLD_SPACE: |
651 return old_space(); | 650 return old_space(); |
652 case MAP_SPACE: | 651 case MAP_SPACE: |
653 return map_space(); | 652 return map_space(); |
654 case CELL_SPACE: | |
655 return cell_space(); | |
656 case CODE_SPACE: | 653 case CODE_SPACE: |
657 return code_space(); | 654 return code_space(); |
658 case NEW_SPACE: | 655 case NEW_SPACE: |
659 case LO_SPACE: | 656 case LO_SPACE: |
660 UNREACHABLE(); | 657 UNREACHABLE(); |
661 } | 658 } |
662 return NULL; | 659 return NULL; |
663 } | 660 } |
664 | 661 |
665 bool always_allocate() { return always_allocate_scope_depth_ != 0; } | 662 bool always_allocate() { return always_allocate_scope_depth_ != 0; } |
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1564 int contexts_disposed_; | 1561 int contexts_disposed_; |
1565 | 1562 |
1566 int global_ic_age_; | 1563 int global_ic_age_; |
1567 | 1564 |
1568 int scan_on_scavenge_pages_; | 1565 int scan_on_scavenge_pages_; |
1569 | 1566 |
1570 NewSpace new_space_; | 1567 NewSpace new_space_; |
1571 OldSpace* old_space_; | 1568 OldSpace* old_space_; |
1572 OldSpace* code_space_; | 1569 OldSpace* code_space_; |
1573 MapSpace* map_space_; | 1570 MapSpace* map_space_; |
1574 CellSpace* cell_space_; | |
1575 LargeObjectSpace* lo_space_; | 1571 LargeObjectSpace* lo_space_; |
1576 HeapState gc_state_; | 1572 HeapState gc_state_; |
1577 int gc_post_processing_depth_; | 1573 int gc_post_processing_depth_; |
1578 Address new_space_top_after_last_gc_; | 1574 Address new_space_top_after_last_gc_; |
1579 | 1575 |
1580 // Returns the amount of external memory registered since last global gc. | 1576 // Returns the amount of external memory registered since last global gc. |
1581 int64_t PromotedExternalMemorySize(); | 1577 int64_t PromotedExternalMemorySize(); |
1582 | 1578 |
1583 // How many "runtime allocations" happened. | 1579 // How many "runtime allocations" happened. |
1584 uint32_t allocations_count_; | 1580 uint32_t allocations_count_; |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2169 | 2165 |
2170 int* start_marker; // 0 | 2166 int* start_marker; // 0 |
2171 int* new_space_size; // 1 | 2167 int* new_space_size; // 1 |
2172 int* new_space_capacity; // 2 | 2168 int* new_space_capacity; // 2 |
2173 intptr_t* old_space_size; // 3 | 2169 intptr_t* old_space_size; // 3 |
2174 intptr_t* old_space_capacity; // 4 | 2170 intptr_t* old_space_capacity; // 4 |
2175 intptr_t* code_space_size; // 5 | 2171 intptr_t* code_space_size; // 5 |
2176 intptr_t* code_space_capacity; // 6 | 2172 intptr_t* code_space_capacity; // 6 |
2177 intptr_t* map_space_size; // 7 | 2173 intptr_t* map_space_size; // 7 |
2178 intptr_t* map_space_capacity; // 8 | 2174 intptr_t* map_space_capacity; // 8 |
2179 intptr_t* cell_space_size; // 9 | 2175 intptr_t* lo_space_size; // 9 |
2180 intptr_t* cell_space_capacity; // 10 | 2176 int* global_handle_count; // 10 |
2181 intptr_t* lo_space_size; // 11 | 2177 int* weak_global_handle_count; // 11 |
2182 int* global_handle_count; // 12 | 2178 int* pending_global_handle_count; // 12 |
2183 int* weak_global_handle_count; // 13 | 2179 int* near_death_global_handle_count; // 13 |
2184 int* pending_global_handle_count; // 14 | 2180 int* free_global_handle_count; // 14 |
2185 int* near_death_global_handle_count; // 15 | 2181 intptr_t* memory_allocator_size; // 15 |
2186 int* free_global_handle_count; // 16 | 2182 intptr_t* memory_allocator_capacity; // 16 |
2187 intptr_t* memory_allocator_size; // 17 | 2183 int* objects_per_type; // 17 |
2188 intptr_t* memory_allocator_capacity; // 18 | 2184 int* size_per_type; // 18 |
2189 int* objects_per_type; // 19 | 2185 int* os_error; // 19 |
2190 int* size_per_type; // 20 | 2186 int* end_marker; // 20 |
2191 int* os_error; // 21 | |
2192 int* end_marker; // 22 | |
2193 }; | 2187 }; |
2194 | 2188 |
2195 | 2189 |
2196 class AlwaysAllocateScope { | 2190 class AlwaysAllocateScope { |
2197 public: | 2191 public: |
2198 explicit inline AlwaysAllocateScope(Isolate* isolate); | 2192 explicit inline AlwaysAllocateScope(Isolate* isolate); |
2199 inline ~AlwaysAllocateScope(); | 2193 inline ~AlwaysAllocateScope(); |
2200 | 2194 |
2201 private: | 2195 private: |
2202 // Implicitly disable artificial allocation failures. | 2196 // Implicitly disable artificial allocation failures. |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2602 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2596 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2603 | 2597 |
2604 private: | 2598 private: |
2605 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2599 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2606 }; | 2600 }; |
2607 #endif // DEBUG | 2601 #endif // DEBUG |
2608 } | 2602 } |
2609 } // namespace v8::internal | 2603 } // namespace v8::internal |
2610 | 2604 |
2611 #endif // V8_HEAP_HEAP_H_ | 2605 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |