v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::FullMarkingVisitorBase< ConcreteVisitor > Class Template Reference

#include <marking-visitor.h>

Inheritance diagram for v8::internal::FullMarkingVisitorBase< ConcreteVisitor >:
Collaboration diagram for v8::internal::FullMarkingVisitorBase< ConcreteVisitor >:

Public Member Functions

 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< ConcreteVisitor >
 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)
 
template<typename TSlot >
void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
template<typename TSlot >
void VisitStrongPointerImpl (Tagged< HeapObject > host, TSlot slot)
 
- Public Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ConcreteVisitor >
V8_INLINE ConcurrentHeapVisitor (Isolate *isolate)
 
template<typename T >
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
template<typename T >
size_t VisitStringLocked (Tagged< T > object)
 
- Public Member Functions inherited from v8::internal::HeapVisitor< ConcreteVisitor >
 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)
 
template<typename T >
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
template<VisitorId visitor_id>
void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
template<typename T , typename TBodyDescriptor >
size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
template<VisitorId visitor_id, typename T , typename TBodyDescriptor >
size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
- 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 Attributes

MarkingStatemarking_state_
 

Additional Inherited Members

- Public Types inherited from v8::internal::MarkingVisitorBase< ConcreteVisitor >
using Base = ConcurrentHeapVisitor<ConcreteVisitor>
 
- Static Public Member Functions inherited from v8::internal::MarkingVisitorBase< ConcreteVisitor >
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< ConcreteVisitor >
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 
- Protected Member Functions inherited from v8::internal::MarkingVisitorBase< ConcreteVisitor >
template<typename THeapObjectSlot >
void ProcessStrongHeapObject (Tagged< HeapObject > host, THeapObjectSlot slot, Tagged< HeapObject > heap_object)
 
template<typename THeapObjectSlot >
void ProcessWeakHeapObject (Tagged< HeapObject > host, THeapObjectSlot slot, Tagged< HeapObject > heap_object)
 
template<typename TSlot >
V8_INLINE void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
template<typename TSlot >
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< ConcreteVisitor >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
template<VisitorId visitor_id>
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
ConcreteVisitor * concrete_visitor ()
 
const ConcreteVisitor * concrete_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)
 
template<typename T , typename TBodyDescriptor = typename T::BodyDescriptor>
V8_INLINE size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
template<VisitorId visitor_id, typename T , typename TBodyDescriptor = typename T::BodyDescriptor>
V8_INLINE size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
template<typename TSlot >
std::optional< Tagged< Object > > GetObjectFilterReadOnlyAndSmiFast (TSlot slot) const
 
- Static Protected Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ConcreteVisitor >
template<typename T >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Static Protected Member Functions inherited from v8::internal::HeapVisitor< ConcreteVisitor >
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 ()
 
template<typename T >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Protected Attributes inherited from v8::internal::MarkingVisitorBase< ConcreteVisitor >
MarkingWorklists::Local *const local_marking_worklists_
 
WeakObjects::Local *const local_weak_objects_
 
KeyToValueskey_to_values_ = nullptr
 
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< ConcreteVisitor >
const Heapheap_
 

Detailed Description

template<typename ConcreteVisitor>
class v8::internal::FullMarkingVisitorBase< ConcreteVisitor >

Definition at line 256 of file marking-visitor.h.

Constructor & Destructor Documentation

◆ FullMarkingVisitorBase()

template<typename ConcreteVisitor >
v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::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 )
inline

Definition at line 258 of file marking-visitor.h.

Member Function Documentation

◆ AddStrongReferenceForReferenceSummarizer()

template<typename ConcreteVisitor >
V8_INLINE void v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::AddStrongReferenceForReferenceSummarizer ( Tagged< HeapObject > host,
Tagged< HeapObject > obj )
inline

Definition at line 270 of file marking-visitor.h.

◆ AddWeakReferenceForReferenceSummarizer()

template<typename ConcreteVisitor >
V8_INLINE void v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::AddWeakReferenceForReferenceSummarizer ( Tagged< HeapObject > host,
Tagged< HeapObject > obj )
inline

Definition at line 273 of file marking-visitor.h.

◆ CanUpdateValuesInHeap()

template<typename ConcreteVisitor >
bool v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::CanUpdateValuesInHeap ( )
inlineconstexpr

Definition at line 276 of file marking-visitor.h.

◆ marking_state()

template<typename ConcreteVisitor >
MarkingState * v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::marking_state ( ) const
inline

Definition at line 278 of file marking-visitor.h.

◆ MarkPointerTableEntry()

template<typename ConcreteVisitor >
void v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::MarkPointerTableEntry ( Tagged< HeapObject > obj,
IndirectPointerSlot slot )

Definition at line 894 of file marking-visitor-inl.h.

Here is the call graph for this function:

Member Data Documentation

◆ marking_state_

template<typename ConcreteVisitor >
MarkingState* v8::internal::FullMarkingVisitorBase< ConcreteVisitor >::marking_state_
private

Definition at line 283 of file marking-visitor.h.


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