V8 Project
|
#include <mark-compact.h>
Classes | |
class | SweeperTask |
Public Types | |
enum | CompactionMode { INCREMENTAL_COMPACTION , NON_INCREMENTAL_COMPACTION } |
enum | SweeperType { PARALLEL_SWEEPING , CONCURRENT_SWEEPING , SEQUENTIAL_SWEEPING } |
enum | SweepingParallelism { SWEEP_ON_MAIN_THREAD , SWEEP_IN_PARALLEL } |
Static Public Member Functions | |
static void | Initialize () |
static void | ReportDeleteIfNeeded (HeapObject *obj, Isolate *isolate) |
static bool | IsMarked (Object *obj) |
Static Public Attributes | |
static const uint32_t | kSingleFreeEncoding = 0 |
static const uint32_t | kMultiFreeEncoding = 1 |
Static Private Member Functions | |
static bool | IsUnmarkedHeapObject (Object **p) |
static bool | IsUnmarkedHeapObjectWithHeap (Heap *heap, Object **p) |
Friends | |
class | RootMarkingVisitor |
class | MarkingVisitor |
class | MarkCompactMarkingVisitor |
class | CodeMarkingVisitor |
class | SharedFunctionInfoMarkingVisitor |
class | Heap |
Definition at line 498 of file mark-compact.h.
Enumerator | |
---|---|
INCREMENTAL_COMPACTION | |
NON_INCREMENTAL_COMPACTION |
Definition at line 520 of file mark-compact.h.
Enumerator | |
---|---|
PARALLEL_SWEEPING | |
CONCURRENT_SWEEPING | |
SEQUENTIAL_SWEEPING |
Definition at line 549 of file mark-compact.h.
Enumerator | |
---|---|
SWEEP_ON_MAIN_THREAD | |
SWEEP_IN_PARALLEL |
Definition at line 555 of file mark-compact.h.
|
explicitprivate |
Definition at line 39 of file mark-compact.cc.
|
private |
|
inline |
void v8::internal::MarkCompactCollector::AbortCompaction | ( | ) |
Definition at line 918 of file mark-compact.cc.
References v8::internal::MemoryChunk::ClearEvacuationCandidate(), v8::internal::MemoryChunk::ClearFlag(), compacting_, DCHECK_EQ, v8::internal::SlotsBufferAllocator::DeallocateChain(), evacuation_candidates_, invalidated_code_, v8::internal::MemoryChunk::RESCAN_ON_EVACUATION, v8::internal::MemoryChunk::slots_buffer_address(), and slots_buffer_allocator_.
Referenced by Prepare(), and TearDown().
|
private |
Definition at line 2846 of file mark-compact.cc.
References v8::internal::Heap::encountered_weak_collections(), v8::internal::Smi::FromInt(), heap(), v8::internal::GCTracer::Scope::MC_WEAKCOLLECTION_ABORT, and v8::internal::Heap::set_encountered_weak_collections().
Referenced by Prepare().
void v8::internal::MarkCompactCollector::AddEvacuationCandidate | ( | Page * | p | ) |
Definition at line 337 of file mark-compact.cc.
References evacuation_candidates_, and v8::internal::MemoryChunk::MarkEvacuationCandidate().
Referenced by CollectEvacuationCandidates().
|
private |
Definition at line 2351 of file mark-compact.cc.
References v8::internal::Heap::CheckpointObjectStats(), v8::internal::ExternalStringTable::CleanUp(), code_flusher_, v8::internal::HashTable< Derived, Shape, Key >::ElementsRemoved(), EnableCodeFlushing(), v8::internal::Heap::external_string_table_, v8::internal::Isolate::global_handles(), heap(), is_code_flushing_enabled(), v8::internal::Heap::isolate(), v8::internal::ExternalStringTable::Iterate(), v8::internal::HashTable< Derived, Shape, Key >::IterateElements(), v8::internal::StringTableCleaner< finalize_external_strings >::PointersRemoved(), v8::internal::CodeFlusher::ProcessCandidates(), ProcessMapCaches(), v8::internal::Heap::ProcessWeakReferences(), v8::internal::GlobalHandles::RemoveImplicitRefGroups(), and v8::internal::GlobalHandles::RemoveObjectGroups().
Referenced by MarkLiveObjects().
bool v8::internal::MarkCompactCollector::AreSweeperThreadsActivated | ( | ) |
Definition at line 646 of file mark-compact.cc.
References isolate(), NULL, and v8::internal::Isolate::sweeper_threads().
Referenced by EnsureSweepingCompleted().
|
private |
Definition at line 2706 of file mark-compact.cc.
References v8::internal::DependentCode::GroupStartIndexes::at(), v8::internal::DependentCode::clear_at(), ClearDependentICList(), v8::internal::DependentCode::code_at(), DCHECK, have_code_to_deoptimize_, v8::internal::Code::InvalidateEmbeddedObjects(), v8::internal::DependentCode::is_code_at(), IsMarked(), v8::internal::DependentCode::kWeakCodeGroup, v8::internal::DependentCode::kWeakICGroup, v8::internal::Code::marked_for_deoptimization(), v8::internal::DependentCode::GroupStartIndexes::number_of_entries(), v8::internal::DependentCode::object_at(), and v8::internal::DependentCode::SetMarkedForDeoptimization().
Referenced by ClearNonLiveReferences().
|
private |
Definition at line 2691 of file mark-compact.cc.
References DCHECK, heap(), v8::internal::IC::InvalidateMaps(), v8::internal::Code::is_weak_stub(), and IsMarked().
Referenced by ClearDependentCode().
Definition at line 2583 of file mark-compact.cc.
References heap_, v8::internal::Map::SetBackPointer(), and v8::internal::SKIP_WRITE_BARRIER.
Referenced by ClearMapTransitions().
|
private |
Definition at line 2590 of file mark-compact.cc.
References ClearMapBackPointer(), DCHECK, v8::internal::Heap::FROM_GC, v8::internal::TransitionArray::GetKey(), v8::internal::TransitionArray::GetKeySlot(), v8::internal::TransitionArray::GetTarget(), heap_, v8::internal::TransitionArray::IsSimpleTransition(), v8::internal::TransitionArray::kTransitionSize, map, v8::internal::DescriptorArray::number_of_descriptors(), v8::internal::TransitionArray::number_of_transitions(), v8::internal::Heap::RightTrimFixedArray(), v8::internal::TransitionArray::SetKey(), v8::internal::TransitionArray::SetTarget(), and TrimDescriptorArray().
Referenced by ClearNonLiveMapTransitions().
void v8::internal::MarkCompactCollector::ClearMarkbits | ( | ) |
Definition at line 516 of file mark-compact.cc.
References v8::internal::Heap::cell_space(), v8::internal::MarkBit::Clear(), v8::internal::ClearMarkbitsInNewSpace(), v8::internal::ClearMarkbitsInPagedSpace(), v8::internal::Heap::code_space(), v8::internal::MemoryChunk::FromAddress(), heap_, v8::internal::Heap::lo_space(), v8::internal::Heap::map_space(), v8::internal::Heap::new_space(), v8::internal::MarkBit::Next(), v8::internal::LargeObjectIterator::Next(), NULL, v8::internal::Heap::old_data_space(), v8::internal::Heap::old_pointer_space(), v8::internal::Heap::property_cell_space(), v8::internal::MemoryChunk::ResetLiveBytes(), and v8::internal::MemoryChunk::ResetProgressBar().
Referenced by Prepare().
|
private |
Definition at line 2776 of file mark-compact.cc.
References v8::internal::DependentCode::GroupStartIndexes::at(), v8::internal::DependentCode::clear_at(), ClearNonLiveDependentCodeInGroup(), v8::internal::DependentCode::kGroupCount, and v8::internal::DependentCode::GroupStartIndexes::number_of_entries().
Referenced by ClearNonLiveReferences().
|
private |
Definition at line 2737 of file mark-compact.cc.
References DCHECK, heap(), IsMarked(), v8::internal::DependentCode::kWeakICGroup, v8::internal::DependentCode::object_at(), v8::internal::DependentCode::set_number_of_entries(), v8::internal::DependentCode::set_object_at(), v8::internal::DependentCode::slot_at(), v8::internal::VisitWeakList< Code >(), and WillBeDeoptimized().
Referenced by ClearNonLiveDependentCode().
|
private |
Definition at line 2565 of file mark-compact.cc.
References ClearMapTransitions(), v8::internal::MarkBit::Get(), and map.
Referenced by ClearNonLiveReferences().
|
private |
Definition at line 2526 of file mark-compact.cc.
References DCHECK, v8::internal::FixedArray::get(), IsMarked(), v8::internal::Map::kProtoTransitionElementsPerEntry, v8::internal::Map::kProtoTransitionHeaderSize, v8::internal::Map::kProtoTransitionMapOffset, v8::internal::Map::kProtoTransitionPrototypeOffset, map, v8::internal::FixedArray::RawFieldOfElementAt(), v8::internal::FixedArray::set(), v8::internal::FixedArray::set_undefined(), v8::internal::SKIP_WRITE_BARRIER, and v8::internal::UPDATE_WRITE_BARRIER.
Referenced by ClearNonLiveReferences().
|
private |
Definition at line 2445 of file mark-compact.cc.
References v8::internal::HashTable< Derived, Shape, Key >::Capacity(), ClearDependentCode(), ClearNonLiveDependentCode(), ClearNonLiveMapTransitions(), ClearNonLivePrototypeTransitions(), v8::internal::dependent_code, v8::internal::HashTable< Derived, Shape, Key >::ElementRemoved(), v8::internal::HashTable< Derived, Shape, Key >::EntryToIndex(), v8::internal::WeakHashTable::EntryToValueIndex(), v8::internal::MarkBit::Get(), v8::internal::FixedArray::get(), heap(), heap_, v8::internal::HashTable< Derived, Shape, Key >::IsKey(), IsMarked(), v8::internal::Cell::kValueOffset, map, v8::internal::HeapObjectIterator::Next(), NULL, v8::internal::Heap::property_cell_space(), v8::internal::HeapObject::RawField(), v8::internal::FixedArray::set(), and v8::internal::Heap::weak_object_to_code_table().
Referenced by CollectGarbage().
|
private |
Definition at line 2822 of file mark-compact.cc.
References v8::internal::HashTable< Derived, Shape, Key >::Capacity(), DCHECK, v8::internal::Heap::encountered_weak_collections(), v8::internal::Smi::FromInt(), heap(), IsMarked(), v8::internal::HashTable< Derived, Shape, Key >::KeyAt(), v8::internal::GCTracer::Scope::MC_WEAKCOLLECTION_CLEAR, v8::internal::ObjectHashTable::RemoveEntry(), and v8::internal::Heap::set_encountered_weak_collections().
Referenced by CollectGarbage().
|
inline |
Definition at line 545 of file mark-compact.h.
References code_flusher_.
Referenced by v8::internal::Context::AddOptimizedFunction(), v8::internal::SharedFunctionInfo::ClearOptimizedCodeMap(), v8::internal::SharedFunctionInfo::ReplaceCode(), and v8::internal::Heap::Scavenge().
void v8::internal::MarkCompactCollector::CollectEvacuationCandidates | ( | PagedSpace * | space | ) |
Definition at line 768 of file mark-compact.cc.
References AddEvacuationCandidate(), v8::internal::AllocationSpaceName(), v8::internal::MemoryChunk::area_size(), v8::internal::MemoryChunk::ClearEvacuationCandidate(), v8::internal::CODE_SPACE, DCHECK, v8::internal::FreeListFragmentation(), kPageSizeBits, v8::internal::MemoryChunk::LiveBytes(), v8::internal::MB, v8::internal::Min(), mode(), NULL, v8::internal::OLD_DATA_SPACE, v8::internal::OLD_POINTER_SPACE, v8::internal::PrintF(), reduce_memory_footprint_, space(), v8::internal::PagedSpace::SizeStats::Total(), and v8::internal::Page::WasSwept().
Referenced by StartCompaction().
void v8::internal::MarkCompactCollector::CollectGarbage | ( | ) |
Definition at line 389 of file mark-compact.cc.
References ClearNonLiveReferences(), ClearWeakCollections(), DCHECK, v8::internal::EVEN_MARKING_PARITY, Finish(), heap(), heap_, v8::internal::Heap::incremental_marking(), v8::internal::IncrementalMarking::IsStopped(), marking_parity_, MarkLiveObjects(), v8::internal::ODD_MARKING_PARITY, and SweepSpaces().
Referenced by v8::internal::Heap::MarkCompact().
|
private |
Definition at line 1947 of file mark-compact.cc.
References v8::internal::NewSpace::AddFreshPage(), v8::internal::HeapObject::address(), v8::base::bits::CountTrailingZeros32(), DCHECK, v8::internal::HeapObject::FromAddress(), heap(), v8::internal::Heap::IncrementSemiSpaceCopiedObjectSize(), v8::internal::AllocationResult::IsRetry(), v8::internal::Marking::kBlackBitPattern, v8::internal::Marking::kGreyBitPattern, v8::internal::Marking::kImpossibleBitPattern, v8::internal::kPointerSize, v8::internal::Marking::kWhiteBitPattern, v8::internal::MemoryChunk::markbits(), MigrateObject(), v8::internal::NEW_SPACE, v8::internal::Heap::RECORD_SCRATCHPAD_SLOT, size, v8::internal::AllocationResult::ToObjectChecked(), TryPromoteObject(), UNREACHABLE, and v8::internal::Heap::UpdateAllocationSiteFeedback().
Referenced by EvacuateNewSpace().
|
private |
Definition at line 2134 of file mark-compact.cc.
References DCHECK, heap(), v8::internal::MarkingDeque::IsEmpty(), map, and marking_deque_.
Referenced by MarkLiveObjects(), v8::internal::RootMarkingVisitor::MarkObjectByPointer(), MarkRoots(), and ProcessMarkingDeque().
void v8::internal::MarkCompactCollector::EnableCodeFlushing | ( | bool | enable | ) |
Definition at line 4356 of file mark-compact.cc.
References code_flusher_, v8::internal::CodeFlusher::EvictAllCandidates(), isolate(), NULL, and v8::internal::PrintF().
Referenced by AfterMarking(), v8::internal::Heap::GarbageCollectionPrologue(), and PrepareForCodeFlushing().
void v8::internal::MarkCompactCollector::EnsureSweepingCompleted | ( | ) |
Definition at line 574 of file mark-compact.cc.
References AreSweeperThreadsActivated(), DCHECK, heap(), heap_, isolate(), IsSweepingCompleted(), v8::internal::Isolate::num_sweeper_threads(), v8::internal::OLD_DATA_SPACE, v8::internal::OLD_POINTER_SPACE, v8::internal::Heap::paged_space(), ParallelSweepSpacesComplete(), pending_sweeper_jobs_semaphore_, RefillFreeList(), v8::internal::PagedSpace::ResetUnsweptFreeBytes(), v8::internal::Isolate::sweeper_threads(), sweeping_in_progress_, SweepInParallel(), and v8::internal::SweeperThread::WaitForSweeperThread().
Referenced by v8::internal::Isolate::Deinit(), v8::internal::Heap::IdleNotification(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), v8::internal::Heap::MakeHeapIterable(), Prepare(), v8::internal::IncrementalMarking::Step(), SweepSpaces(), and v8::internal::PagedSpace::WaitForSweeperThreadsAndRetryAllocation().
|
private |
Definition at line 3122 of file mark-compact.cc.
References CHECK, DCHECK, v8::internal::V8::FatalProcessOutOfMemory(), v8::internal::HeapObject::FromAddress(), v8::internal::MemoryChunk::IsEvacuationCandidate(), isolate(), v8::internal::kPointerSize, v8::internal::HeapObject::map_word(), v8::internal::MarkWordToObjectStarts(), MigrateObject(), v8::internal::MemoryChunk::owner(), v8::internal::MemoryChunk::ResetLiveBytes(), v8::internal::Page::SetWasSwept(), size, space(), v8::internal::AllocationResult::To(), and v8::internal::Page::WasSwept().
Referenced by EvacuatePages().
|
private |
Definition at line 3088 of file mark-compact.cc.
References v8::internal::NewSpace::bottom(), DiscoverAndEvacuateBlackObjectsOnPage(), v8::internal::NewSpace::Flip(), heap(), heap_, v8::internal::Heap::IncrementYoungSurvivorsCounter(), isolate(), v8::internal::Heap::new_space(), v8::internal::NewSpace::ResetAllocationInfo(), v8::internal::NewSpace::set_age_mark(), and v8::internal::NewSpace::top().
Referenced by EvacuateNewSpaceAndCandidates().
|
private |
Definition at line 3508 of file mark-compact.cc.
References v8::internal::HeapObject::address(), v8::internal::Heap::cell_space(), v8::internal::SkipList::Clear(), v8::internal::MemoryChunk::ClearFlag(), v8::internal::CODE_SPACE, compacting_, DCHECK, v8::internal::SlotsBufferAllocator::DeallocateChain(), EvacuateNewSpace(), EvacuatePages(), evacuation_candidates_, v8::internal::Isolate::factory(), v8::internal::InnerPointerToCodeCache::Flush(), v8::internal::MemoryChunk::FromAddress(), heap(), heap_, v8::internal::IGNORE_FREE_SPACE, v8::internal::IGNORE_SKIP_LIST, v8::internal::Isolate::inner_pointer_to_code_cache(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::IsFlagSet(), IsMarked(), v8::internal::Heap::isolate(), v8::internal::HeapObject::Iterate(), v8::internal::FixedBodyDescriptor< start_offset, end_offset, size >::IterateBody(), v8::internal::StoreBuffer::IteratePointersToNewSpaceAndClearMaps(), v8::internal::Heap::IterateRoots(), v8::internal::Heap::lo_space(), map, MarkInvalidatedCode(), v8::internal::GCTracer::Scope::MC_EVACUATE_PAGES, v8::internal::GCTracer::Scope::MC_SWEEP_NEWSPACE, v8::internal::GCTracer::Scope::MC_UPDATE_MISC_POINTERS, v8::internal::GCTracer::Scope::MC_UPDATE_NEW_TO_NEW_POINTERS, v8::internal::GCTracer::Scope::MC_UPDATE_OLD_TO_NEW_POINTERS, v8::internal::GCTracer::Scope::MC_UPDATE_POINTERS_BETWEEN_EVACUATED, v8::internal::GCTracer::Scope::MC_UPDATE_POINTERS_TO_EVACUATED, v8::internal::GCTracer::Scope::MC_UPDATE_ROOT_TO_NEW_POINTERS, migration_slots_buffer_, v8::internal::HeapObjectIterator::Next(), v8::internal::SemiSpaceIterator::Next(), v8::internal::LargeObjectIterator::Next(), NULL, v8::internal::OLD_DATA_SPACE, v8::internal::OLD_POINTER_SPACE, v8::internal::MemoryChunk::owner(), v8::internal::PrintF(), ProcessInvalidatedCode(), v8::internal::Heap::ProcessWeakReferences(), v8::internal::Heap::property_cell_space(), v8::internal::REBUILD_SKIP_LIST, v8::internal::HashTable< Derived, Shape, Key >::Rehash(), v8::internal::MemoryChunk::RESCAN_ON_EVACUATION, v8::internal::Heap::ScavengeStoreBufferCallback(), v8::internal::SlotsBuffer::SizeOfChain(), v8::internal::MemoryChunk::skip_list(), v8::internal::MemoryChunk::slots_buffer(), slots_buffer_allocator_, space(), v8::internal::Heap::store_buffer(), v8::internal::Sweep(), v8::internal::SWEEP_AND_VISIT_LIVE_OBJECTS, SWEEP_ON_MAIN_THREAD, UNREACHABLE, v8::internal::UpdatePointer(), v8::internal::UpdateReferenceInExternalStringTableEntry(), v8::internal::Heap::UpdateReferencesInExternalStringTable(), v8::internal::SlotsBuffer::UpdateSlotsRecordedIn(), V8PRIxPTR, v8::internal::VISIT_ALL_IN_SWEEP_NEWSPACE, v8::internal::PointersUpdatingVisitor::VisitPointer(), was_marked_incrementally_, v8::internal::Heap::weak_object_to_code_table(), v8::internal::Heap::weak_object_to_code_table_address(), and v8::internal::ZAP_FREE_SPACE.
Referenced by SweepSpaces().
|
private |
Definition at line 3169 of file mark-compact.cc.
References v8::internal::MemoryChunk::ClearEvacuationCandidate(), DCHECK, v8::internal::SlotsBufferAllocator::DeallocateChain(), EvacuateLiveObjectsFromPage(), evacuation_candidates_, heap(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::IsFlagSet(), NULL, v8::internal::MemoryChunk::owner(), v8::internal::MemoryChunk::parallel_sweeping(), v8::internal::MemoryChunk::RESCAN_ON_EVACUATION, v8::internal::MemoryChunk::SetFlag(), v8::internal::MemoryChunk::slots_buffer_address(), slots_buffer_allocator_, space(), and v8::internal::MemoryChunk::SWEEPING_DONE.
Referenced by EvacuateNewSpaceAndCandidates().
|
private |
Definition at line 979 of file mark-compact.cc.
References v8::internal::StubCache::Clear(), DCHECK, v8::internal::Deoptimizer::DeoptimizeMarkedCode(), have_code_to_deoptimize_, v8::internal::IDLE, isolate(), and v8::internal::Isolate::stub_cache().
Referenced by CollectGarbage().
|
inline |
Definition at line 542 of file mark-compact.h.
References heap_.
Referenced by AbortWeakCollections(), AfterMarking(), ClearDependentICList(), ClearNonLiveDependentCodeInGroup(), ClearNonLiveReferences(), ClearWeakCollections(), CollectGarbage(), DiscoverAndEvacuateBlackObjectsOnPage(), EmptyMarkingDeque(), EnsureSweepingCompleted(), EvacuateNewSpace(), EvacuateNewSpaceAndCandidates(), EvacuatePages(), v8::internal::MarkCompactMarkingVisitor::INLINE(), MarkLiveObjects(), MarkRoots(), MarkStringTable(), MarkWeakObjectToCodeTable(), MigrateObject(), ParallelSweepSpacesComplete(), Prepare(), PrepareForCodeFlushing(), PrepareThreadForCodeFlushing(), ProcessMapCaches(), ProcessWeakCollections(), RecordCodeTargetPatch(), RefillFreeList(), RefillMarkingDeque(), ReleaseEvacuationCandidates(), StartCompaction(), StartSweeperThreads(), SweepInParallel(), SweepSpace(), SweepSpaces(), and TryPromoteObject().
|
static |
Definition at line 4392 of file mark-compact.cc.
References v8::internal::IncrementalMarking::Initialize(), and v8::internal::MarkCompactMarkingVisitor::Initialize().
Referenced by v8::internal::InitializeGCOnce().
|
inline |
Definition at line 575 of file mark-compact.h.
References v8::internal::MemoryChunk::FromAddress(), and v8::internal::MemoryChunk::IsEvacuationCandidate().
|
inline |
Definition at line 565 of file mark-compact.h.
References v8::internal::MemoryChunk::FromAddress(), and v8::internal::MemoryChunk::ShouldSkipEvacuationSlotRecording().
|
inline |
Definition at line 570 of file mark-compact.h.
References v8::internal::MemoryChunk::FromAddress(), and v8::internal::MemoryChunk::ShouldSkipEvacuationSlotRecording().
|
inline |
Definition at line 580 of file mark-compact.h.
References v8::internal::MemoryChunk::ClearEvacuationCandidate(), evacuation_candidates_, v8::internal::Space::identity(), v8::internal::OLD_DATA_SPACE, v8::internal::MemoryChunk::owner(), v8::internal::PrintF(), v8::internal::MemoryChunk::RESCAN_ON_EVACUATION, and v8::internal::MemoryChunk::SetFlag().
|
private |
v8::internal::MarkCompactCollector::INLINE | ( | void | RecordSlotObject **anchor_slot, Object **slot, Object *object, SlotsBuffer::AdditionMode mode=SlotsBuffer::FAIL_ON_OVERFLOW | ) |
|
private |
void v8::internal::MarkCompactCollector::InvalidateCode | ( | Code * | code | ) |
Definition at line 3451 of file mark-compact.cc.
References compacting_, DCHECK, heap_, v8::internal::Heap::incremental_marking(), invalidated_code_, and v8::internal::IncrementalMarking::IsCompacting().
Referenced by v8::internal::Deoptimizer::DeoptimizeMarkedCodeForContext().
|
inline |
Definition at line 546 of file mark-compact.h.
References code_flusher_, and NULL.
Referenced by AfterMarking(), PrepareForCodeFlushing(), v8::internal::Heap::Scavenge(), and v8::internal::MarkCompactMarkingVisitor::VisitRegExpAndFlushCode().
|
inline |
Definition at line 620 of file mark-compact.h.
References compacting_.
Referenced by v8::internal::MustRecordSlots(), and RecordCodeTargetPatch().
Definition at line 50 of file mark-compact-inl.h.
References DCHECK.
Referenced by ClearDependentCode(), ClearDependentICList(), ClearNonLiveDependentCodeInGroup(), ClearNonLivePrototypeTransitions(), ClearNonLiveReferences(), ClearWeakCollections(), EvacuateNewSpaceAndCandidates(), v8::internal::MarkCompactMarkingVisitor::INLINE(), MarkImplicitRefGroups(), MarkLiveObjects(), MarkWeakObjectToCodeTable(), ProcessMapCaches(), ProcessWeakCollections(), and RemoveDeadInvalidatedCode().
|
inline |
Definition at line 4389 of file mark-compact.cc.
References heap_, and v8::internal::Heap::isolate().
Referenced by AreSweeperThreadsActivated(), EnableCodeFlushing(), EnsureSweepingCompleted(), EvacuateLiveObjectsFromPage(), EvacuateNewSpace(), Finish(), IsSweepingCompleted(), MarkImplicitRefGroups(), MarkLiveObjects(), MigrateObject(), PrepareForCodeFlushing(), PrepareThreadForCodeFlushing(), ProcessEphemeralMarking(), ProcessTopOptimizedFrame(), RecordCodeTargetPatch(), ReportDeleteIfNeeded(), and StartSweeperThreads().
bool v8::internal::MarkCompactCollector::IsSweepingCompleted | ( | ) |
Definition at line 608 of file mark-compact.cc.
References isolate(), v8::internal::Isolate::num_sweeper_threads(), pending_sweeper_jobs_semaphore_, v8::internal::Isolate::sweeper_threads(), and v8::internal::SweeperThread::SweepingCompleted().
Referenced by EnsureSweepingCompleted(), and v8::internal::IncrementalMarking::Step().
Definition at line 2031 of file mark-compact.cc.
References v8::internal::MarkBit::Get().
Referenced by MarkLiveObjects().
|
staticprivate |
Definition at line 2040 of file mark-compact.cc.
References DCHECK, and v8::internal::MarkBit::Get().
Referenced by ProcessEphemeralMarking().
void v8::internal::MarkCompactCollector::MarkAllocationSite | ( | AllocationSite * | site | ) |
Definition at line 2064 of file mark-compact.cc.
Referenced by v8::internal::MarkCompactWeakObjectRetainer::RetainAs().
|
private |
Definition at line 2088 of file mark-compact.cc.
References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::ImplicitRefGroup::children, DCHECK, v8::internal::Isolate::global_handles(), v8::internal::GlobalHandles::implicit_ref_groups(), IsMarked(), isolate(), v8::internal::ImplicitRefGroup::length, NULL, and v8::internal::ImplicitRefGroup::parent.
Referenced by ProcessEphemeralMarking().
|
inline |
|
private |
Definition at line 3471 of file mark-compact.cc.
References invalidated_code_, and v8::internal::SetMarkBitsUnderInvalidatedCode().
Referenced by EvacuateNewSpaceAndCandidates().
|
private |
Definition at line 2236 of file mark-compact.cc.
References v8::internal::IncrementalMarking::Abort(), v8::internal::GCTracer::AddMarkingTime(), v8::internal::HeapObject::address(), AfterMarking(), v8::internal::MarkingDeque::ClearOverflowed(), DCHECK, EmptyMarkingDeque(), v8::internal::IncrementalMarking::Finalize(), v8::internal::NewSpace::FromSpacePageHigh(), v8::internal::NewSpace::FromSpacePageLow(), v8::internal::Isolate::global_handles(), heap(), heap_, v8::internal::GlobalHandles::IdentifyWeakHandles(), v8::internal::Heap::incremental_marking(), v8::internal::MarkingDeque::Initialize(), IsMarked(), v8::internal::Heap::isolate(), isolate(), IsUnmarkedHeapObject(), v8::internal::GlobalHandles::IterateWeakRoots(), v8::internal::kPointerSize, v8::internal::Cell::kValueOffset, v8::internal::HeapObject::map(), v8::internal::IncrementalMarking::marking_deque(), marking_deque_, MarkRoots(), v8::internal::GCTracer::Scope::MC_MARK, v8::internal::Heap::new_space(), v8::internal::HeapObjectIterator::Next(), NULL, v8::internal::MarkingDeque::overflowed(), PrepareForCodeFlushing(), ProcessEphemeralMarking(), ProcessTopOptimizedFrame(), RefillMarkingDeque(), v8::internal::MarkingDeque::SetOverflowed(), v8::base::OS::TimeCurrentMillis(), v8::internal::Heap::tracer(), and was_marked_incrementally_.
Referenced by CollectGarbage().
|
private |
Definition at line 2070 of file mark-compact.cc.
References EmptyMarkingDeque(), heap(), v8::internal::Heap::IterateStrongRoots(), marking_deque_, MarkStringTable(), MarkWeakObjectToCodeTable(), v8::internal::MarkingDeque::overflowed(), RefillMarkingDeque(), and v8::internal::VISIT_ONLY_STRONG.
Referenced by MarkLiveObjects().
|
private |
Definition at line 2050 of file mark-compact.cc.
References v8::internal::MarkBit::Get(), heap(), v8::internal::HashTable< Derived, Shape, Key >::IteratePrefix(), and ProcessMarkingDeque().
Referenced by MarkRoots().
void v8::internal::MarkCompactCollector::MarkWeakObjectToCodeTable | ( | ) |
Definition at line 2120 of file mark-compact.cc.
References heap(), and IsMarked().
Referenced by MarkRoots(), and v8::internal::IncrementalMarking::StartMarking().
void v8::internal::MarkCompactCollector::MigrateObject | ( | HeapObject * | dst, |
HeapObject * | src, | ||
int | size, | ||
AllocationSpace | to_old_space | ||
) |
Definition at line 2885 of file mark-compact.cc.
References v8::internal::HeapObject::address(), v8::internal::Memory::Address_at(), v8::internal::SlotsBuffer::AddTo(), v8::internal::SlotsBuffer::CODE_ENTRY_SLOT, v8::internal::ConstantPoolArray::CODE_PTR, v8::internal::CODE_SPACE, compacting_, DCHECK, v8::internal::MemoryChunk::FromAddress(), heap(), v8::internal::ConstantPoolArray::HEAP_PTR, v8::internal::SlotsBuffer::IGNORE_OVERFLOW, v8::internal::IsAligned(), isolate(), v8::internal::JSFunction::kCodeEntryOffset, v8::internal::Page::kMaxRegularHeapObjectSize, v8::internal::kPointerSize, v8::internal::LO_SPACE, v8::internal::HeapObject::MayContainRawValues(), migration_slots_buffer_, v8::internal::Heap::MoveBlock(), v8::internal::NEW_SPACE, v8::internal::Memory::Object_at(), v8::internal::ConstantPoolArray::OffsetOfElementAt(), v8::internal::OLD_DATA_SPACE, v8::internal::OLD_POINTER_SPACE, v8::internal::Heap::OnMoveEvent(), PROFILE, RecordMigratedSlot(), v8::internal::SlotsBuffer::RELOCATED_CODE_OBJECT, size, and slots_buffer_allocator_.
Referenced by DiscoverAndEvacuateBlackObjectsOnPage(), EvacuateLiveObjectsFromPage(), and TryPromoteObject().
|
private |
Definition at line 3694 of file mark-compact.cc.
References evacuation_candidates_, v8::internal::MemoryChunk::InsertAfter(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::owner(), space(), and v8::internal::MemoryChunk::Unlink().
Referenced by SweepSpaces().
|
private |
Definition at line 4337 of file mark-compact.cc.
References DCHECK, v8::internal::MemoryChunk::parallel_sweeping(), v8::internal::MemoryChunk::set_parallel_sweeping(), v8::internal::Page::SetWasSwept(), space(), v8::internal::MemoryChunk::SWEEPING_DONE, and v8::internal::MemoryChunk::SWEEPING_FINALIZE.
Referenced by ParallelSweepSpacesComplete().
|
private |
Definition at line 4350 of file mark-compact.cc.
References heap(), and ParallelSweepSpaceComplete().
Referenced by EnsureSweepingCompleted().
void v8::internal::MarkCompactCollector::Prepare | ( | ) |
Definition at line 935 of file mark-compact.cc.
References v8::internal::IncrementalMarking::Abort(), abort_incremental_marking_, AbortCompaction(), AbortWeakCollections(), ClearMarkbits(), DCHECK, EnsureSweepingCompleted(), heap(), v8::internal::IDLE, v8::internal::Heap::incremental_marking(), NON_INCREMENTAL_COMPACTION, NULL, space(), StartCompaction(), sweeping_in_progress(), and was_marked_incrementally_.
Referenced by v8::internal::Heap::MarkCompact().
|
private |
Definition at line 1736 of file mark-compact.cc.
References v8::internal::Isolate::compilation_cache(), DCHECK, EnableCodeFlushing(), v8::internal::Isolate::handle_scope_implementer(), heap(), is_code_flushing_enabled(), v8::internal::Heap::isolate(), isolate(), v8::internal::HandleScopeImplementer::Iterate(), v8::internal::ThreadManager::IterateArchivedThreads(), v8::internal::CompilationCache::IterateFunctions(), PrepareThreadForCodeFlushing(), ProcessMarkingDeque(), v8::internal::Isolate::thread_manager(), and was_marked_incrementally_.
Referenced by MarkLiveObjects().
|
private |
Definition at line 1717 of file mark-compact.cc.
References v8::internal::StackFrameIterator::Advance(), heap(), isolate(), and v8::internal::StaticMarkingVisitor< MarkCompactMarkingVisitor >::MarkInlinedFunctionsCode().
Referenced by PrepareForCodeFlushing(), and v8::internal::CodeMarkingVisitor::VisitThread().
|
private |
Definition at line 2204 of file mark-compact.cc.
References DCHECK, v8::internal::Isolate::global_handles(), v8::internal::MarkingDeque::IsEmpty(), isolate(), IsUnmarkedHeapObjectWithHeap(), v8::internal::GlobalHandles::IterateObjectGroups(), MarkImplicitRefGroups(), marking_deque_, ProcessMarkingDeque(), and ProcessWeakCollections().
Referenced by MarkLiveObjects().
|
private |
Definition at line 3495 of file mark-compact.cc.
References invalidated_code_, v8::internal::HeapObject::Iterate(), NULL, and v8::internal::SetMarkBitsUnderInvalidatedCode().
Referenced by EvacuateNewSpaceAndCandidates().
|
private |
Definition at line 2394 of file mark-compact.cc.
References DCHECK, v8::internal::HashTable< Derived, Shape, Key >::ElementsRemoved(), v8::internal::FixedArray::get(), heap(), IsMarked(), v8::internal::HashTable< MapCache, MapCacheShape, HashTableKey * >::kElementsStartIndex, v8::internal::HashTable< MapCache, MapCacheShape, HashTableKey * >::kEntrySize, v8::internal::FixedArrayBase::length(), v8::internal::Context::MAP_CACHE_INDEX, v8::internal::Heap::native_contexts_list(), v8::internal::Context::NEXT_CONTEXT_LINK, v8::internal::HashTable< Derived, Shape, Key >::NumberOfElements(), ProcessMarkingDeque(), v8::internal::FixedArray::set(), v8::internal::FixedArray::set_the_hole(), and v8::internal::STATIC_ASSERT().
Referenced by AfterMarking().
|
private |
Definition at line 2193 of file mark-compact.cc.
References EmptyMarkingDeque(), marking_deque_, v8::internal::MarkingDeque::overflowed(), and RefillMarkingDeque().
Referenced by MarkStringTable(), PrepareForCodeFlushing(), ProcessEphemeralMarking(), ProcessMapCaches(), and ProcessTopOptimizedFrame().
|
private |
Definition at line 2218 of file mark-compact.cc.
References v8::internal::StackFrameIterator::Advance(), v8::internal::Code::CanDeoptAt(), v8::internal::Code::CodeIterateBody(), isolate(), and ProcessMarkingDeque().
Referenced by MarkLiveObjects().
|
private |
Definition at line 2794 of file mark-compact.cc.
References v8::internal::HeapObject::address(), v8::internal::HashTable< Derived, Shape, Key >::Capacity(), DCHECK, v8::internal::Heap::encountered_weak_collections(), v8::internal::HashTable< ObjectHashTable, ObjectHashTableShape, Handle< Object > >::EntryToIndex(), v8::internal::ObjectHashTable::EntryToValueIndex(), v8::internal::Smi::FromInt(), heap(), IsMarked(), v8::internal::HashTable< Derived, Shape, Key >::KeyAt(), v8::internal::GCTracer::Scope::MC_WEAKCOLLECTION_PROCESS, and v8::internal::FixedArray::RawFieldOfElementAt().
Referenced by ProcessEphemeralMarking().
Definition at line 4468 of file mark-compact.cc.
References v8::internal::SlotsBuffer::AddTo(), v8::internal::SlotsBuffer::CODE_ENTRY_SLOT, v8::internal::SlotsBuffer::FAIL_ON_OVERFLOW, v8::internal::MemoryChunk::FromAddress(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::slots_buffer_address(), and slots_buffer_allocator_.
Referenced by v8::internal::CodeFlusher::ProcessJSFunctionCandidates(), and v8::internal::IncrementalMarking::RecordWriteOfCodeEntrySlow().
Definition at line 4482 of file mark-compact.cc.
References v8::internal::RelocInfo::CODE_TARGET, DCHECK, v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer(), heap(), v8::internal::Isolate::inner_pointer_to_code_cache(), is_compacting(), isolate(), v8::internal::Heap::MARK_COMPACT, v8::internal::pc, and RecordRelocSlot().
Referenced by v8::internal::IC::SetTargetAtAddress().
|
private |
Definition at line 2860 of file mark-compact.cc.
References v8::internal::SlotsBuffer::AddTo(), heap_, v8::internal::SlotsBuffer::IGNORE_OVERFLOW, v8::internal::Heap::InNewSpace(), v8::internal::StoreBuffer::Mark(), migration_slots_buffer_, slots_buffer_allocator_, and v8::internal::Heap::store_buffer().
Referenced by MigrateObject().
Definition at line 4437 of file mark-compact.cc.
References v8::internal::SlotsBuffer::AddTo(), v8::internal::SlotsBuffer::CODE_ENTRY_SLOT, v8::internal::SlotsBuffer::FAIL_ON_OVERFLOW, v8::internal::MemoryChunk::FromAddress(), v8::internal::RelocInfo::host(), v8::internal::RelocInfo::IsCodeTarget(), v8::internal::RelocInfo::IsEmbeddedObject(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::RelocInfo::IsInConstantPool(), NULL, v8::internal::RelocInfo::pc(), v8::internal::RelocInfo::rmode(), v8::internal::MemoryChunk::slots_buffer_address(), slots_buffer_allocator_, and v8::internal::SlotTypeForRMode().
Referenced by RecordCodeTargetPatch(), and v8::internal::IncrementalMarking::RecordWriteIntoCodeSlow().
void v8::internal::MarkCompactCollector::RefillFreeList | ( | PagedSpace * | space | ) |
Definition at line 627 of file mark-compact.cc.
References free_list_old_data_space_, free_list_old_pointer_space_, heap(), and space().
Referenced by EnsureSweepingCompleted(), and v8::internal::PagedSpace::SlowAllocateRaw().
|
private |
Definition at line 2155 of file mark-compact.cc.
References v8::internal::MarkingDeque::ClearOverflowed(), DCHECK, v8::internal::DiscoverGreyObjectsInNewSpace(), v8::internal::DiscoverGreyObjectsInSpace(), v8::internal::DiscoverGreyObjectsWithIterator(), heap(), v8::internal::MarkingDeque::IsFull(), marking_deque_, and v8::internal::MarkingDeque::overflowed().
Referenced by MarkLiveObjects(), MarkRoots(), and ProcessMarkingDeque().
|
private |
Definition at line 3706 of file mark-compact.cc.
References v8::internal::MemoryChunk::area_size(), v8::internal::MemoryChunk::area_start(), compacting_, v8::internal::SlotsBufferAllocator::DeallocateChain(), evacuation_candidates_, v8::internal::Heap::FreeQueuedChunks(), heap(), v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::owner(), v8::internal::MemoryChunk::ResetLiveBytes(), v8::internal::MemoryChunk::set_scan_on_scavenge(), v8::internal::MemoryChunk::slots_buffer_address(), slots_buffer_allocator_, and space().
Referenced by SweepSpaces().
|
private |
Definition at line 3487 of file mark-compact.cc.
References invalidated_code_, IsMarked(), and NULL.
Referenced by SweepSpaces().
|
static |
Definition at line 4381 of file mark-compact.cc.
References v8::internal::HeapObject::address(), isolate(), and PROFILE.
Referenced by v8::internal::LargeObjectSpace::FreeUnmarkedObjects().
|
inline |
Definition at line 653 of file mark-compact.h.
References sequential_sweeping_.
Referenced by set_sequential_sweeping().
|
inline |
Definition at line 649 of file mark-compact.h.
References sequential_sweeping(), and sequential_sweeping_.
|
inline |
Definition at line 23 of file mark-compact-inl.h.
References abort_incremental_marking_, v8::internal::anonymous_namespace{flags.cc}::flags, v8::internal::Heap::kAbortIncrementalMarkingMask, v8::internal::Heap::kReduceMemoryFootprintMask, and reduce_memory_footprint_.
Referenced by v8::internal::AbortIncrementalMarkingAndCollectGarbage(), v8::internal::Heap::CollectAllAvailableGarbage(), and v8::internal::Heap::CollectAllGarbage().
void v8::internal::MarkCompactCollector::SetUp | ( | ) |
Definition at line 328 of file mark-compact.cc.
References free_list_old_data_space_, free_list_old_pointer_space_, heap_, v8::internal::Heap::old_data_space(), and v8::internal::Heap::old_pointer_space().
Referenced by v8::internal::Heap::SetUp().
bool v8::internal::MarkCompactCollector::StartCompaction | ( | CompactionMode | mode | ) |
Definition at line 353 of file mark-compact.cc.
References v8::internal::Heap::code_space(), CollectEvacuationCandidates(), compacting_, DCHECK, evacuation_candidates_, v8::internal::PagedSpace::EvictEvacuationCandidatesFromFreeLists(), heap(), mode(), NON_INCREMENTAL_COMPACTION, v8::internal::Heap::old_data_space(), v8::internal::Heap::old_pointer_space(), and v8::internal::TraceFragmentation().
Referenced by Prepare(), and v8::internal::IncrementalMarking::StartMarking().
|
private |
Definition at line 556 of file mark-compact.cc.
References v8::Platform::CallOnBackgroundThread(), DCHECK, free_list_old_data_space_, free_list_old_pointer_space_, v8::internal::V8::GetCurrentPlatform(), heap(), isolate(), v8::Platform::kShortRunningTask, v8::internal::Isolate::num_sweeper_threads(), v8::internal::SweeperThread::StartSweeping(), v8::internal::Isolate::sweeper_threads(), and sweeping_in_progress_.
Referenced by SweepSpaces().
|
inline |
Definition at line 647 of file mark-compact.h.
References sweeping_in_progress_.
Referenced by v8::internal::Isolate::Deinit(), v8::internal::Heap::IdleNotification(), Prepare(), v8::internal::PagedSpace::SlowAllocateRaw(), v8::internal::IncrementalMarking::Start(), v8::internal::IncrementalMarking::Step(), and v8::internal::PagedSpace::WaitForSweeperThreadsAndRetryAllocation().
int v8::internal::MarkCompactCollector::SweepInParallel | ( | Page * | page, |
PagedSpace * | space | ||
) |
Definition at line 4137 of file mark-compact.cc.
References v8::internal::FreeList::Concatenate(), free_list_old_data_space_, free_list_old_pointer_space_, heap(), v8::internal::IGNORE_FREE_SPACE, v8::internal::IGNORE_SKIP_LIST, NULL, v8::internal::Heap::old_pointer_space(), space(), v8::internal::Sweep(), SWEEP_IN_PARALLEL, v8::internal::SWEEP_ONLY, and v8::internal::MemoryChunk::TryParallelSweeping().
int v8::internal::MarkCompactCollector::SweepInParallel | ( | PagedSpace * | space, |
int | required_freed_bytes | ||
) |
Definition at line 4118 of file mark-compact.cc.
References DCHECK, v8::internal::Max(), and space().
Referenced by EnsureSweepingCompleted(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), v8::internal::SweeperThread::Run(), v8::internal::MarkCompactCollector::SweeperTask::Run(), and v8::internal::PagedSpace::SlowAllocateRaw().
|
private |
Definition at line 4152 of file mark-compact.cc.
References v8::internal::AllocationSpaceName(), v8::internal::Page::ClearWasSwept(), v8::internal::CODE_SPACE, CONCURRENT_SWEEPING, DCHECK, evacuation_candidates_, v8::internal::Heap::FreeQueuedChunks(), heap(), v8::internal::IGNORE_FREE_SPACE, v8::internal::IGNORE_SKIP_LIST, v8::internal::MemoryChunk::IsEvacuationCandidate(), v8::internal::MemoryChunk::IsFlagSet(), v8::internal::MemoryChunk::LiveBytes(), NULL, PARALLEL_SWEEPING, v8::internal::MemoryChunk::parallel_sweeping(), v8::internal::PrintF(), v8::internal::REBUILD_SKIP_LIST, v8::internal::MemoryChunk::RESCAN_ON_EVACUATION, SEQUENTIAL_SWEEPING, v8::internal::MemoryChunk::set_parallel_sweeping(), space(), v8::internal::Sweep(), SWEEP_ON_MAIN_THREAD, v8::internal::SWEEP_ONLY, v8::internal::MemoryChunk::SWEEPING_DONE, v8::internal::MemoryChunk::SWEEPING_PENDING, UNREACHABLE, V8PRIxPTR, and v8::internal::ZAP_FREE_SPACE.
Referenced by SweepSpaces().
|
private |
Definition at line 4260 of file mark-compact.cc.
References v8::internal::GCTracer::AddSweepingTime(), CONCURRENT_SWEEPING, EnsureSweepingCompleted(), EvacuateNewSpaceAndCandidates(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), heap(), heap_, v8::internal::Heap::lo_space(), v8::internal::GCTracer::Scope::MC_SWEEP, v8::internal::GCTracer::Scope::MC_SWEEP_CELL, v8::internal::GCTracer::Scope::MC_SWEEP_CODE, v8::internal::GCTracer::Scope::MC_SWEEP_MAP, v8::internal::GCTracer::Scope::MC_SWEEP_OLDSPACE, MoveEvacuationCandidatesToEndOfPagesList(), PARALLEL_SWEEPING, ReleaseEvacuationCandidates(), RemoveDeadInvalidatedCode(), SEQUENTIAL_SWEEPING, v8::internal::ShouldStartSweeperThreads(), v8::internal::ShouldWaitForSweeperThreads(), StartSweeperThreads(), SweepSpace(), v8::base::OS::TimeCurrentMillis(), and v8::internal::Heap::tracer().
Referenced by CollectGarbage().
void v8::internal::MarkCompactCollector::TearDown | ( | ) |
Definition at line 334 of file mark-compact.cc.
References AbortCompaction().
Referenced by v8::internal::Heap::TearDown().
|
private |
Definition at line 2654 of file mark-compact.cc.
References v8::internal::Heap::FROM_GC, v8::internal::DescriptorArray::HasEnumCache(), heap_, v8::internal::DescriptorArray::kDescriptorSize, map, v8::internal::DescriptorArray::number_of_descriptors_storage(), v8::internal::Heap::RightTrimFixedArray(), v8::internal::DescriptorArray::SetNumberOfDescriptors(), v8::internal::DescriptorArray::Sort(), and TrimEnumCache().
Referenced by ClearMapTransitions().
|
private |
Definition at line 2670 of file mark-compact.cc.
References v8::internal::DescriptorArray::ClearEnumCache(), DONT_ENUM, v8::internal::Heap::FROM_GC, v8::internal::DescriptorArray::GetEnumCache(), v8::internal::DescriptorArray::GetEnumIndicesCache(), v8::internal::DescriptorArray::HasEnumIndicesCache(), heap_, v8::internal::kInvalidEnumCacheSentinel, v8::internal::FixedArrayBase::length(), map, v8::internal::OWN_DESCRIPTORS, and v8::internal::Heap::RightTrimFixedArray().
Referenced by TrimDescriptorArray().
bool v8::internal::MarkCompactCollector::TryPromoteObject | ( | HeapObject * | object, |
int | object_size | ||
) |
Definition at line 3068 of file mark-compact.cc.
References v8::internal::PagedSpace::AllocateRaw(), DCHECK, heap(), v8::internal::Space::identity(), v8::internal::Heap::IncrementPromotedObjectsSize(), v8::internal::Page::kMaxRegularHeapObjectSize, MigrateObject(), v8::internal::Heap::TargetSpace(), and v8::internal::AllocationResult::To().
Referenced by DiscoverAndEvacuateBlackObjectsOnPage().
Definition at line 3466 of file mark-compact.cc.
References v8::internal::Code::is_optimized_code(), and v8::internal::Code::marked_for_deoptimization().
Referenced by ClearNonLiveDependentCodeInGroup().
|
friend |
Definition at line 729 of file mark-compact.h.
|
friend |
Definition at line 893 of file mark-compact.h.
|
friend |
Definition at line 728 of file mark-compact.h.
|
friend |
Definition at line 727 of file mark-compact.h.
|
friend |
Definition at line 726 of file mark-compact.h.
|
friend |
Definition at line 730 of file mark-compact.h.
|
private |
Definition at line 693 of file mark-compact.h.
Referenced by abort_incremental_marking(), Prepare(), and SetFlags().
|
private |
Definition at line 884 of file mark-compact.h.
Referenced by AfterMarking(), code_flusher(), EnableCodeFlushing(), is_code_flushing_enabled(), and ~MarkCompactCollector().
|
private |
Definition at line 699 of file mark-compact.h.
Referenced by AbortCompaction(), EvacuateNewSpaceAndCandidates(), InvalidateCode(), is_compacting(), MigrateObject(), ReleaseEvacuationCandidates(), and StartCompaction().
Definition at line 887 of file mark-compact.h.
Referenced by AbortCompaction(), AddEvacuationCandidate(), EvacuateNewSpaceAndCandidates(), EvacuatePages(), INLINE(), MoveEvacuationCandidatesToEndOfPagesList(), ReleaseEvacuationCandidates(), StartCompaction(), and SweepSpace().
|
private |
Definition at line 890 of file mark-compact.h.
Referenced by RefillFreeList(), SetUp(), StartSweeperThreads(), and SweepInParallel().
|
private |
Definition at line 891 of file mark-compact.h.
Referenced by RefillFreeList(), SetUp(), StartSweeperThreads(), and SweepInParallel().
|
private |
Definition at line 885 of file mark-compact.h.
Referenced by ClearDependentCode(), and Finish().
|
private |
Definition at line 882 of file mark-compact.h.
Referenced by ClearMapBackPointer(), ClearMapTransitions(), ClearMarkbits(), ClearNonLiveReferences(), CollectGarbage(), EnsureSweepingCompleted(), EvacuateNewSpace(), EvacuateNewSpaceAndCandidates(), heap(), InvalidateCode(), isolate(), MarkLiveObjects(), RecordMigratedSlot(), SetUp(), SweepSpaces(), TrimDescriptorArray(), and TrimEnumCache().
Definition at line 888 of file mark-compact.h.
Referenced by AbortCompaction(), InvalidateCode(), MarkInvalidatedCode(), ProcessInvalidatedCode(), and RemoveDeadInvalidatedCode().
|
static |
Definition at line 538 of file mark-compact.h.
|
static |
Definition at line 537 of file mark-compact.h.
|
private |
Definition at line 883 of file mark-compact.h.
Referenced by EmptyMarkingDeque(), MarkLiveObjects(), MarkRoots(), ProcessEphemeralMarking(), ProcessMarkingDeque(), and RefillMarkingDeque().
|
private |
Definition at line 695 of file mark-compact.h.
Referenced by CollectGarbage(), and marking_parity().
|
private |
Definition at line 712 of file mark-compact.h.
Referenced by EvacuateNewSpaceAndCandidates(), MigrateObject(), and RecordMigratedSlot().
|
private |
Definition at line 706 of file mark-compact.h.
Referenced by EnsureSweepingCompleted(), IsSweepingCompleted(), and v8::internal::MarkCompactCollector::SweeperTask::Run().
|
private |
Definition at line 691 of file mark-compact.h.
Referenced by CollectEvacuationCandidates(), v8::internal::Heap::OldGenerationAllocationLimit(), and SetFlags().
|
private |
Definition at line 708 of file mark-compact.h.
Referenced by sequential_sweeping(), and set_sequential_sweeping().
|
private |
Definition at line 710 of file mark-compact.h.
Referenced by AbortCompaction(), EvacuateNewSpaceAndCandidates(), EvacuatePages(), MigrateObject(), RecordCodeEntrySlot(), RecordMigratedSlot(), RecordRelocSlot(), and ReleaseEvacuationCandidates().
|
private |
Definition at line 704 of file mark-compact.h.
Referenced by EnsureSweepingCompleted(), StartSweeperThreads(), and sweeping_in_progress().
|
private |
Definition at line 701 of file mark-compact.h.
Referenced by EvacuateNewSpaceAndCandidates(), MarkLiveObjects(), Prepare(), and PrepareForCodeFlushing().