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

Public Member Functions

 MainMarkingVisitor (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)
 
- Public Member Functions inherited from v8::internal::FullMarkingVisitorBase< MainMarkingVisitor >
 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< MainMarkingVisitor >
 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< MainMarkingVisitor >
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< MainMarkingVisitor >
 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)
 

Private Member Functions

template<typename TSlot >
void RecordSlot (Tagged< HeapObject > object, TSlot slot, Tagged< HeapObject > target)
 
void RecordRelocSlot (Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target)
 

Friends

class MarkingVisitorBase< MainMarkingVisitor >
 

Additional Inherited Members

- Public Types inherited from v8::internal::MarkingVisitorBase< MainMarkingVisitor >
using Base
 
- Static Public Member Functions inherited from v8::internal::MarkingVisitorBase< MainMarkingVisitor >
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< MainMarkingVisitor >
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 
- Protected Member Functions inherited from v8::internal::MarkingVisitorBase< MainMarkingVisitor >
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< MainMarkingVisitor >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
MainMarkingVisitorconcrete_visitor ()
 
const MainMarkingVisitorconcrete_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< MainMarkingVisitor >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Static Protected Member Functions inherited from v8::internal::HeapVisitor< MainMarkingVisitor >
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< MainMarkingVisitor >
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< MainMarkingVisitor >
const Heapheap_
 

Detailed Description

Definition at line 251 of file mark-compact.cc.

Constructor & Destructor Documentation

◆ MainMarkingVisitor()

v8::internal::MainMarkingVisitor::MainMarkingVisitor ( 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 )
inline

Definition at line 254 of file mark-compact.cc.

Member Function Documentation

◆ RecordRelocSlot()

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

Definition at line 274 of file mark-compact.cc.

◆ RecordSlot()

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

Definition at line 269 of file mark-compact.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ MarkingVisitorBase< MainMarkingVisitor >

friend class MarkingVisitorBase< MainMarkingVisitor >
friend

Definition at line 274 of file mark-compact.cc.


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