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