#include "src/heap/paged-spaces.h"
#include <atomic>
#include "src/base/logging.h"
#include "src/base/platform/mutex.h"
#include "src/common/globals.h"
#include "src/execution/isolate.h"
#include "src/execution/vm-state-inl.h"
#include "src/flags/flags.h"
#include "src/heap/allocation-observer.h"
#include "src/heap/array-buffer-sweeper.h"
#include "src/heap/free-list-inl.h"
#include "src/heap/gc-tracer-inl.h"
#include "src/heap/gc-tracer.h"
#include "src/heap/heap.h"
#include "src/heap/incremental-marking.h"
#include "src/heap/marking-state-inl.h"
#include "src/heap/memory-allocator.h"
#include "src/heap/memory-chunk-layout.h"
#include "src/heap/mutable-page-metadata-inl.h"
#include "src/heap/page-metadata-inl.h"
#include "src/heap/paged-spaces-inl.h"
#include "src/heap/read-only-heap.h"
#include "src/heap/safepoint.h"
#include "src/heap/spaces.h"
#include "src/heap/sweeper.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/objects/string.h"
#include "src/utils/utils.h"
namespace v8 {
namespace internal {
PagedSpaceObjectIterator::PagedSpaceObjectIterator(Heap* heap,
const PagedSpaceBase* space)
: … { … }
bool PagedSpaceObjectIterator::AdvanceToNextPage() { … }
PagedSpaceBase::PagedSpaceBase(Heap* heap, AllocationSpace space,
Executability executable,
std::unique_ptr<FreeList> free_list,
CompactionSpaceKind compaction_space_kind)
: … { … }
PageMetadata* PagedSpaceBase::InitializePage(
MutablePageMetadata* mutable_page_metadata) { … }
void PagedSpaceBase::TearDown() { … }
void PagedSpaceBase::MergeCompactionSpace(CompactionSpace* other) { … }
size_t PagedSpaceBase::CommittedPhysicalMemory() const { … }
void PagedSpaceBase::IncrementCommittedPhysicalMemory(size_t increment_value) { … }
void PagedSpaceBase::DecrementCommittedPhysicalMemory(size_t decrement_value) { … }
#if DEBUG
void PagedSpaceBase::VerifyCommittedPhysicalMemory() const { … }
#endif
bool PagedSpaceBase::ContainsSlow(Address addr) const { … }
void PagedSpaceBase::RefineAllocatedBytesAfterSweeping(PageMetadata* page) { … }
PageMetadata* PagedSpaceBase::RemovePageSafe(int size_in_bytes) { … }
void PagedSpaceBase::AddPageImpl(PageMetadata* page) { … }
size_t PagedSpaceBase::AddPage(PageMetadata* page) { … }
void PagedSpaceBase::RemovePage(PageMetadata* page) { … }
size_t PagedSpaceBase::ShrinkPageToHighWaterMark(PageMetadata* page) { … }
void PagedSpaceBase::ResetFreeList() { … }
void PagedSpaceBase::ShrinkImmortalImmovablePages() { … }
bool PagedSpaceBase::TryExpand(LocalHeap* local_heap, AllocationOrigin origin) { … }
int PagedSpaceBase::CountTotalPages() const { … }
size_t PagedSpaceBase::Available() const { … }
size_t PagedSpaceBase::Waste() const { … }
void PagedSpaceBase::ReleasePage(PageMetadata* page) { … }
void PagedSpaceBase::ReleasePageImpl(PageMetadata* page,
MemoryAllocator::FreeMode free_mode) { … }
std::unique_ptr<ObjectIterator> PagedSpaceBase::GetObjectIterator(Heap* heap) { … }
#ifdef DEBUG
void PagedSpaceBase::Print() { … }
#endif
#ifdef VERIFY_HEAP
void PagedSpaceBase::Verify(Isolate* isolate,
SpaceVerificationVisitor* visitor) const { … }
void PagedSpaceBase::VerifyLiveBytes() const { … }
#endif
#ifdef DEBUG
void PagedSpaceBase::VerifyCountersAfterSweeping(Heap* heap) const { … }
void PagedSpaceBase::VerifyCountersBeforeConcurrentSweeping() const { … }
#endif
void PagedSpaceBase::AddRangeToActiveSystemPages(PageMetadata* page,
Address start, Address end) { … }
void PagedSpaceBase::ReduceActiveSystemPages(
PageMetadata* page, ActiveSystemPages active_system_pages) { … }
void PagedSpaceBase::UnlinkFreeListCategories(PageMetadata* page) { … }
size_t PagedSpaceBase::RelinkFreeListCategories(PageMetadata* page) { … }
namespace {
void DropFreeListCategories(PageMetadata* page, FreeList* free_list) { … }
}
void PagedSpaceBase::RefillFreeList() { … }
AllocatorPolicy* PagedSpace::CreateAllocatorPolicy(MainAllocator* allocator) { … }
void CompactionSpace::NotifyNewPage(PageMetadata* page) { … }
void CompactionSpace::RefillFreeList() { … }
CompactionSpaceCollection::CompactionSpaceCollection(
Heap* heap, CompactionSpaceKind compaction_space_kind)
: … { … }
void OldSpace::AddPromotedPage(PageMetadata* page) { … }
void OldSpace::ReleasePage(PageMetadata* page) { … }
void StickySpace::AdjustDifferenceInAllocatedBytes(size_t diff) { … }
void SharedSpace::ReleasePage(PageMetadata* page) { … }
}
}