v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::ConcurrentMarkingVisitor Class Referencefinal
Inheritance diagram for v8::internal::ConcurrentMarkingVisitor:
Collaboration diagram for v8::internal::ConcurrentMarkingVisitor:

Public Member Functions

 ConcurrentMarkingVisitor (MarkingWorklists::Local *local_marking_worklists, WeakObjects::Local *local_weak_objects, Heap *heap, unsigned mark_compact_epoch, base::EnumSet< CodeFlushMode > code_flush_mode, bool should_keep_ages_unchanged, uint16_t code_flushing_increase, MemoryChunkLiveBytesMap *memory_chunk_live_bytes_map, MemoryChunkTypedSlotsMap *memory_chunk_typed_slots_map)
 
bool ProcessEphemeron (Tagged< HeapObject > key, Tagged< HeapObject > value)
 
template<typename TSlot >
void RecordSlot (Tagged< HeapObject > object, TSlot slot, Tagged< HeapObject > target)
 
void IncrementLiveBytesCached (MutablePageMetadata *chunk, intptr_t by)
 
- Public Member Functions inherited from v8::internal::FullMarkingVisitorBase< ConcurrentMarkingVisitor >
 FullMarkingVisitorBase (MarkingWorklists::Local *local_marking_worklists, WeakObjects::Local *local_weak_objects, Heap *heap, unsigned mark_compact_epoch, base::EnumSet< CodeFlushMode > code_flush_mode, bool should_keep_ages_unchanged, uint16_t code_flushing_increase)
 
V8_INLINE void AddStrongReferenceForReferenceSummarizer (Tagged< HeapObject > host, Tagged< HeapObject > obj)
 
V8_INLINE void AddWeakReferenceForReferenceSummarizer (Tagged< HeapObject > host, Tagged< HeapObject > obj)
 
constexpr bool CanUpdateValuesInHeap ()
 
MarkingStatemarking_state () const
 
void MarkPointerTableEntry (Tagged< HeapObject > obj, IndirectPointerSlot slot)
 
- Public Member Functions inherited from v8::internal::MarkingVisitorBase< ConcurrentMarkingVisitor >
 MarkingVisitorBase (MarkingWorklists::Local *local_marking_worklists, WeakObjects::Local *local_weak_objects, Heap *heap, unsigned mark_compact_epoch, base::EnumSet< CodeFlushMode > code_flush_mode, bool should_keep_ages_unchanged, uint16_t code_flushing_increase)
 
V8_INLINE size_t VisitDescriptorArrayStrongly (Tagged< Map > map, Tagged< DescriptorArray > object, MaybeObjectSize)
 
V8_INLINE size_t VisitDescriptorArray (Tagged< Map > map, Tagged< DescriptorArray > object, MaybeObjectSize)
 
V8_INLINE size_t VisitEphemeronHashTable (Tagged< Map > map, Tagged< EphemeronHashTable > object, MaybeObjectSize)
 
V8_INLINE size_t VisitFixedArray (Tagged< Map > map, Tagged< FixedArray > object, MaybeObjectSize)
 
V8_INLINE size_t VisitJSArrayBuffer (Tagged< Map > map, Tagged< JSArrayBuffer > object, MaybeObjectSize)
 
V8_INLINE size_t VisitJSFunction (Tagged< Map > map, Tagged< JSFunction > object, MaybeObjectSize)
 
V8_INLINE size_t VisitJSWeakRef (Tagged< Map > map, Tagged< JSWeakRef > object, MaybeObjectSize)
 
V8_INLINE size_t VisitMap (Tagged< Map > map, Tagged< Map > object, MaybeObjectSize)
 
V8_INLINE size_t VisitSharedFunctionInfo (Tagged< Map > map, Tagged< SharedFunctionInfo > object, MaybeObjectSize)
 
V8_INLINE size_t VisitTransitionArray (Tagged< Map > map, Tagged< TransitionArray > object, MaybeObjectSize)
 
V8_INLINE size_t VisitWeakCell (Tagged< Map > map, Tagged< WeakCell > object, MaybeObjectSize)
 
void VisitMapPointer (Tagged< HeapObject > host) final
 
V8_INLINE void VisitPointer (Tagged< HeapObject > host, ObjectSlot p) final
 
V8_INLINE void VisitPointer (Tagged< HeapObject > host, MaybeObjectSlot p) final
 
V8_INLINE void VisitPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end) final
 
V8_INLINE void VisitPointers (Tagged< HeapObject > host, MaybeObjectSlot start, MaybeObjectSlot end) final
 
V8_INLINE void VisitInstructionStreamPointer (Tagged< Code > host, InstructionStreamSlot slot) final
 
V8_INLINE void VisitEmbeddedPointer (Tagged< InstructionStream > host, RelocInfo *rinfo) final
 
V8_INLINE void VisitCodeTarget (Tagged< InstructionStream > host, RelocInfo *rinfo) final
 
void VisitCustomWeakPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end) final
 
V8_INLINE void VisitExternalPointer (Tagged< HeapObject > host, ExternalPointerSlot slot) override
 
V8_INLINE void VisitCppHeapPointer (Tagged< HeapObject > host, CppHeapPointerSlot slot) override
 
V8_INLINE void VisitIndirectPointer (Tagged< HeapObject > host, IndirectPointerSlot slot, IndirectPointerMode mode) final
 
void VisitTrustedPointerTableEntry (Tagged< HeapObject > host, IndirectPointerSlot slot) final
 
void VisitJSDispatchTableEntry (Tagged< HeapObject > host, JSDispatchHandle handle) override
 
V8_INLINE void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedPointerSlot slot) final
 
V8_INLINE void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedMaybeObjectSlot slot) final
 
void SynchronizePageAccess (Tagged< HeapObject > heap_object) const
 
V8_INLINE bool MarkObject (Tagged< HeapObject > host, Tagged< HeapObject > obj, MarkingHelper::WorklistTarget target_worklist)
 
void SetKeyToValues (KeyToValues *key_to_values)
 
void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
void VisitStrongPointerImpl (Tagged< HeapObject > host, TSlot slot)
 
- Public Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ConcurrentMarkingVisitor >
V8_INLINE ConcurrentHeapVisitor (Isolate *isolate)
 
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
size_t VisitStringLocked (Tagged< T > object)
 
- Public Member Functions inherited from v8::internal::HeapVisitor< ConcurrentMarkingVisitor >
 HeapVisitor (LocalIsolate *isolate)
 
 HeapVisitor (Isolate *isolate)
 
 HeapVisitor (Heap *heap)
 
V8_INLINE size_t Visit (Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, int object_size)
 
void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Public Member Functions inherited from v8::internal::ObjectVisitorWithCageBases
 ObjectVisitorWithCageBases (PtrComprCageBase cage_base, PtrComprCageBase code_cage_base)
 
 ObjectVisitorWithCageBases (Isolate *isolate)
 
 ObjectVisitorWithCageBases (Heap *heap)
 
PtrComprCageBase cage_base () const
 
PtrComprCageBase code_cage_base () const
 
- Public Member Functions inherited from v8::internal::ObjectVisitor
virtual ~ObjectVisitor ()=default
 
virtual void VisitCustomWeakPointer (Tagged< HeapObject > host, ObjectSlot p)
 
virtual void VisitEphemeron (Tagged< HeapObject > host, int index, ObjectSlot key, ObjectSlot value)
 
void VisitRelocInfo (Tagged< InstructionStream > host, RelocIterator *it)
 
virtual void VisitExternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo)
 
virtual void VisitInternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo)
 
virtual void VisitOffHeapTarget (Tagged< InstructionStream > host, RelocInfo *rinfo)
 

Static Public Member Functions

static constexpr bool EnableConcurrentVisitation ()
 
- Static Public Member Functions inherited from v8::internal::MarkingVisitorBase< ConcurrentMarkingVisitor >
static V8_INLINE constexpr bool ShouldVisitReadOnlyMapPointer ()
 
static V8_INLINE constexpr bool CanEncounterFillerOrFreeSpace ()
 
static V8_INLINE constexpr bool IsTrivialWeakReferenceValue (Tagged< HeapObject > host, Tagged< HeapObject > heap_object)
 
- Static Public Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ConcurrentMarkingVisitor >
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 

Private Member Functions

void RecordRelocSlot (Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target)
 

Private Attributes

MemoryChunkLiveBytesMapmemory_chunk_live_bytes_map_
 
MemoryChunkTypedSlotsMapmemory_chunk_typed_slots_map_
 

Friends

class MarkingVisitorBase< ConcurrentMarkingVisitor >
 

Additional Inherited Members

- Public Types inherited from v8::internal::MarkingVisitorBase< ConcurrentMarkingVisitor >
using Base
 
- Protected Member Functions inherited from v8::internal::MarkingVisitorBase< ConcurrentMarkingVisitor >
void ProcessStrongHeapObject (Tagged< HeapObject > host, THeapObjectSlot slot, Tagged< HeapObject > heap_object)
 
void ProcessWeakHeapObject (Tagged< HeapObject > host, THeapObjectSlot slot, Tagged< HeapObject > heap_object)
 
V8_INLINE void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
V8_INLINE void VisitStrongPointerImpl (Tagged< HeapObject > host, TSlot slot)
 
V8_INLINE void VisitDescriptorsForMap (Tagged< Map > map)
 
V8_INLINE size_t VisitFixedArrayWithProgressTracker (Tagged< Map > map, Tagged< FixedArray > object, MarkingProgressTracker &progress_tracker)
 
bool ShouldFlushCode (Tagged< SharedFunctionInfo > sfi) const
 
bool ShouldFlushBaselineCode (Tagged< JSFunction > js_function) const
 
bool HasBytecodeArrayForFlushing (Tagged< SharedFunctionInfo > sfi) const
 
bool IsOld (Tagged< SharedFunctionInfo > sfi) const
 
void MakeOlder (Tagged< SharedFunctionInfo > sfi) const
 
- Protected Member Functions inherited from v8::internal::HeapVisitor< ConcurrentMarkingVisitor >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
ConcurrentMarkingVisitorconcrete_visitor ()
 
const ConcurrentMarkingVisitorconcrete_visitor () const
 
V8_INLINE size_t VisitShortcutCandidate (Tagged< Map > map, Tagged< ConsString > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectFast (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSApiObject (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitStruct (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFiller (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFreeSpace (Tagged< Map > map, Tagged< FreeSpace > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
std::optional< Tagged< Object > > GetObjectFilterReadOnlyAndSmiFast (TSlot slot) const
 
- Static Protected Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ConcurrentMarkingVisitor >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Static Protected Member Functions inherited from v8::internal::HeapVisitor< ConcurrentMarkingVisitor >
static V8_INLINE constexpr bool ShouldVisitMapPointer ()
 
static V8_INLINE constexpr bool ShouldVisitReadOnlyMapPointer ()
 
static V8_INLINE constexpr bool CanEncounterFillerOrFreeSpace ()
 
static V8_INLINE constexpr bool ShouldUseUncheckedCast ()
 
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 
static V8_INLINE constexpr bool UsePrecomputedObjectSize ()
 
static V8_INLINE constexpr bool ShouldVisitFullJSObject ()
 
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Protected Attributes inherited from v8::internal::MarkingVisitorBase< ConcurrentMarkingVisitor >
MarkingWorklists::Local *const local_marking_worklists_
 
WeakObjects::Local *const local_weak_objects_
 
KeyToValueskey_to_values_
 
Heap *const heap_
 
const unsigned mark_compact_epoch_
 
const base::EnumSet< CodeFlushModecode_flush_mode_
 
const bool should_keep_ages_unchanged_
 
const uint16_t code_flushing_increase_
 
const bool isolate_in_background_
 
- Protected Attributes inherited from v8::internal::HeapVisitor< ConcurrentMarkingVisitor >
const Heapheap_
 

Detailed Description

Definition at line 145 of file concurrent-marking.cc.

Constructor & Destructor Documentation

◆ ConcurrentMarkingVisitor()

v8::internal::ConcurrentMarkingVisitor::ConcurrentMarkingVisitor ( MarkingWorklists::Local * local_marking_worklists,
WeakObjects::Local * local_weak_objects,
Heap * heap,
unsigned mark_compact_epoch,
base::EnumSet< CodeFlushMode > code_flush_mode,
bool should_keep_ages_unchanged,
uint16_t code_flushing_increase,
MemoryChunkLiveBytesMap * memory_chunk_live_bytes_map,
MemoryChunkTypedSlotsMap * memory_chunk_typed_slots_map )
inline

Definition at line 148 of file concurrent-marking.cc.

Member Function Documentation

◆ EnableConcurrentVisitation()

static constexpr bool v8::internal::ConcurrentMarkingVisitor::EnableConcurrentVisitation ( )
inlinestaticconstexpr

Definition at line 165 of file concurrent-marking.cc.

◆ IncrementLiveBytesCached()

void v8::internal::ConcurrentMarkingVisitor::IncrementLiveBytesCached ( MutablePageMetadata * chunk,
intptr_t by )
inline

Definition at line 189 of file concurrent-marking.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessEphemeron()

bool v8::internal::ConcurrentMarkingVisitor::ProcessEphemeron ( Tagged< HeapObject > key,
Tagged< HeapObject > value )
inline

Definition at line 169 of file concurrent-marking.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecordRelocSlot()

void v8::internal::ConcurrentMarkingVisitor::RecordRelocSlot ( Tagged< InstructionStream > host,
RelocInfo * rinfo,
Tagged< HeapObject > target )
inlineprivate

Definition at line 196 of file concurrent-marking.cc.

Here is the call graph for this function:

◆ RecordSlot()

template<typename TSlot >
void v8::internal::ConcurrentMarkingVisitor::RecordSlot ( Tagged< HeapObject > object,
TSlot slot,
Tagged< HeapObject > target )
inline

Definition at line 184 of file concurrent-marking.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ MarkingVisitorBase< ConcurrentMarkingVisitor >

Definition at line 215 of file concurrent-marking.cc.

Member Data Documentation

◆ memory_chunk_live_bytes_map_

MemoryChunkLiveBytesMap* v8::internal::ConcurrentMarkingVisitor::memory_chunk_live_bytes_map_
private

Definition at line 214 of file concurrent-marking.cc.

◆ memory_chunk_typed_slots_map_

MemoryChunkTypedSlotsMap* v8::internal::ConcurrentMarkingVisitor::memory_chunk_typed_slots_map_
private

Definition at line 215 of file concurrent-marking.cc.


The documentation for this class was generated from the following file: