V8 Project
v8::internal::LargePage Class Reference

#include <spaces.h>

+ Inheritance diagram for v8::internal::LargePage:
+ Collaboration diagram for v8::internal::LargePage:

Public Member Functions

HeapObjectGetObject ()
 
LargePagenext_page () const
 
void set_next_page (LargePage *page)
 
- Public Member Functions inherited from v8::internal::MemoryChunk
Address address ()
 
bool is_valid ()
 
MemoryChunknext_chunk () const
 
MemoryChunkprev_chunk () const
 
void set_next_chunk (MemoryChunk *next)
 
void set_prev_chunk (MemoryChunk *prev)
 
Spaceowner () const
 
void set_owner (Space *space)
 
base::VirtualMemoryreserved_memory ()
 
void InitializeReservedMemory ()
 
void set_reserved_memory (base::VirtualMemory *reservation)
 
bool scan_on_scavenge ()
 
void initialize_scan_on_scavenge (bool scan)
 
void set_scan_on_scavenge (bool scan)
 
int store_buffer_counter ()
 
void set_store_buffer_counter (int counter)
 
bool Contains (Address addr)
 
bool ContainsLimit (Address addr)
 
void SetFlag (int flag)
 
void ClearFlag (int flag)
 
void SetFlagTo (int flag, bool value)
 
bool IsFlagSet (int flag)
 
void SetFlags (intptr_t flags, intptr_t mask)
 
intptr_t GetFlags ()
 
ParallelSweepingState parallel_sweeping ()
 
void set_parallel_sweeping (ParallelSweepingState state)
 
bool TryParallelSweeping ()
 
bool SweepingCompleted ()
 
void ResetLiveBytes ()
 
void IncrementLiveBytes (int by)
 
int LiveBytes ()
 
int write_barrier_counter ()
 
void set_write_barrier_counter (int counter)
 
int progress_bar ()
 
void set_progress_bar (int progress_bar)
 
void ResetProgressBar ()
 
bool IsLeftOfProgressBar (Object **slot)
 
size_t size () const
 
void set_size (size_t size)
 
void SetArea (Address area_start, Address area_end)
 
Executability executable ()
 
bool ContainsOnlyData ()
 
bool InNewSpace ()
 
bool InToSpace ()
 
bool InFromSpace ()
 
Bitmapmarkbits ()
 
void PrintMarkbits ()
 
uint32_t AddressToMarkbitIndex (Address addr)
 
Address MarkbitIndexToAddress (uint32_t index)
 
void InsertAfter (MemoryChunk *other)
 
void Unlink ()
 
Heapheap () const
 
bool IsEvacuationCandidate ()
 
bool ShouldSkipEvacuationSlotRecording ()
 
SkipListskip_list ()
 
void set_skip_list (SkipList *skip_list)
 
SlotsBufferslots_buffer ()
 
SlotsBuffer ** slots_buffer_address ()
 
void MarkEvacuationCandidate ()
 
void ClearEvacuationCandidate ()
 
Address area_start ()
 
Address area_end ()
 
int area_size ()
 
bool CommitArea (size_t requested)
 
size_t CommittedPhysicalMemory ()
 

Static Private Member Functions

static LargePageInitialize (Heap *heap, MemoryChunk *chunk)
 

Friends

class MemoryAllocator
 

Additional Inherited Members

- Public Types inherited from v8::internal::MemoryChunk
enum  MemoryChunkFlags {
  IS_EXECUTABLE , ABOUT_TO_BE_FREED , POINTERS_TO_HERE_ARE_INTERESTING , POINTERS_FROM_HERE_ARE_INTERESTING ,
  SCAN_ON_SCAVENGE , IN_FROM_SPACE , IN_TO_SPACE , NEW_SPACE_BELOW_AGE_MARK ,
  CONTAINS_ONLY_DATA , EVACUATION_CANDIDATE , RESCAN_ON_EVACUATION , WAS_SWEPT ,
  HAS_PROGRESS_BAR , NUM_MEMORY_CHUNK_FLAGS
}
 
enum  ParallelSweepingState { SWEEPING_DONE , SWEEPING_FINALIZE , SWEEPING_IN_PROGRESS , SWEEPING_PENDING }
 
- Static Public Member Functions inherited from v8::internal::MemoryChunk
static MemoryChunkFromAddress (Address a)
 
static const MemoryChunkFromAddress (const byte *a)
 
static MemoryChunkFromAnyPointerAddress (Heap *heap, Address addr)
 
static void IncrementLiveBytesFromGC (Address address, int by)
 
static void IncrementLiveBytesFromMutator (Address address, int by)
 
static uint32_t FastAddressToMarkbitIndex (Address addr)
 
static void UpdateHighWaterMark (Address mark)
 
- Static Public Attributes inherited from v8::internal::MemoryChunk
static const int kWriteBarrierCounterGranularity = 500
 
static const int kPointersToHereAreInterestingMask
 
static const int kPointersFromHereAreInterestingMask
 
static const int kEvacuationCandidateMask = 1 << EVACUATION_CANDIDATE
 
static const int kSkipEvacuationSlotsRecordingMask
 
static const intptr_t kAlignment
 
static const intptr_t kAlignmentMask = kAlignment - 1
 
static const intptr_t kSizeOffset = 0
 
static const intptr_t kLiveBytesOffset
 
static const size_t kSlotsBufferOffset = kLiveBytesOffset + kIntSize
 
static const size_t kWriteBarrierCounterOffset
 
static const size_t kHeaderSize
 
static const int kBodyOffset
 
static const int kObjectStartAlignment = 32 * kPointerSize
 
static const int kObjectStartOffset
 
static const int kFlagsOffset = kPointerSize
 
- Static Protected Member Functions inherited from v8::internal::MemoryChunk
static MemoryChunkInitialize (Heap *heap, Address base, size_t size, Address area_start, Address area_end, Executability executable, Space *owner)
 
- Protected Attributes inherited from v8::internal::MemoryChunk
size_t size_
 
intptr_t flags_
 
Address area_start_
 
Address area_end_
 
base::VirtualMemory reservation_
 
Address owner_
 
Heapheap_
 
int store_buffer_counter_
 
int live_byte_count_
 
SlotsBufferslots_buffer_
 
SkipListskip_list_
 
intptr_t write_barrier_counter_
 
int progress_bar_
 
int high_water_mark_
 
base::AtomicWord parallel_sweeping_
 
intptr_t available_in_small_free_list_
 
intptr_t available_in_medium_free_list_
 
intptr_t available_in_large_free_list_
 
intptr_t available_in_huge_free_list_
 
intptr_t non_available_small_blocks_
 

Detailed Description

Definition at line 796 of file spaces.h.

Member Function Documentation

◆ GetObject()

HeapObject* v8::internal::LargePage::GetObject ( )
inline

Definition at line 798 of file spaces.h.

798 { return HeapObject::FromAddress(area_start()); }
static HeapObject * FromAddress(Address address)
Definition: objects-inl.h:1464

References v8::internal::MemoryChunk::area_start(), and v8::internal::HeapObject::FromAddress().

Referenced by v8::internal::LargeObjectSpace::AllocateRaw(), v8::internal::LargeObjectSpace::FindObject(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer(), v8::internal::StoreBuffer::IteratePointersToNewSpace(), and v8::internal::LargeObjectIterator::Next().

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

◆ Initialize()

LargePage * v8::internal::LargePage::Initialize ( Heap heap,
MemoryChunk chunk 
)
inlinestaticprivate

Definition at line 292 of file spaces-inl.h.

292  {
294  return static_cast<LargePage*>(chunk);
295 }
IncrementalMarking * incremental_marking()
Definition: heap.h:1205
void SetOldSpacePageFlags(MemoryChunk *chunk)
Heap * heap() const
Definition: spaces.h:603

References v8::internal::MemoryChunk::heap(), v8::internal::Heap::incremental_marking(), and v8::internal::IncrementalMarking::SetOldSpacePageFlags().

Referenced by v8::internal::MemoryAllocator::AllocateLargePage().

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

◆ next_page()

LargePage* v8::internal::LargePage::next_page ( ) const
inline

Definition at line 800 of file spaces.h.

800  {
801  return static_cast<LargePage*>(next_chunk());
802  }
MemoryChunk * next_chunk() const
Definition: spaces.h:291

References v8::internal::MemoryChunk::next_chunk().

Referenced by v8::internal::IncrementalMarking::ActivateIncrementalWriteBarrier(), v8::internal::LargeObjectSpace::CommittedPhysicalMemory(), v8::internal::IncrementalMarking::DeactivateIncrementalWriteBarrier(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), v8::internal::LargeObjectIterator::Next(), and v8::internal::LargeObjectSpace::TearDown().

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

◆ set_next_page()

void v8::internal::LargePage::set_next_page ( LargePage page)
inline

Definition at line 804 of file spaces.h.

804 { set_next_chunk(page); }
void set_next_chunk(MemoryChunk *next)
Definition: spaces.h:299

References v8::internal::MemoryChunk::set_next_chunk().

Referenced by v8::internal::LargeObjectSpace::AllocateRaw(), and v8::internal::LargeObjectSpace::FreeUnmarkedObjects().

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

Friends And Related Function Documentation

◆ MemoryAllocator

friend class MemoryAllocator
friend

Definition at line 809 of file spaces.h.


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