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

Public Member Functions

 EvacuateNewSpaceVisitor (Heap *heap, EvacuationAllocator *local_allocator, RecordMigratedSlotVisitor *record_visitor, PretenuringHandler::PretenuringFeedbackMap *local_pretenuring_feedback)
 
bool Visit (Tagged< HeapObject > object, int size) override
 
intptr_t promoted_size ()
 
- Public Member Functions inherited from v8::internal::EvacuateVisitorBase
void AddObserver (MigrationObserver *observer)
 
- Public Member Functions inherited from v8::internal::HeapObjectVisitor
virtual ~HeapObjectVisitor ()=default
 

Private Member Functions

bool TryEvacuateWithoutCopy (Tagged< HeapObject > object)
 
AllocationSpace AllocateTargetObject (Tagged< HeapObject > old_object, int size, Tagged< HeapObject > *target_object)
 
AllocationResult AllocateInOldSpace (int size_in_bytes, AllocationAlignment alignment)
 

Private Attributes

intptr_t promoted_size_
 
PretenuringHandler *const pretenuring_handler_
 
PretenuringHandler::PretenuringFeedbackMaplocal_pretenuring_feedback_
 
bool is_incremental_marking_
 
const bool shortcut_strings_
 

Additional Inherited Members

- Protected Types inherited from v8::internal::EvacuateVisitorBase
enum  MigrationMode { kFast , kObserved }
 
using MigrateFunction
 
- Protected Member Functions inherited from v8::internal::EvacuateVisitorBase
PtrComprCageBase cage_base ()
 
 EvacuateVisitorBase (Heap *heap, EvacuationAllocator *local_allocator, RecordMigratedSlotVisitor *record_visitor)
 
bool TryEvacuateObject (AllocationSpace target_space, Tagged< HeapObject > object, int size, Tagged< HeapObject > *target_object)
 
bool ShouldPromoteIntoSharedHeap (Tagged< Map > map)
 
void ExecuteMigrationObservers (AllocationSpace dest, Tagged< HeapObject > src, Tagged< HeapObject > dst, int size)
 
void MigrateObject (Tagged< HeapObject > dst, Tagged< HeapObject > src, int size, AllocationSpace dest)
 
- Static Protected Member Functions inherited from v8::internal::EvacuateVisitorBase
template<MigrationMode mode>
static void RawMigrateObject (EvacuateVisitorBase *base, Tagged< HeapObject > dst, Tagged< HeapObject > src, int size, AllocationSpace dest)
 
- Protected Attributes inherited from v8::internal::EvacuateVisitorBase
Heapheap_
 
EvacuationAllocatorlocal_allocator_
 
RecordMigratedSlotVisitorrecord_visitor_
 
std::vector< MigrationObserver * > observers_
 
MigrateFunction migration_function_
 
const bool shared_string_table_
 
std::optional< base::RandomNumberGeneratorrng_
 

Detailed Description

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

Constructor & Destructor Documentation

◆ EvacuateNewSpaceVisitor()

v8::internal::EvacuateNewSpaceVisitor::EvacuateNewSpaceVisitor ( Heap * heap,
EvacuationAllocator * local_allocator,
RecordMigratedSlotVisitor * record_visitor,
PretenuringHandler::PretenuringFeedbackMap * local_pretenuring_feedback )
inlineexplicit

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

Member Function Documentation

◆ AllocateInOldSpace()

AllocationResult v8::internal::EvacuateNewSpaceVisitor::AllocateInOldSpace ( int size_in_bytes,
AllocationAlignment alignment )
inlineprivate

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

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

◆ AllocateTargetObject()

AllocationSpace v8::internal::EvacuateNewSpaceVisitor::AllocateTargetObject ( Tagged< HeapObject > old_object,
int size,
Tagged< HeapObject > * target_object )
inlineprivate

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

Here is the call graph for this function:

◆ promoted_size()

intptr_t v8::internal::EvacuateNewSpaceVisitor::promoted_size ( )
inline

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

◆ TryEvacuateWithoutCopy()

bool v8::internal::EvacuateNewSpaceVisitor::TryEvacuateWithoutCopy ( Tagged< HeapObject > object)
inlineprivate

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

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

◆ Visit()

bool v8::internal::EvacuateNewSpaceVisitor::Visit ( Tagged< HeapObject > object,
int size )
inlineoverridevirtual

Implements v8::internal::HeapObjectVisitor.

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

Here is the call graph for this function:

Member Data Documentation

◆ is_incremental_marking_

bool v8::internal::EvacuateNewSpaceVisitor::is_incremental_marking_
private

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

◆ local_pretenuring_feedback_

PretenuringHandler::PretenuringFeedbackMap* v8::internal::EvacuateNewSpaceVisitor::local_pretenuring_feedback_
private

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

◆ pretenuring_handler_

PretenuringHandler* const v8::internal::EvacuateNewSpaceVisitor::pretenuring_handler_
private

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

◆ promoted_size_

intptr_t v8::internal::EvacuateNewSpaceVisitor::promoted_size_
private

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

◆ shortcut_strings_

const bool v8::internal::EvacuateNewSpaceVisitor::shortcut_strings_
private

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


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