| 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 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1607 // Indicates that inline bump-pointer allocation has been globally disabled | 1607 // Indicates that inline bump-pointer allocation has been globally disabled |
| 1608 // for all spaces. This is used to disable allocations in generated code. | 1608 // for all spaces. This is used to disable allocations in generated code. |
| 1609 bool inline_allocation_disabled_; | 1609 bool inline_allocation_disabled_; |
| 1610 | 1610 |
| 1611 // Weak list heads, threaded through the objects. | 1611 // Weak list heads, threaded through the objects. |
| 1612 // List heads are initilized lazily and contain the undefined_value at start. | 1612 // List heads are initilized lazily and contain the undefined_value at start. |
| 1613 Object* native_contexts_list_; | 1613 Object* native_contexts_list_; |
| 1614 Object* array_buffers_list_; | 1614 Object* array_buffers_list_; |
| 1615 Object* allocation_sites_list_; | 1615 Object* allocation_sites_list_; |
| 1616 | 1616 |
| 1617 Object* last_array_buffers_young_object_; |
| 1618 Object* last_native_contexts_young_object_; |
| 1619 |
| 1617 // WeakHashTable that maps objects embedded in optimized code to dependent | 1620 // WeakHashTable that maps objects embedded in optimized code to dependent |
| 1618 // code list. It is initilized lazily and contains the undefined_value at | 1621 // code list. It is initilized lazily and contains the undefined_value at |
| 1619 // start. | 1622 // start. |
| 1620 Object* weak_object_to_code_table_; | 1623 Object* weak_object_to_code_table_; |
| 1621 | 1624 |
| 1622 // List of encountered weak collections (JSWeakMap and JSWeakSet) during | 1625 // List of encountered weak collections (JSWeakMap and JSWeakSet) during |
| 1623 // marking. It is initialized during marking, destroyed after marking and | 1626 // marking. It is initialized during marking, destroyed after marking and |
| 1624 // contains Smi(0) while marking is not active. | 1627 // contains Smi(0) while marking is not active. |
| 1625 Object* encountered_weak_collections_; | 1628 Object* encountered_weak_collections_; |
| 1626 | 1629 |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1943 static void ScavengeStoreBufferCallback(Heap* heap, MemoryChunk* page, | 1946 static void ScavengeStoreBufferCallback(Heap* heap, MemoryChunk* page, |
| 1944 StoreBufferEvent event); | 1947 StoreBufferEvent event); |
| 1945 | 1948 |
| 1946 // Performs a major collection in the whole heap. | 1949 // Performs a major collection in the whole heap. |
| 1947 void MarkCompact(); | 1950 void MarkCompact(); |
| 1948 | 1951 |
| 1949 // Code to be run before and after mark-compact. | 1952 // Code to be run before and after mark-compact. |
| 1950 void MarkCompactPrologue(); | 1953 void MarkCompactPrologue(); |
| 1951 void MarkCompactEpilogue(); | 1954 void MarkCompactEpilogue(); |
| 1952 | 1955 |
| 1953 void ProcessNativeContexts(WeakObjectRetainer* retainer); | 1956 void ProcessNativeContexts(WeakObjectRetainer* retainer, |
| 1954 void ProcessArrayBuffers(WeakObjectRetainer* retainer); | 1957 Object* last_native_contexts_young_object); |
| 1958 void ProcessArrayBuffers(WeakObjectRetainer* retainer, |
| 1959 Object* last_array_buffers_young_object); |
| 1955 void ProcessAllocationSites(WeakObjectRetainer* retainer); | 1960 void ProcessAllocationSites(WeakObjectRetainer* retainer); |
| 1956 | 1961 |
| 1957 // Deopts all code that contains allocation instruction which are tenured or | 1962 // Deopts all code that contains allocation instruction which are tenured or |
| 1958 // not tenured. Moreover it clears the pretenuring allocation site statistics. | 1963 // not tenured. Moreover it clears the pretenuring allocation site statistics. |
| 1959 void ResetAllAllocationSitesDependentCode(PretenureFlag flag); | 1964 void ResetAllAllocationSitesDependentCode(PretenureFlag flag); |
| 1960 | 1965 |
| 1961 // Evaluates local pretenuring for the old space and calls | 1966 // Evaluates local pretenuring for the old space and calls |
| 1962 // ResetAllTenuredAllocationSitesDependentCode if too many objects died in | 1967 // ResetAllTenuredAllocationSitesDependentCode if too many objects died in |
| 1963 // the old space. | 1968 // the old space. |
| 1964 void EvaluateOldSpaceLocalPretenuring(uint64_t size_of_objects_before_gc); | 1969 void EvaluateOldSpaceLocalPretenuring(uint64_t size_of_objects_before_gc); |
| (...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2585 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2590 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
| 2586 | 2591 |
| 2587 private: | 2592 private: |
| 2588 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2593 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
| 2589 }; | 2594 }; |
| 2590 #endif // DEBUG | 2595 #endif // DEBUG |
| 2591 } | 2596 } |
| 2592 } // namespace v8::internal | 2597 } // namespace v8::internal |
| 2593 | 2598 |
| 2594 #endif // V8_HEAP_HEAP_H_ | 2599 #endif // V8_HEAP_HEAP_H_ |
| OLD | NEW |