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

Public Member Functions

 IterateAndScavengePromotedObjectsVisitor (Scavenger *scavenger)
 
V8_INLINE void VisitMapPointer (Tagged< HeapObject > host) 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
 
void VisitEphemeron (Tagged< HeapObject > obj, int entry, ObjectSlot key, ObjectSlot value) override
 
void VisitExternalPointer (Tagged< HeapObject > host, ExternalPointerSlot slot) override
 
void VisitInstructionStreamPointer (Tagged< Code >, InstructionStreamSlot) final
 
void VisitCodeTarget (Tagged< InstructionStream >, RelocInfo *) final
 
void VisitEmbeddedPointer (Tagged< InstructionStream >, RelocInfo *) final
 
- Public Member Functions inherited from v8::internal::HeapVisitor< IterateAndScavengePromotedObjectsVisitor >
 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 VisitCustomWeakPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end)
 
virtual void VisitPointer (Tagged< HeapObject > host, ObjectSlot p)
 
virtual void VisitPointer (Tagged< HeapObject > host, MaybeObjectSlot p)
 
virtual void VisitCustomWeakPointer (Tagged< HeapObject > host, ObjectSlot p)
 
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)
 
virtual void VisitCppHeapPointer (Tagged< HeapObject > host, CppHeapPointerSlot slot)
 
virtual void VisitIndirectPointer (Tagged< HeapObject > host, IndirectPointerSlot slot, IndirectPointerMode mode)
 
virtual void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedPointerSlot slot)
 
virtual void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedMaybeObjectSlot slot)
 
virtual void VisitTrustedPointerTableEntry (Tagged< HeapObject > host, IndirectPointerSlot slot)
 
virtual void VisitJSDispatchTableEntry (Tagged< HeapObject > host, JSDispatchHandle handle)
 

Static Public Member Functions

static V8_INLINE constexpr bool ShouldUseUncheckedCast ()
 
static V8_INLINE constexpr bool UsePrecomputedObjectSize ()
 

Private Member Functions

template<typename TSlot >
V8_INLINE void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
template<typename THeapObjectSlot >
V8_INLINE void HandleSlot (Tagged< HeapObject > host, THeapObjectSlot slot, Tagged< HeapObject > target)
 

Private Attributes

Scavenger *const scavenger_
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::HeapVisitor< IterateAndScavengePromotedObjectsVisitor >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
IterateAndScavengePromotedObjectsVisitorconcrete_visitor ()
 
const IterateAndScavengePromotedObjectsVisitorconcrete_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::HeapVisitor< IterateAndScavengePromotedObjectsVisitor >
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::HeapVisitor< IterateAndScavengePromotedObjectsVisitor >
const Heapheap_
 

Detailed Description

Definition at line 55 of file scavenger.cc.

Constructor & Destructor Documentation

◆ IterateAndScavengePromotedObjectsVisitor()

v8::internal::IterateAndScavengePromotedObjectsVisitor::IterateAndScavengePromotedObjectsVisitor ( Scavenger * scavenger)
inline

Definition at line 58 of file scavenger.cc.

Member Function Documentation

◆ HandleSlot()

template<typename THeapObjectSlot >
V8_INLINE void v8::internal::IterateAndScavengePromotedObjectsVisitor::HandleSlot ( Tagged< HeapObject > host,
THeapObjectSlot slot,
Tagged< HeapObject > target )
inlineprivate

Definition at line 148 of file scavenger.cc.

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

◆ ShouldUseUncheckedCast()

static V8_INLINE constexpr bool v8::internal::IterateAndScavengePromotedObjectsVisitor::ShouldUseUncheckedCast ( )
inlinestaticconstexpr

Definition at line 61 of file scavenger.cc.

◆ UsePrecomputedObjectSize()

static V8_INLINE constexpr bool v8::internal::IterateAndScavengePromotedObjectsVisitor::UsePrecomputedObjectSize ( )
inlinestaticconstexpr

Definition at line 63 of file scavenger.cc.

◆ VisitCodeTarget()

void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitCodeTarget ( Tagged< InstructionStream > ,
RelocInfo *  )
inlinefinalvirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 124 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitEmbeddedPointer()

void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitEmbeddedPointer ( Tagged< InstructionStream > ,
RelocInfo *  )
inlinefinalvirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 127 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitEphemeron()

void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitEphemeron ( Tagged< HeapObject > obj,
int entry,
ObjectSlot key,
ObjectSlot value )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 77 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitExternalPointer()

void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitExternalPointer ( Tagged< HeapObject > host,
ExternalPointerSlot slot )
inlineoverridevirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 91 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitInstructionStreamPointer()

void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitInstructionStreamPointer ( Tagged< Code > ,
InstructionStreamSlot  )
inlinefinalvirtual

Implements v8::internal::ObjectVisitor.

Definition at line 120 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitMapPointer()

V8_INLINE void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitMapPointer ( Tagged< HeapObject > host)
inlinefinalvirtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 65 of file scavenger.cc.

◆ VisitPointers() [1/2]

V8_INLINE void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitPointers ( Tagged< HeapObject > host,
MaybeObjectSlot start,
MaybeObjectSlot end )
inlinefinalvirtual

Implements v8::internal::ObjectVisitor.

Definition at line 72 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitPointers() [2/2]

V8_INLINE void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitPointers ( Tagged< HeapObject > host,
ObjectSlot start,
ObjectSlot end )
inlinefinalvirtual

Implements v8::internal::ObjectVisitor.

Definition at line 67 of file scavenger.cc.

Here is the call graph for this function:

◆ VisitPointersImpl()

template<typename TSlot >
V8_INLINE void v8::internal::IterateAndScavengePromotedObjectsVisitor::VisitPointersImpl ( Tagged< HeapObject > host,
TSlot start,
TSlot end )
inlineprivate

Definition at line 133 of file scavenger.cc.

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

Member Data Documentation

◆ scavenger_

Scavenger* const v8::internal::IterateAndScavengePromotedObjectsVisitor::scavenger_
private

Definition at line 184 of file scavenger.cc.


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