V8 Project
|
#include <spaces.h>
Static Public Member Functions | |
static MemoryChunk * | FromAddress (Address a) |
static const MemoryChunk * | FromAddress (const byte *a) |
static MemoryChunk * | FromAnyPointerAddress (Heap *heap, Address addr) |
static void | IncrementLiveBytesFromGC (Address address, int by) |
static void | IncrementLiveBytesFromMutator (Address address, int by) |
static uint32_t | FastAddressToMarkbitIndex (Address addr) |
static void | UpdateHighWaterMark (Address mark) |
Static Public Attributes | |
static const int | kWriteBarrierCounterGranularity = 500 |
static const int | kPointersToHereAreInterestingMask |
static const int | kPointersFromHereAreInterestingMask |
static const int | kEvacuationCandidateMask = 1 << EVACUATION_CANDIDATE |
static const int | kSkipEvacuationSlotsRecordingMask |
static const intptr_t | kAlignment |
static const intptr_t | kAlignmentMask = kAlignment - 1 |
static const intptr_t | kSizeOffset = 0 |
static const intptr_t | kLiveBytesOffset |
static const size_t | kSlotsBufferOffset = kLiveBytesOffset + kIntSize |
static const size_t | kWriteBarrierCounterOffset |
static const size_t | kHeaderSize |
static const int | kBodyOffset |
static const int | kObjectStartAlignment = 32 * kPointerSize |
static const int | kObjectStartOffset |
static const int | kFlagsOffset = kPointerSize |
Static Protected Member Functions | |
static MemoryChunk * | Initialize (Heap *heap, Address base, size_t size, Address area_start, Address area_end, Executability executable, Space *owner) |
Protected Attributes | |
size_t | size_ |
intptr_t | flags_ |
Address | area_start_ |
Address | area_end_ |
base::VirtualMemory | reservation_ |
Address | owner_ |
Heap * | heap_ |
int | store_buffer_counter_ |
int | live_byte_count_ |
SlotsBuffer * | slots_buffer_ |
SkipList * | skip_list_ |
intptr_t | write_barrier_counter_ |
int | progress_bar_ |
int | high_water_mark_ |
base::AtomicWord | parallel_sweeping_ |
intptr_t | available_in_small_free_list_ |
intptr_t | available_in_medium_free_list_ |
intptr_t | available_in_large_free_list_ |
intptr_t | available_in_huge_free_list_ |
intptr_t | non_available_small_blocks_ |
Private Attributes | |
base::AtomicWord | next_chunk_ |
base::AtomicWord | prev_chunk_ |
Friends | |
class | MemoryAllocator |
Definition at line 364 of file spaces.h.
|
inline |
Definition at line 287 of file spaces.h.
Referenced by AddressToMarkbitIndex(), CommitArea(), v8::internal::MemoryAllocator::Free(), v8::internal::Heap::FreeQueuedChunks(), IncrementLiveBytesFromGC(), IncrementLiveBytesFromMutator(), Initialize(), v8::internal::Page::INLINE(), is_valid(), IsLeftOfProgressBar(), MarkbitIndexToAddress(), markbits(), v8::internal::Page::OffsetToAddress(), v8::internal::LargeObjectSpace::TearDown(), v8::internal::Heap::UpdateAllocationsHash(), and UpdateHighWaterMark().
Definition at line 586 of file spaces.h.
References address(), and v8::internal::kPointerSizeLog2.
|
inline |
Definition at line 632 of file spaces.h.
References area_end_.
Referenced by v8::internal::NewSpace::AddFreshPage(), v8::internal::HeapObjectIterator::AdvanceToNextPage(), area_size(), CommitArea(), Contains(), ContainsLimit(), v8::internal::Deserializer::FlushICacheForNewCodeObjects(), v8::internal::HeapObjectIterator::HeapObjectIterator(), Initialize(), v8::internal::NewSpacePage::Initialize(), v8::internal::PromotionQueue::insert(), v8::internal::SemiSpace::page_high(), v8::internal::PromotionQueue::RelocateQueueHead(), v8::internal::PromotionQueue::remove(), SetArea(), v8::internal::SemiSpace::space_end(), v8::internal::Sweep(), and v8::internal::Heap::ZapFromSpace().
|
inline |
Definition at line 633 of file spaces.h.
References area_end(), and area_start().
Referenced by v8::internal::LargeObjectSpace::AllocateRaw(), v8::internal::MarkCompactCollector::CollectEvacuationCandidates(), v8::internal::PagedSpace::DecreaseUnsweptFreeBytes(), v8::internal::PagedSpace::FreeEmergencyMemory(), v8::internal::PagedSpace::IncreaseUnsweptFreeBytes(), v8::internal::Page::Initialize(), v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates(), and v8::internal::PagedSpace::ReleasePage().
|
inline |
Definition at line 631 of file spaces.h.
References area_start_.
Referenced by v8::internal::HeapObjectIterator::AdvanceToNextPage(), area_size(), CommitArea(), Contains(), ContainsLimit(), v8::internal::Heap::DoScavenge(), v8::internal::Deoptimizer::EnsureCodeForDeoptimizationEntry(), v8::internal::Deserializer::FlushICacheForNewCodeObjects(), v8::internal::Deoptimizer::GetDeoptimizationEntry(), v8::internal::Deoptimizer::GetDeoptimizationId(), v8::internal::LargePage::GetObject(), v8::internal::HeapObjectIterator::HeapObjectIterator(), Initialize(), v8::internal::NewSpacePage::Initialize(), v8::internal::Page::Initialize(), v8::internal::SemiSpaceIterator::Next(), v8::internal::SemiSpace::page_low(), v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates(), SetArea(), v8::internal::SemiSpace::space_start(), v8::internal::Sweep(), and v8::internal::Heap::ZapFromSpace().
|
inline |
Definition at line 626 of file spaces.h.
References ClearFlag(), DCHECK, EVACUATION_CANDIDATE, NULL, and slots_buffer_.
Referenced by v8::internal::MarkCompactCollector::AbortCompaction(), v8::internal::MarkCompactCollector::CollectEvacuationCandidates(), v8::internal::MarkCompactCollector::EvacuatePages(), and v8::internal::MarkCompactCollector::INLINE().
|
inline |
Definition at line 407 of file spaces.h.
References v8::internal::flag, and flags_.
Referenced by v8::internal::IncrementalMarking::Abort(), v8::internal::MarkCompactCollector::AbortCompaction(), ClearEvacuationCandidate(), v8::internal::Page::ClearWasSwept(), v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::SemiSpace::FlipPages(), initialize_scan_on_scavenge(), v8::internal::PagedSpace::ReleasePage(), ResetProgressBar(), set_scan_on_scavenge(), SetFlagTo(), v8::internal::IncrementalMarking::SetNewSpacePageFlags(), and v8::internal::IncrementalMarking::SetOldSpacePageFlags().
bool v8::internal::MemoryChunk::CommitArea | ( | size_t | requested | ) |
Definition at line 476 of file spaces.cc.
References address(), area_end(), area_end_, area_start(), area_start_, v8::internal::Isolate::code_range(), v8::internal::MemoryAllocator::CodePageGuardSize(), v8::base::OS::CommitPageSize(), v8::internal::CodeRange::CommitRawMemory(), DCHECK, v8::internal::EXECUTABLE, executable(), heap(), heap_, IS_EXECUTABLE, IsFlagSet(), v8::internal::Heap::isolate(), v8::base::VirtualMemory::IsReserved(), v8::internal::Isolate::memory_allocator(), v8::internal::NOT_EXECUTABLE, NULL, reservation_, v8::internal::RoundUp(), v8::internal::Heap::ShouldZapGarbage(), size(), v8::base::VirtualMemory::Uncommit(), v8::internal::CodeRange::UncommitRawMemory(), v8::internal::CodeRange::valid(), and v8::internal::MemoryAllocator::ZapBlock().
Referenced by v8::internal::Deoptimizer::EnsureCodeForDeoptimizationEntry().
|
inline |
Definition at line 637 of file spaces.h.
References high_water_mark_.
Referenced by v8::internal::LargeObjectSpace::CommittedPhysicalMemory().
Definition at line 348 of file spaces.h.
References area_end(), and area_start().
Referenced by v8::internal::Heap::AllocateCode(), v8::internal::StoreBuffer::ExemptPopularPages(), v8::internal::StoreBuffer::Filter(), v8::internal::LargeObjectSpace::FindPage(), and FromAnyPointerAddress().
Definition at line 355 of file spaces.h.
References area_end(), and area_start().
Referenced by v8::internal::NewSpace::limit(), v8::internal::NewSpace::set_top(), v8::internal::Heap::ShouldBePromoted(), and v8::internal::NewSpace::top().
|
inline |
Definition at line 567 of file spaces.h.
References CONTAINS_ONLY_DATA, and IsFlagSet().
|
inline |
Definition at line 563 of file spaces.h.
References v8::internal::EXECUTABLE, IS_EXECUTABLE, IsFlagSet(), and v8::internal::NOT_EXECUTABLE.
Referenced by CommitArea(), v8::internal::MemoryAllocator::Free(), and Initialize().
Definition at line 590 of file spaces.h.
References kAlignmentMask, and v8::internal::kPointerSizeLog2.
Referenced by v8::internal::IsOnInvalidatedCodeObject(), and v8::internal::SetMarkBitsUnderInvalidatedCode().
|
inlinestatic |
Definition at line 276 of file spaces.h.
References kAlignmentMask, and OffsetFrom().
Referenced by v8::internal::IncrementalMarking::Abort(), v8::internal::HeapObjectIterator::AdvanceToNextPage(), v8::internal::Heap::AllocateCode(), v8::internal::Heap::AllocateFillerObject(), v8::internal::Heap::AllowedToBeMigrated(), v8::internal::Heap::CanMoveObjectStart(), v8::internal::MarkCompactCollector::ClearMarkbits(), v8::internal::PagedSpace::Contains(), v8::internal::LargeObjectSpace::Contains(), v8::internal::FreeListCategory::ContainsPageFreeListItemsInList(), v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::FreeListCategory::EvictFreeListItemsInList(), v8::internal::FreeList::FindNodeFor(), v8::internal::PagedSpace::FindObject(), v8::internal::FreeList::Free(), v8::internal::Heap::FreeQueuedChunks(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), FromAnyPointerAddress(), v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer(), v8::internal::HeapObject::GetHeap(), IncrementLiveBytesFromGC(), IncrementLiveBytesFromMutator(), Initialize(), v8::internal::MarkCompactCollector::INLINE(), v8::internal::Page::INLINE(), v8::internal::PromotionQueue::IsBelowPromotionQueue(), v8::internal::IsOnInvalidatedCodeObject(), v8::internal::MarkCompactCollector::MigrateObject(), v8::internal::BASE_EMBEDDED< Visitor >::next(), v8::internal::FreeListCategory::PickNodeFromList(), v8::internal::MarkCompactCollector::RecordCodeEntrySlot(), v8::internal::MarkCompactCollector::RecordRelocSlot(), v8::internal::IncrementalMarking::RecordWriteFromCode(), v8::internal::IncrementalMarking::RecordWrites(), v8::internal::SetMarkBitsUnderInvalidatedCode(), v8::internal::PagedSpace::SetTopAndLimit(), v8::internal::Marking::TransferMark(), v8::internal::SkipList::Update(), v8::internal::Heap::UpdateAllocationsHash(), UpdateHighWaterMark(), v8::internal::IncrementalMarking::UpdateMarkingDequeAfterScavenge(), and v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental().
|
inlinestatic |
Definition at line 279 of file spaces.h.
References kAlignmentMask, and OffsetFrom().
|
inlinestatic |
Definition at line 169 of file spaces-inl.h.
References Contains(), FromAddress(), heap(), v8::internal::Heap::lo_space(), v8::maybe(), v8::internal::LargeObjectIterator::Next(), NULL, OffsetFrom(), and UNREACHABLE.
Referenced by v8::internal::StoreBuffer::EnterDirectlyIntoStoreBuffer(), v8::internal::StoreBuffer::ExemptPopularPages(), and v8::internal::StoreBuffer::Filter().
|
inline |
Definition at line 429 of file spaces.h.
References flags_.
Referenced by v8::internal::SemiSpace::GrowTo(), and v8::internal::SemiSpace::Swap().
|
inline |
Definition at line 603 of file spaces.h.
References heap_.
Referenced by CommitArea(), FromAnyPointerAddress(), v8::internal::HeapObject::GetHeap(), v8::internal::HeapObjectIterator::HeapObjectIterator(), Initialize(), v8::internal::NewSpacePage::Initialize(), v8::internal::LargePage::Initialize(), and v8::internal::Page::Initialize().
|
inline |
Definition at line 471 of file spaces.h.
References DCHECK_LE, live_byte_count_, and size_.
Referenced by IncrementLiveBytesFromGC(), and IncrementLiveBytesFromMutator().
|
inlinestatic |
Definition at line 517 of file spaces.h.
References address(), FromAddress(), and IncrementLiveBytes().
Referenced by v8::internal::Heap::AdjustLiveBytes(), v8::internal::IncrementalMarking::BlackToGreyAndUnshift(), v8::internal::DiscoverGreyObjectsOnPage(), v8::internal::DiscoverGreyObjectsWithIterator(), v8::internal::IncrementalMarking::Hurry(), v8::internal::IncrementalMarkingMarkingVisitor::INLINE(), v8::internal::ScavengingVisitor< marks_handling, logging_and_profiling_mode >::INLINE(), v8::internal::MarkingDeque::INLINE(), v8::internal::MarkBlackOrKeepBlack(), v8::internal::MarkBlackOrKeepGrey(), and v8::internal::MarkObjectGreyDoNotEnqueue().
Definition at line 868 of file spaces.cc.
References address(), FromAddress(), IncrementLiveBytes(), InNewSpace(), owner(), and v8::internal::Page::WasSwept().
Referenced by v8::internal::Heap::AdjustLiveBytes().
|
inline |
Definition at line 575 of file spaces.h.
References IN_FROM_SPACE, and IsFlagSet().
|
staticprotected |
Definition at line 430 of file spaces.cc.
References address(), area_end(), area_end_, area_start(), area_start_, available_in_huge_free_list_, available_in_large_free_list_, available_in_medium_free_list_, available_in_small_free_list_, v8::internal::Bitmap::Clear(), CONTAINS_ONLY_DATA, DCHECK, v8::internal::EXECUTABLE, executable(), flags_, FromAddress(), heap(), heap_, high_water_mark_, initialize_scan_on_scavenge(), InitializeReservedMemory(), IS_EXECUTABLE, kFlagsOffset, kLiveBytesOffset, kWriteBarrierCounterGranularity, live_byte_count_, non_available_small_blocks_, NULL, OFFSET_OF, v8::internal::Heap::old_data_space(), owner(), progress_bar_, ResetLiveBytes(), set_owner(), set_parallel_sweeping(), SetFlag(), size(), size_, skip_list_, slots_buffer_, SWEEPING_DONE, WAS_SWEPT, and write_barrier_counter_.
Referenced by v8::internal::MemoryAllocator::AllocateChunk(), and v8::internal::NewSpacePage::Initialize().
|
inline |
Definition at line 334 of file spaces.h.
References ClearFlag(), SCAN_ON_SCAVENGE, and SetFlag().
Referenced by Initialize(), and v8::internal::NewSpacePage::Initialize().
|
inline |
Definition at line 326 of file spaces.h.
References reservation_, and v8::base::VirtualMemory::Reset().
Referenced by Initialize().
|
inline |
Definition at line 569 of file spaces.h.
References flags_, IN_FROM_SPACE, and IN_TO_SPACE.
Referenced by IncrementLiveBytesFromMutator(), and v8::internal::NewSpacePage::is_anchor().
void v8::internal::MemoryChunk::InsertAfter | ( | MemoryChunk * | other | ) |
Definition at line 528 of file spaces.cc.
References next_chunk(), set_next_chunk(), and set_prev_chunk().
Referenced by v8::internal::SemiSpace::Commit(), v8::internal::PagedSpace::Expand(), v8::internal::SemiSpace::GrowTo(), v8::internal::MarkCompactCollector::MoveEvacuationCandidatesToEndOfPagesList(), and v8::internal::PagedSpace::UseEmergencyMemory().
|
inline |
Definition at line 573 of file spaces.h.
References IN_TO_SPACE, and IsFlagSet().
|
inline |
Definition at line 289 of file spaces.h.
References address(), and NULL.
Referenced by v8::internal::IncrementalMarking::ActivateIncrementalWriteBarrier(), v8::internal::PagedSpace::Contains(), v8::internal::IncrementalMarking::DeactivateIncrementalWriteBarrier(), and v8::internal::LargeObjectSpace::FindPage().
|
inline |
Definition at line 607 of file spaces.h.
References EVACUATION_CANDIDATE, and IsFlagSet().
Referenced by v8::internal::MarkCompactCollector::EvacuateLiveObjectsFromPage(), v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::MarkCompactCollector::EvacuatePages(), v8::internal::FreeList::FindNodeFor(), v8::internal::MemoryAllocator::Free(), v8::internal::MarkCompactCollector::INLINE(), v8::internal::MarkCompactCollector::MoveEvacuationCandidatesToEndOfPagesList(), v8::internal::FreeListCategory::PickNodeFromList(), v8::internal::MarkCompactCollector::RecordCodeEntrySlot(), v8::internal::MarkCompactCollector::RecordRelocSlot(), v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates(), v8::internal::SetMarkBitsUnderInvalidatedCode(), v8::internal::PagedSpace::ShouldBeSweptBySweeperThreads(), v8::internal::Sweep(), and v8::internal::MarkCompactCollector::SweepSpace().
Definition at line 417 of file spaces.h.
References v8::internal::flag, and flags_.
Referenced by v8::internal::IncrementalMarking::Abort(), CommitArea(), ContainsOnlyData(), v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::MarkCompactCollector::EvacuatePages(), executable(), v8::internal::StoreBuffer::Filter(), v8::internal::SemiSpace::FlipPages(), InFromSpace(), v8::internal::NewSpacePage::Initialize(), InToSpace(), IsEvacuationCandidate(), progress_bar(), v8::internal::IncrementalMarking::RecordWrites(), v8::internal::PagedSpace::ReleasePage(), ResetProgressBar(), scan_on_scavenge(), set_progress_bar(), v8::internal::SetMarkBitsUnderInvalidatedCode(), v8::internal::Heap::ShouldBePromoted(), v8::internal::PagedSpace::ShouldBeSweptBySweeperThreads(), v8::internal::MarkCompactCollector::SweepSpace(), v8::internal::IncrementalMarking::UpdateMarkingDequeAfterScavenge(), v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental(), and v8::internal::Page::WasSwept().
Definition at line 510 of file spaces.h.
References address(), DCHECK, kObjectStartOffset, and progress_bar().
|
inline |
Definition at line 480 of file spaces.h.
References DCHECK, live_byte_count_, and size_.
Referenced by v8::internal::MarkCompactCollector::CollectEvacuationCandidates(), v8::internal::PagedSpace::DecreaseUnsweptFreeBytes(), v8::internal::PagedSpace::FreeEmergencyMemory(), v8::internal::FreeListFragmentation(), v8::internal::PagedSpace::IncreaseUnsweptFreeBytes(), v8::internal::PagedSpace::ReleasePage(), and v8::internal::MarkCompactCollector::SweepSpace().
Definition at line 596 of file spaces.h.
References address(), and v8::internal::kPointerSizeLog2.
|
inline |
Definition at line 580 of file spaces.h.
References address(), and kHeaderSize.
Referenced by v8::internal::Bitmap::Clear(), v8::internal::MarkCompactCollector::DiscoverAndEvacuateBlackObjectsOnPage(), v8::internal::IsOnInvalidatedCodeObject(), PrintMarkbits(), and v8::internal::SetMarkBitsUnderInvalidatedCode().
|
inline |
Definition at line 621 of file spaces.h.
References DCHECK, EVACUATION_CANDIDATE, NULL, SetFlag(), and slots_buffer_.
Referenced by v8::internal::MarkCompactCollector::AddEvacuationCandidate().
|
inline |
Definition at line 291 of file spaces.h.
References v8::base::Acquire_Load(), and next_chunk_.
Referenced by v8::internal::Heap::FreeQueuedChunks(), InsertAfter(), v8::internal::Page::next_page(), v8::internal::LargePage::next_page(), v8::internal::NewSpacePage::next_page(), and Unlink().
|
inline |
Definition at line 307 of file spaces.h.
References v8::internal::kPageHeaderTag, v8::internal::kPageHeaderTagMask, NULL, and owner_.
Referenced by v8::internal::Heap::AllocateCode(), v8::internal::Heap::AllocateFillerObject(), v8::internal::Heap::AllowedToBeMigrated(), v8::internal::PagedSpace::Contains(), v8::internal::LargeObjectSpace::Contains(), v8::internal::MarkCompactCollector::EvacuateLiveObjectsFromPage(), v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::MarkCompactCollector::EvacuatePages(), v8::internal::MemoryAllocator::Free(), v8::internal::Heap::FreeQueuedChunks(), v8::internal::HeapObjectIterator::HeapObjectIterator(), IncrementLiveBytesFromMutator(), Initialize(), v8::internal::Page::Initialize(), v8::internal::Page::InitializeAsAnchor(), v8::internal::MarkCompactCollector::INLINE(), v8::internal::IsOnInvalidatedCodeObject(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), v8::internal::MarkCompactCollector::MoveEvacuationCandidatesToEndOfPagesList(), v8::internal::NewSpacePage::NewSpacePage(), v8::internal::Page::next_page(), v8::internal::Page::prev_page(), v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates(), v8::internal::NewSpacePage::semi_space(), v8::internal::Page::set_next_page(), v8::internal::Page::set_prev_page(), v8::internal::IncrementalMarking::SetOldSpacePageFlags(), v8::internal::Heap::UpdateAllocationsHash(), and v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental().
|
inline |
Definition at line 445 of file spaces.h.
References v8::base::Acquire_Load(), and parallel_sweeping_.
Referenced by v8::internal::MarkCompactCollector::EvacuatePages(), v8::internal::MarkCompactCollector::ParallelSweepSpaceComplete(), SweepingCompleted(), and v8::internal::MarkCompactCollector::SweepSpace().
|
inline |
Definition at line 295 of file spaces.h.
References v8::base::Acquire_Load(), and prev_chunk_.
Referenced by v8::internal::Page::prev_page(), v8::internal::NewSpacePage::prev_page(), and Unlink().
|
inline |
Definition at line 584 of file spaces.h.
References markbits(), and v8::internal::Bitmap::Print().
|
inline |
Definition at line 493 of file spaces.h.
References DCHECK, HAS_PROGRESS_BAR, IsFlagSet(), and progress_bar_.
Referenced by IsLeftOfProgressBar(), set_progress_bar(), and v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental().
|
inline |
Definition at line 324 of file spaces.h.
References reservation_.
Referenced by v8::internal::MemoryAllocator::Free().
|
inline |
Definition at line 464 of file spaces.h.
References live_byte_count_, and v8::internal::PrintF().
Referenced by v8::internal::Bitmap::Clear(), v8::internal::MarkCompactCollector::ClearMarkbits(), v8::internal::MarkCompactCollector::EvacuateLiveObjectsFromPage(), v8::internal::SemiSpace::FlipPages(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), Initialize(), v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates(), and v8::internal::Sweep().
|
inline |
Definition at line 503 of file spaces.h.
References ClearFlag(), HAS_PROGRESS_BAR, IsFlagSet(), and set_progress_bar().
Referenced by v8::internal::MarkCompactCollector::ClearMarkbits(), and v8::internal::LargeObjectSpace::FreeUnmarkedObjects().
|
inline |
Definition at line 333 of file spaces.h.
References IsFlagSet(), and SCAN_ON_SCAVENGE.
Referenced by v8::internal::StoreBufferRebuilder::Callback(), v8::internal::StoreBuffer::EnsureSpace(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), v8::internal::StoreBuffer::PrepareForIteration(), set_scan_on_scavenge(), and v8::internal::IncrementalMarking::SetOldSpacePageFlags().
|
inline |
Definition at line 299 of file spaces.h.
References next_chunk_, and v8::base::Release_Store().
Referenced by v8::internal::NewSpacePage::Initialize(), v8::internal::NewSpacePage::InitializeAsAnchor(), InsertAfter(), v8::internal::Heap::QueueMemoryChunkForFree(), v8::internal::LargePage::set_next_page(), v8::internal::NewSpacePage::set_next_page(), v8::internal::Page::set_next_page(), and Unlink().
|
inline |
Definition at line 317 of file spaces.h.
References DCHECK, v8::internal::kPageHeaderTag, v8::internal::kPageHeaderTagMask, owner_, and space().
Referenced by v8::internal::SemiSpace::FlipPages(), v8::internal::Heap::FreeQueuedChunks(), Initialize(), v8::internal::Page::InitializeAsAnchor(), and v8::internal::NewSpacePage::InitializeAsAnchor().
|
inline |
Definition at line 450 of file spaces.h.
References parallel_sweeping_, and v8::base::Release_Store().
Referenced by Initialize(), v8::internal::MarkCompactCollector::ParallelSweepSpaceComplete(), v8::internal::Sweep(), and v8::internal::MarkCompactCollector::SweepSpace().
|
inline |
Definition at line 303 of file spaces.h.
References prev_chunk_, and v8::base::Release_Store().
Referenced by v8::internal::NewSpacePage::Initialize(), v8::internal::NewSpacePage::InitializeAsAnchor(), InsertAfter(), v8::internal::NewSpacePage::set_prev_page(), v8::internal::Page::set_prev_page(), and Unlink().
|
inline |
Definition at line 498 of file spaces.h.
References DCHECK, HAS_PROGRESS_BAR, IsFlagSet(), progress_bar(), and progress_bar_.
Referenced by v8::internal::IncrementalMarking::RecordWrites(), ResetProgressBar(), and v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental().
|
inline |
Definition at line 328 of file spaces.h.
References DCHECK_NOT_NULL, reservation_, and v8::base::VirtualMemory::TakeControl().
Referenced by v8::internal::MemoryAllocator::AllocateChunk().
|
inline |
Definition at line 157 of file spaces-inl.h.
References ClearFlag(), v8::internal::Heap::decrement_scan_on_scavenge_pages(), heap_, v8::internal::Heap::increment_scan_on_scavenge_pages(), v8::internal::Heap::incremental_marking(), scan_on_scavenge(), SCAN_ON_SCAVENGE, SetFlag(), and v8::internal::IncrementalMarking::SetOldSpacePageFlags().
Referenced by v8::internal::StoreBufferRebuilder::Callback(), v8::internal::StoreBuffer::ExemptPopularPages(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), and v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates().
|
inline |
|
inline |
Definition at line 615 of file spaces.h.
References skip_list(), and skip_list_.
Referenced by v8::internal::SkipList::Update().
|
inline |
Definition at line 344 of file spaces.h.
References store_buffer_counter_.
Referenced by v8::internal::StoreBuffer::ExemptPopularPages().
|
inline |
Definition at line 489 of file spaces.h.
References write_barrier_counter_.
Referenced by v8::internal::IncrementalMarking::RecordWriteFromCode().
Definition at line 558 of file spaces.h.
References area_end(), area_end_, area_start(), and area_start_.
Referenced by v8::internal::Heap::FreeQueuedChunks().
|
inline |
Definition at line 405 of file spaces.h.
References v8::internal::flag, and flags_.
Referenced by v8::internal::MarkCompactCollector::EvacuatePages(), v8::internal::SemiSpace::FlipPages(), v8::internal::Heap::FreeQueuedChunks(), Initialize(), v8::internal::NewSpacePage::Initialize(), initialize_scan_on_scavenge(), v8::internal::MarkCompactCollector::INLINE(), MarkEvacuationCandidate(), set_scan_on_scavenge(), SetFlagTo(), v8::internal::IncrementalMarking::SetNewSpacePageFlags(), v8::internal::IncrementalMarking::SetOldSpacePageFlags(), v8::internal::Page::SetWasSwept(), and v8::internal::IncrementalMarkingMarkingVisitor::VisitFixedArrayIncremental().
|
inline |
Definition at line 424 of file spaces.h.
References v8::internal::anonymous_namespace{flags.cc}::flags, and flags_.
Referenced by v8::internal::SemiSpace::FlipPages(), v8::internal::SemiSpace::GrowTo(), and v8::internal::NewSpacePage::InitializeAsAnchor().
Definition at line 409 of file spaces.h.
References ClearFlag(), v8::internal::flag, and SetFlag().
|
inline |
Definition at line 609 of file spaces.h.
References flags_, and kSkipEvacuationSlotsRecordingMask.
Referenced by v8::internal::MarkCompactCollector::INLINE().
|
inline |
Definition at line 554 of file spaces.h.
References size_.
Referenced by v8::internal::LargeObjectSpace::AllocateRaw(), CommitArea(), v8::internal::MemoryAllocator::Free(), v8::internal::Heap::FreeQueuedChunks(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), Initialize(), set_size(), v8::internal::IncrementalMarking::SetOldSpacePageFlags(), and v8::internal::LargeObjectSpace::TearDown().
|
inline |
Definition at line 613 of file spaces.h.
References skip_list_.
Referenced by v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), v8::internal::MemoryAllocator::Free(), v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer(), set_skip_list(), v8::internal::Sweep(), and v8::internal::SkipList::Update().
|
inline |
Definition at line 617 of file spaces.h.
References slots_buffer_.
Referenced by v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates(), and v8::internal::MemoryAllocator::Free().
|
inline |
Definition at line 619 of file spaces.h.
References slots_buffer_.
Referenced by v8::internal::MarkCompactCollector::AbortCompaction(), v8::internal::MarkCompactCollector::EvacuatePages(), v8::internal::MarkCompactCollector::RecordCodeEntrySlot(), v8::internal::MarkCompactCollector::RecordRelocSlot(), and v8::internal::MarkCompactCollector::ReleaseEvacuationCandidates().
|
inline |
Definition at line 343 of file spaces.h.
References store_buffer_counter_.
Referenced by v8::internal::StoreBuffer::ExemptPopularPages().
|
inline |
Definition at line 460 of file spaces.h.
References parallel_sweeping(), and SWEEPING_FINALIZE.
Referenced by v8::internal::HeapObjectIterator::AdvanceToNextPage(), v8::internal::Heap::CanMoveObjectStart(), v8::internal::HeapObjectIterator::HeapObjectIterator(), and v8::internal::StoreBuffer::IteratePointersToNewSpace().
|
inline |
Definition at line 454 of file spaces.h.
References v8::base::Acquire_CompareAndSwap(), parallel_sweeping_, SWEEPING_IN_PROGRESS, and SWEEPING_PENDING.
Referenced by v8::internal::MarkCompactCollector::SweepInParallel().
void v8::internal::MemoryChunk::Unlink | ( | ) |
Definition at line 538 of file spaces.cc.
References next_chunk(), NULL, prev_chunk(), set_next_chunk(), and set_prev_chunk().
Referenced by v8::internal::MarkCompactCollector::MoveEvacuationCandidatesToEndOfPagesList(), and v8::internal::PagedSpace::ReleasePage().
|
inlinestatic |
Definition at line 189 of file spaces-inl.h.
References address(), FromAddress(), high_water_mark_, and NULL.
Referenced by v8::internal::PagedSpace::CommittedPhysicalMemory(), v8::internal::NewSpace::CommittedPhysicalMemory(), v8::internal::PagedSpace::SetTopAndLimit(), and v8::internal::NewSpace::UpdateAllocationInfo().
|
inline |
Definition at line 485 of file spaces.h.
References write_barrier_counter_.
Referenced by v8::internal::IncrementalMarking::RecordWriteFromCode().
|
friend |
|
protected |
Definition at line 647 of file spaces.h.
Referenced by area_end(), CommitArea(), Initialize(), and SetArea().
|
protected |
Definition at line 646 of file spaces.h.
Referenced by area_start(), CommitArea(), Initialize(), and SetArea().
|
protected |
Definition at line 677 of file spaces.h.
Referenced by Initialize(), and v8::internal::Page::ResetFreeListStatistics().
|
protected |
Definition at line 676 of file spaces.h.
Referenced by Initialize(), and v8::internal::Page::ResetFreeListStatistics().
|
protected |
Definition at line 675 of file spaces.h.
Referenced by Initialize(), and v8::internal::Page::ResetFreeListStatistics().
|
protected |
Definition at line 674 of file spaces.h.
Referenced by Initialize(), and v8::internal::Page::ResetFreeListStatistics().
|
protected |
Definition at line 643 of file spaces.h.
Referenced by ClearFlag(), GetFlags(), Initialize(), InNewSpace(), IsFlagSet(), SetFlag(), SetFlags(), and ShouldSkipEvacuationSlotRecording().
|
protected |
Definition at line 655 of file spaces.h.
Referenced by CommitArea(), heap(), Initialize(), and set_scan_on_scavenge().
|
protected |
Definition at line 669 of file spaces.h.
Referenced by CommittedPhysicalMemory(), Initialize(), and UpdateHighWaterMark().
|
static |
Definition at line 523 of file spaces.h.
Referenced by v8::internal::MemoryAllocator::AllocateChunk(), v8::internal::LargeObjectSpace::AllocateRaw(), v8::internal::CodeRange::AllocateRawMemory(), v8::internal::LargeObjectSpace::FindPage(), v8::internal::CodeRange::FreeBlock::FreeBlock(), v8::internal::CodeRange::FreeRawMemory(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), and v8::internal::CodeRange::SetUp().
|
static |
Definition at line 526 of file spaces.h.
Referenced by FastAddressToMarkbitIndex(), FromAddress(), and v8::internal::ObjectAddressForHashing().
|
static |
Definition at line 543 of file spaces.h.
Referenced by v8::internal::PromotionQueue::Initialize().
|
static |
|
static |
Definition at line 605 of file spaces.h.
Referenced by Initialize().
|
static |
Definition at line 539 of file spaces.h.
Referenced by markbits().
|
static |
|
static |
|
static |
Definition at line 550 of file spaces.h.
Referenced by v8::internal::MemoryAllocator::AllocateChunk(), v8::internal::MemoryAllocator::CodePageGuardStartOffset(), v8::internal::NewSpacePage::Initialize(), v8::internal::NewSpacePage::IsAtStart(), IsLeftOfProgressBar(), v8::internal::LargeObjectSpace::ObjectSizeFor(), v8::internal::PagedSpace::PagedSpace(), and v8::internal::Serializer::SpaceAreaSize().
|
static |
|
static |
|
static |
|
static |
Definition at line 400 of file spaces.h.
Referenced by ShouldSkipEvacuationSlotRecording().
|
static |
|
static |
Definition at line 362 of file spaces.h.
Referenced by Initialize(), and v8::internal::IncrementalMarking::RecordWriteFromCode().
|
static |
|
protected |
Definition at line 660 of file spaces.h.
Referenced by IncrementLiveBytes(), Initialize(), LiveBytes(), and ResetLiveBytes().
|
private |
Definition at line 686 of file spaces.h.
Referenced by next_chunk(), and set_next_chunk().
|
protected |
Definition at line 678 of file spaces.h.
Referenced by Initialize(), and v8::internal::Page::ResetFreeListStatistics().
|
protected |
Definition at line 654 of file spaces.h.
Referenced by owner(), and set_owner().
|
protected |
Definition at line 671 of file spaces.h.
Referenced by parallel_sweeping(), set_parallel_sweeping(), and TryParallelSweeping().
|
private |
Definition at line 688 of file spaces.h.
Referenced by prev_chunk(), and set_prev_chunk().
|
protected |
Definition at line 666 of file spaces.h.
Referenced by Initialize(), progress_bar(), and set_progress_bar().
|
protected |
Definition at line 650 of file spaces.h.
Referenced by CommitArea(), InitializeReservedMemory(), reserved_memory(), and set_reserved_memory().
|
protected |
Definition at line 642 of file spaces.h.
Referenced by IncrementLiveBytes(), Initialize(), LiveBytes(), set_size(), and size().
|
protected |
Definition at line 662 of file spaces.h.
Referenced by Initialize(), set_skip_list(), and skip_list().
|
protected |
Definition at line 661 of file spaces.h.
Referenced by ClearEvacuationCandidate(), Initialize(), MarkEvacuationCandidate(), slots_buffer(), and slots_buffer_address().
|
protected |
Definition at line 658 of file spaces.h.
Referenced by set_store_buffer_counter(), and store_buffer_counter().
|
protected |
Definition at line 663 of file spaces.h.
Referenced by Initialize(), set_write_barrier_counter(), and write_barrier_counter().