V8 Project
mark-compact.cc File Reference
+ Include dependency graph for mark-compact.cc:

Go to the source code of this file.

Classes

class  v8::internal::MarkCompactCollector::SweeperTask
 
class  v8::internal::MarkCompactMarkingVisitor
 
class  v8::internal::MarkCompactMarkingVisitor::ObjectStatsTracker< id >
 
class  v8::internal::MarkCompactMarkingVisitor::ObjectStatsTracker< MarkCompactMarkingVisitor::kVisitMap >
 
class  v8::internal::MarkCompactMarkingVisitor::ObjectStatsTracker< MarkCompactMarkingVisitor::kVisitCode >
 
class  v8::internal::MarkCompactMarkingVisitor::ObjectStatsTracker< MarkCompactMarkingVisitor::kVisitSharedFunctionInfo >
 
class  v8::internal::MarkCompactMarkingVisitor::ObjectStatsTracker< MarkCompactMarkingVisitor::kVisitFixedArray >
 
class  v8::internal::CodeMarkingVisitor
 
class  v8::internal::SharedFunctionInfoMarkingVisitor
 
class  v8::internal::RootMarkingVisitor
 
class  v8::internal::StringTableCleaner< finalize_external_strings >
 
class  v8::internal::MarkCompactWeakObjectRetainer
 
class  v8::internal::PointersUpdatingVisitor
 
class  v8::internal::EvacuationWeakObjectRetainer
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 

Macros

#define VISITOR_ID_COUNT_FUNCTION(id)    table_.Register(kVisit##id, ObjectStatsTracker<kVisit##id>::Visit);
 
#define _   kStartTableUnusedEntry
 
#define X   kStartTableInvalidLine
 

Typedefs

typedef StringTableCleaner< falsev8::internal::InternalizedStringTableCleaner
 
typedef StringTableCleaner< truev8::internal::ExternalStringTableCleaner
 

Enumerations

enum  v8::internal::SweepingMode { v8::internal::SWEEP_ONLY , v8::internal::SWEEP_AND_VISIT_LIVE_OBJECTS }
 
enum  v8::internal::SkipListRebuildingMode { v8::internal::REBUILD_SKIP_LIST , v8::internal::IGNORE_SKIP_LIST }
 
enum  v8::internal::FreeSpaceTreatmentMode { v8::internal::IGNORE_FREE_SPACE , v8::internal::ZAP_FREE_SPACE }
 

Functions

static void v8::internal::TraceFragmentation (PagedSpace *space)
 
static void v8::internal::ClearMarkbitsInPagedSpace (PagedSpace *space)
 
static void v8::internal::ClearMarkbitsInNewSpace (NewSpace *space)
 
const char * v8::internal::AllocationSpaceName (AllocationSpace space)
 
static int v8::internal::FreeListFragmentation (PagedSpace *space, Page *p)
 
static HeapObject * v8::internal::ShortCircuitConsString (Object **p)
 
template<class T >
static void v8::internal::DiscoverGreyObjectsWithIterator (Heap *heap, MarkingDeque *marking_deque, T *it)
 
static int v8::internal::MarkWordToObjectStarts (uint32_t mark_bits, int *starts)
 
static void v8::internal::DiscoverGreyObjectsOnPage (MarkingDeque *marking_deque, MemoryChunk *p)
 
static void v8::internal::DiscoverGreyObjectsInSpace (Heap *heap, MarkingDeque *marking_deque, PagedSpace *space)
 
static void v8::internal::DiscoverGreyObjectsInNewSpace (Heap *heap, MarkingDeque *marking_deque)
 
static void v8::internal::UpdatePointer (HeapObject **address, HeapObject *object)
 
static String * v8::internal::UpdateReferenceInExternalStringTableEntry (Heap *heap, Object **p)
 
static void v8::internal::UpdateSlot (Isolate *isolate, ObjectVisitor *v, SlotsBuffer::SlotType slot_type, Address addr)
 
template<MarkCompactCollector::SweepingParallelism mode>
static intptr_t v8::internal::Free (PagedSpace *space, FreeList *free_list, Address start, int size)
 
template<SweepingMode sweeping_mode, MarkCompactCollector::SweepingParallelism parallelism, SkipListRebuildingMode skip_list_mode, FreeSpaceTreatmentMode free_space_mode>
static int v8::internal::Sweep (PagedSpace *space, FreeList *free_list, Page *p, ObjectVisitor *v)
 
static bool v8::internal::SetMarkBitsUnderInvalidatedCode (Code *code, bool value)
 
static bool v8::internal::IsOnInvalidatedCodeObject (Address addr)
 
static bool v8::internal::ShouldStartSweeperThreads (MarkCompactCollector::SweeperType type)
 
static bool v8::internal::ShouldWaitForSweeperThreads (MarkCompactCollector::SweeperType type)
 
static SlotsBuffer::SlotType v8::internal::SlotTypeForRMode (RelocInfo::Mode rmode)
 
static SlotsBuffer::SlotType v8::internal::DecodeSlotType (SlotsBuffer::ObjectSlot slot)
 

Variables

static const int v8::internal::kStartTableEntriesPerLine = 5
 
static const int v8::internal::kStartTableLines = 171
 
static const int v8::internal::kStartTableInvalidLine = 127
 
static const int v8::internal::kStartTableUnusedEntry = 126
 
char v8::internal::kStartTable [kStartTableLines *kStartTableEntriesPerLine]
 

Macro Definition Documentation

◆ _

#define _   kStartTableUnusedEntry

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

◆ VISITOR_ID_COUNT_FUNCTION

#define VISITOR_ID_COUNT_FUNCTION (   id)     table_.Register(kVisit##id, ObjectStatsTracker<kVisit##id>::Visit);

◆ X

#define X   kStartTableInvalidLine

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