![]() |
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.