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

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

Issue 881763005: Just visit young array buffers during scavenge. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@split-up-native-context
Patch Set: Created 5 years, 10 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 | « no previous file | src/heap/heap.cc » ('j') | src/heap/heap.cc » ('J')
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_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
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
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
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_
OLDNEW
« no previous file with comments | « no previous file | src/heap/heap.cc » ('j') | src/heap/heap.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698