v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <spaces.h>
Static Public Member Functions | |
static bool | IsAlignedToPageSize (Address a) |
static Page * | Initialize (Heap *heap, MemoryChunk *chunk, Executability executable, PagedSpace *owner) |
Static Public Member Functions inherited from MemoryChunk | |
static MemoryChunk * | FromAddress (Address a) |
static MemoryChunk * | FromAnyPointerAddress (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 | |
static const int | kPageSize = 1 << kPageSizeBits |
static const int | kMaxRegularHeapObjectSize = kPageSize - kObjectStartOffset |
static const intptr_t | kPageAlignmentMask = (1 << kPageSizeBits) - 1 |
Static Public Attributes inherited from MemoryChunk | |
static const int | kWriteBarrierCounterGranularity = 500 |
static const int | kPointersToHereAreInterestingMask |
static const int | kPointersFromHereAreInterestingMask |
static const int | kEvacuationCandidateMask |
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 |
Friends | |
class | MemoryAllocator |
|
inline |
|
inline |
Definition at line 842 of file spaces.h.
References MemoryChunk::ClearFlag(), and MemoryChunk::WAS_SWEPT_CONSERVATIVELY.
|
inline |
Definition at line 841 of file spaces.h.
References MemoryChunk::ClearFlag(), and MemoryChunk::WAS_SWEPT_PRECISELY.
|
inlinestatic |
Definition at line 163 of file spaces-inl.h.
References MemoryChunk::area_size(), MemoryChunk::area_start(), ASSERT, PagedSpace::Free(), PagedSpace::IncreaseCapacity(), Heap::incremental_marking(), Page::kMaxRegularHeapObjectSize, MemoryChunk::owner(), and IncrementalMarking::SetOldSpacePageFlags().
Referenced by MemoryAllocator::AllocatePage().
void InitializeAsAnchor | ( | PagedSpace * | owner | ) |
Definition at line 419 of file spaces.cc.
References Page::set_next_page(), MemoryChunk::set_owner(), and Page::set_prev_page().
Referenced by PagedSpace::PagedSpace().
|
inline |
Definition at line 775 of file spaces.h.
References Page::kPageAlignmentMask, and v8::internal::OffsetFrom().
|
inline |
Definition at line 783 of file spaces.h.
References MemoryChunk::FromAddress(), and v8::internal::kPointerSize.
|
inline |
Definition at line 800 of file spaces.h.
References MemoryChunk::address().
|
inlinestatic |
Definition at line 795 of file spaces.h.
References Page::kPageAlignmentMask, and v8::internal::OffsetFrom().
|
inline |
Definition at line 839 of file spaces.h.
References MemoryChunk::SetFlag(), and MemoryChunk::WAS_SWEPT_CONSERVATIVELY.
Referenced by MarkCompactCollector::SweepConservatively().
|
inline |
Definition at line 838 of file spaces.h.
References MemoryChunk::SetFlag(), and MemoryChunk::WAS_SWEPT_PRECISELY.
|
inline |
Definition at line 238 of file spaces-inl.h.
References ASSERT, MemoryChunk::next_chunk(), and MemoryChunk::owner().
Referenced by PagedSpace::AdvanceSweeper(), PagedSpace::Expand(), PagedSpace::FirstPage(), PagedSpace::PrepareForMarkCompact(), PagedSpace::ReleasePage(), and TEST().
|
inline |
Definition at line 806 of file spaces.h.
References MemoryChunk::address(), and ASSERT_PAGE_OFFSET.
|
inline |
Definition at line 244 of file spaces-inl.h.
References ASSERT, MemoryChunk::owner(), and MemoryChunk::prev_chunk().
Referenced by PagedSpace::Expand(), and PagedSpace::LastPage().
void ResetFreeListStatistics | ( | ) |
Definition at line 719 of file spaces.cc.
References MemoryChunk::available_in_huge_free_list_, MemoryChunk::available_in_large_free_list_, MemoryChunk::available_in_medium_free_list_, MemoryChunk::available_in_small_free_list_, and MemoryChunk::non_available_small_blocks_.
Referenced by PagedSpace::ResetFreeListStatistics().
|
inline |
Definition at line 250 of file spaces-inl.h.
References ASSERT, MemoryChunk::owner(), and MemoryChunk::set_next_chunk().
Referenced by Page::InitializeAsAnchor(), and PagedSpace::TearDown().
|
inline |
Definition at line 256 of file spaces-inl.h.
References ASSERT, MemoryChunk::owner(), and MemoryChunk::set_prev_chunk().
Referenced by Page::InitializeAsAnchor(), and PagedSpace::TearDown().
|
inline |
Definition at line 836 of file spaces.h.
References Page::WasSweptConservatively(), and Page::WasSweptPrecisely().
Referenced by MarkCompactCollector::CollectEvacuationCandidates(), PagedSpace::PrepareForMarkCompact(), PagedSpace::ReleasePage(), and MarkCompactCollector::SweepConservatively().
|
inline |
Definition at line 835 of file spaces.h.
References MemoryChunk::IsFlagSet(), and MemoryChunk::WAS_SWEPT_CONSERVATIVELY.
Referenced by Page::WasSwept().
|
inline |
Definition at line 834 of file spaces.h.
References MemoryChunk::IsFlagSet(), and MemoryChunk::WAS_SWEPT_PRECISELY.
Referenced by HeapObjectIterator::HeapObjectIterator(), PagedSpace::ShouldBeSweptLazily(), and Page::WasSwept().
|
friend |
|
static |
Definition at line 820 of file spaces.h.
Referenced by Heap::AllocateForeign(), Heap::AllocateHeapNumber(), Heap::AllocateSymbol(), Map::CanHaveMoreTransitions(), Heap::ConfigureHeap(), StaticVisitorBase::GetVisitorIdForSize(), Page::Initialize(), MemoryAllocator::MaxAvailable(), MarkCompactCollector::MigrateObject(), TEST(), and MarkCompactCollector::TryPromoteObject().
|
static |
Definition at line 823 of file spaces.h.
Referenced by StoreBuffer::Compact(), NewSpacePage::FromAddress(), SemiSpace::GrowTo(), Page::INLINE(), Page::IsAlignedToPageSize(), NewSpacePage::IsAtEnd(), NewSpacePage::IsAtStart(), SkipList::RegionNumber(), and SemiSpace::ShrinkTo().
|
static |
Definition at line 814 of file spaces.h.
Referenced by CodeRange::AllocateRawMemory(), SemiSpace::Commit(), Heap::ConfigureHeap(), NewSpace::EffectiveCapacity(), StoreBuffer::EnsureSpace(), Heap::FreeQueuedChunks(), SemiSpace::GrowTo(), PromotionQueue::Initialize(), MemoryAllocator::MaxAvailable(), LargeObjectSpace::ObjectSizeFor(), PagedSpace::PagedSpace(), Heap::RememberUnmappedPage(), MemoryAllocator::SetUp(), SemiSpace::ShrinkTo(), Serializer::SpaceAreaSize(), and TEST().