![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <mark-compact.h>
Classes | |
class | ClearTrivialWeakRefJobItem |
class | CustomRootBodyMarkingVisitor |
class | FilterNonTrivialWeakRefJobItem |
struct | RecordRelocSlotInfo |
class | SharedHeapObjectVisitor |
Public Types | |
enum class | StartCompactionMode { kIncremental , kAtomic } |
enum class | MarkingWorklistProcessingMode { kDefault , kProcessRememberedEphemerons } |
enum class | CallOrigin { kIncrementalMarkingStep , kAtomicGC } |
enum class | EphemeronResult { kUnresolved , kMarkedValue , kResolved } |
Static Public Member Functions | |
static bool | IsUnmarkedHeapObject (Heap *heap, FullObjectSlot p) |
static bool | IsUnmarkedSharedHeapObject (Heap *heap, FullObjectSlot p) |
static bool | IsOnEvacuationCandidate (Tagged< MaybeObject > obj) |
static bool | ShouldRecordRelocSlot (Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target) |
static RecordRelocSlotInfo | ProcessRelocInfo (Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target) |
static void | RecordRelocSlot (Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target) |
template<typename THeapObjectSlot > | |
static V8_INLINE void | RecordSlot (Tagged< HeapObject > object, THeapObjectSlot slot, Tagged< HeapObject > target) |
template<typename THeapObjectSlot > | |
static V8_INLINE void | RecordSlot (MemoryChunk *source_chunk, THeapObjectSlot slot, Tagged< HeapObject > target) |
Private Types | |
using | ResizeNewSpaceMode = Heap::ResizeNewSpaceMode |
Static Private Attributes | |
static const int | kEphemeronChunkSize = 8 * KB |
Friends | |
class | Evacuator |
class | RecordMigratedSlotVisitor |
class | RootMarkingVisitor |
class | PrecisePagePinningVisitor |
Definition at line 57 of file mark-compact.h.
|
private |
Definition at line 195 of file mark-compact.h.
|
strong |
Enumerator | |
---|---|
kIncrementalMarkingStep | |
kAtomicGC |
Definition at line 72 of file mark-compact.h.
|
strong |
Enumerator | |
---|---|
kUnresolved | |
kMarkedValue | |
kResolved |
Definition at line 77 of file mark-compact.h.
|
strong |
Enumerator | |
---|---|
kDefault | |
kProcessRememberedEphemerons |
Definition at line 67 of file mark-compact.h.
|
strong |
Enumerator | |
---|---|
kIncremental | |
kAtomic |
Definition at line 62 of file mark-compact.h.
|
explicit |
Definition at line 282 of file mark-compact.cc.
|
default |
void v8::internal::MarkCompactCollector::AddEvacuationCandidate | ( | PageMetadata * | p | ) |
Definition at line 307 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::AddTransitionArray | ( | Tagged< TransitionArray > | array | ) |
|
private |
Definition at line 2269 of file mark-compact.cc.
|
private |
Definition at line 3518 of file mark-compact.cc.
|
private |
|
private |
|
private |
Definition at line 2905 of file mark-compact.cc.
|
private |
|
private |
Definition at line 3236 of file mark-compact.cc.
|
private |
Definition at line 3858 of file mark-compact.cc.
|
private |
Definition at line 3864 of file mark-compact.cc.
|
private |
Definition at line 3792 of file mark-compact.cc.
|
private |
|
inline |
void v8::internal::MarkCompactCollector::CollectEvacuationCandidates | ( | PagedSpace * | space | ) |
Definition at line 607 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::CollectGarbage | ( | ) |
Definition at line 486 of file mark-compact.cc.
|
private |
|
private |
Definition at line 559 of file mark-compact.cc.
|
inline |
|
private |
Definition at line 5037 of file mark-compact.cc.
|
private |
Definition at line 4437 of file mark-compact.cc.
|
private |
|
private |
Definition at line 4412 of file mark-compact.cc.
|
private |
|
private |
Definition at line 843 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::FinishConcurrentMarking | ( | ) |
Definition at line 793 of file mark-compact.cc.
|
private |
|
private |
Definition at line 3500 of file mark-compact.cc.
|
inline |
|
inline |
Definition at line 147 of file mark-compact.h.
|
inlinestatic |
Definition at line 119 of file mark-compact.h.
|
static |
Definition at line 1817 of file mark-compact.cc.
|
static |
Definition at line 1826 of file mark-compact.cc.
|
inline |
|
inline |
|
private |
Definition at line 3200 of file mark-compact.cc.
|
inline |
|
private |
Definition at line 2460 of file mark-compact.cc.
|
private |
Definition at line 26 of file mark-compact-inl.h.
|
private |
|
private |
Definition at line 1891 of file mark-compact.cc.
|
private |
Definition at line 34 of file mark-compact-inl.h.
|
private |
Definition at line 1839 of file mark-compact.cc.
|
private |
Definition at line 1872 of file mark-compact.cc.
|
private |
Definition at line 2329 of file mark-compact.cc.
|
private |
Definition at line 2111 of file mark-compact.cc.
|
private |
Definition at line 2040 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::MaybeEnableBackgroundThreadsInCycle | ( | CallOrigin | origin | ) |
Definition at line 464 of file mark-compact.cc.
|
private |
|
private |
Definition at line 2168 of file mark-compact.cc.
|
private |
|
private |
void v8::internal::MarkCompactCollector::Prepare | ( | ) |
Definition at line 763 of file mark-compact.cc.
|
private |
Definition at line 2256 of file mark-compact.cc.
|
private |
Definition at line 2081 of file mark-compact.cc.
|
private |
std::pair< size_t, size_t > v8::internal::MarkCompactCollector::ProcessMarkingWorklist | ( | v8::base::TimeDelta | max_duration, |
size_t | max_bytes_to_process ) |
Definition at line 2183 of file mark-compact.cc.
|
private |
Definition at line 3445 of file mark-compact.cc.
|
private |
|
private |
Definition at line 3385 of file mark-compact.cc.
|
static |
Definition at line 4003 of file mark-compact.cc.
|
private |
Definition at line 2342 of file mark-compact.cc.
|
private |
Definition at line 2363 of file mark-compact.cc.
|
static |
void v8::internal::MarkCompactCollector::RecordSlot | ( | MemoryChunk * | source_chunk, |
THeapObjectSlot | slot, | ||
Tagged< HeapObject > | target ) |
|
static |
void v8::internal::MarkCompactCollector::RecordSlot | ( | Tagged< HeapObject > | object, |
THeapObjectSlot | slot, | ||
Tagged< HeapObject > | target ) |
|
static |
void v8::internal::MarkCompactCollector::RecordStrongDescriptorArraysForWeakening | ( | GlobalHandleVector< DescriptorArray > | strong_descriptor_arrays | ) |
|
private |
Definition at line 5943 of file mark-compact.cc.
|
private |
|
private |
Definition at line 5853 of file mark-compact.cc.
|
private |
Definition at line 5989 of file mark-compact.cc.
|
private |
Definition at line 2411 of file mark-compact.cc.
|
private |
|
static |
Definition at line 3992 of file mark-compact.cc.
|
private |
bool v8::internal::MarkCompactCollector::StartCompaction | ( | StartCompactionMode | mode | ) |
Definition at line 331 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::StartMarking | ( | std::shared_ptr<::heap::base::IncrementalMarkingSchedule > | schedule = {} | ) |
Definition at line 404 of file mark-compact.cc.
|
private |
|
private |
|
private |
|
private |
Definition at line 925 of file mark-compact.cc.
|
private |
void v8::internal::MarkCompactCollector::TearDown | ( | ) |
|
private |
|
private |
Definition at line 3752 of file mark-compact.cc.
|
private |
Definition at line 3772 of file mark-compact.cc.
|
private |
|
private |
|
private |
|
private |
|
inline |
|
private |
Definition at line 2303 of file mark-compact.cc.
void v8::internal::MarkCompactCollector::VerifyMarking | ( | ) |
Definition at line 808 of file mark-compact.cc.
|
inline |
|
private |
Definition at line 3737 of file mark-compact.cc.
|
friend |
Definition at line 469 of file mark-compact.h.
|
friend |
Definition at line 472 of file mark-compact.h.
|
friend |
Definition at line 470 of file mark-compact.h.
|
friend |
Definition at line 471 of file mark-compact.h.
|
private |
Definition at line 442 of file mark-compact.h.
|
private |
Definition at line 441 of file mark-compact.h.
|
private |
Definition at line 418 of file mark-compact.h.
|
private |
Definition at line 463 of file mark-compact.h.
|
private |
Definition at line 417 of file mark-compact.h.
|
private |
Definition at line 465 of file mark-compact.h.
|
private |
Definition at line 457 of file mark-compact.h.
|
private |
Definition at line 436 of file mark-compact.h.
|
private |
Definition at line 419 of file mark-compact.h.
|
private |
Definition at line 394 of file mark-compact.h.
|
private |
Definition at line 413 of file mark-compact.h.
|
staticprivate |
Definition at line 382 of file mark-compact.h.
|
private |
Definition at line 446 of file mark-compact.h.
|
private |
Definition at line 423 of file mark-compact.h.
|
private |
Definition at line 428 of file mark-compact.h.
|
private |
Definition at line 448 of file mark-compact.h.
|
private |
Definition at line 427 of file mark-compact.h.
|
private |
Definition at line 422 of file mark-compact.h.
|
private |
Definition at line 396 of file mark-compact.h.
|
private |
Definition at line 429 of file mark-compact.h.
|
private |
Definition at line 430 of file mark-compact.h.
|
private |
Definition at line 439 of file mark-compact.h.
|
private |
Definition at line 449 of file mark-compact.h.
|
private |
Definition at line 438 of file mark-compact.h.
|
private |
Definition at line 397 of file mark-compact.h.
|
private |
Definition at line 420 of file mark-compact.h.
|
private |
Definition at line 443 of file mark-compact.h.
|
private |
Definition at line 432 of file mark-compact.h.
|
private |
Definition at line 433 of file mark-compact.h.
|
private |
Definition at line 450 of file mark-compact.h.
|
private |
Definition at line 467 of file mark-compact.h.
|
private |
Definition at line 412 of file mark-compact.h.
|
private |
Definition at line 425 of file mark-compact.h.