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

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

Issue 2504193002: [heap] Simplify adjusting of live bytes. (Closed)
Patch Set: fix test Created 4 years, 1 month 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 | « src/heap/scavenger.cc ('k') | src/heap/spaces.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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_SPACES_H_ 5 #ifndef V8_HEAP_SPACES_H_
6 #define V8_HEAP_SPACES_H_ 6 #define V8_HEAP_SPACES_H_
7 7
8 #include <list> 8 #include <list>
9 #include <memory> 9 #include <memory>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 static const int kObjectStartOffset = 360 static const int kObjectStartOffset =
361 kBodyOffset - 1 + 361 kBodyOffset - 1 +
362 (kObjectStartAlignment - (kBodyOffset - 1) % kObjectStartAlignment); 362 (kObjectStartAlignment - (kBodyOffset - 1) % kObjectStartAlignment);
363 363
364 // Page size in bytes. This must be a multiple of the OS page size. 364 // Page size in bytes. This must be a multiple of the OS page size.
365 static const int kPageSize = 1 << kPageSizeBits; 365 static const int kPageSize = 1 << kPageSizeBits;
366 static const intptr_t kPageAlignmentMask = (1 << kPageSizeBits) - 1; 366 static const intptr_t kPageAlignmentMask = (1 << kPageSizeBits) - 1;
367 367
368 static const int kAllocatableMemory = kPageSize - kObjectStartOffset; 368 static const int kAllocatableMemory = kPageSize - kObjectStartOffset;
369 369
370 static inline void IncrementLiveBytesFromMutator(HeapObject* object, int by); 370 static inline void IncrementLiveBytes(HeapObject* object, int by);
371 static inline void IncrementLiveBytesFromGC(HeapObject* object, int by);
372 371
373 // Only works if the pointer is in the first kPageSize of the MemoryChunk. 372 // Only works if the pointer is in the first kPageSize of the MemoryChunk.
374 static MemoryChunk* FromAddress(Address a) { 373 static MemoryChunk* FromAddress(Address a) {
375 return reinterpret_cast<MemoryChunk*>(OffsetFrom(a) & ~kAlignmentMask); 374 return reinterpret_cast<MemoryChunk*>(OffsetFrom(a) & ~kAlignmentMask);
376 } 375 }
377 376
378 static inline MemoryChunk* FromAnyPointerAddress(Heap* heap, Address addr); 377 static inline MemoryChunk* FromAnyPointerAddress(Heap* heap, Address addr);
379 378
380 static inline void UpdateHighWaterMark(Address mark) { 379 static inline void UpdateHighWaterMark(Address mark) {
381 if (mark == nullptr) return; 380 if (mark == nullptr) return;
(...skipping 1645 matching lines...) Expand 10 before | Expand all | Expand 10 after
2027 allocation_info_.Reset(top, limit); 2026 allocation_info_.Reset(top, limit);
2028 } 2027 }
2029 2028
2030 void SetAllocationInfo(Address top, Address limit); 2029 void SetAllocationInfo(Address top, Address limit);
2031 2030
2032 // Empty space allocation info, returning unused area to free list. 2031 // Empty space allocation info, returning unused area to free list.
2033 void EmptyAllocationInfo(); 2032 void EmptyAllocationInfo();
2034 2033
2035 void MarkAllocationInfoBlack(); 2034 void MarkAllocationInfoBlack();
2036 2035
2037 void Allocate(int bytes) { accounting_stats_.AllocateBytes(bytes); } 2036 void AccountAllocatedBytes(size_t bytes) {
2037 accounting_stats_.AllocateBytes(bytes);
2038 }
2038 2039
2039 void IncreaseCapacity(size_t bytes); 2040 void IncreaseCapacity(size_t bytes);
2040 2041
2041 // Releases an unused page and shrinks the space. 2042 // Releases an unused page and shrinks the space.
2042 void ReleasePage(Page* page); 2043 void ReleasePage(Page* page);
2043 2044
2044 // The dummy page that anchors the linked list of pages. 2045 // The dummy page that anchors the linked list of pages.
2045 Page* anchor() { return &anchor_; } 2046 Page* anchor() { return &anchor_; }
2046 2047
2047 2048
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after
2915 PageIterator old_iterator_; 2916 PageIterator old_iterator_;
2916 PageIterator code_iterator_; 2917 PageIterator code_iterator_;
2917 PageIterator map_iterator_; 2918 PageIterator map_iterator_;
2918 LargePageIterator lo_iterator_; 2919 LargePageIterator lo_iterator_;
2919 }; 2920 };
2920 2921
2921 } // namespace internal 2922 } // namespace internal
2922 } // namespace v8 2923 } // namespace v8
2923 2924
2924 #endif // V8_HEAP_SPACES_H_ 2925 #endif // V8_HEAP_SPACES_H_
OLDNEW
« no previous file with comments | « src/heap/scavenger.cc ('k') | src/heap/spaces.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698