/ark/js_runtime/ecmascript/mem/ |
D | region-inl.h | 27 inline void Region::SetSpace(Space *space) in SetSpace() 32 RememberedSet *Region::CreateRememberedSet() in CreateRememberedSet() 42 RememberedSet *Region::GetOrCreateCrossRegionRememberedSet() in GetOrCreateCrossRegionRememberedSet() 53 RememberedSet *Region::GetOrCreateOldToNewRememberedSet() in GetOrCreateOldToNewRememberedSet() 64 void Region::InsertCrossRegionRememberedSet(uintptr_t addr) in InsertCrossRegionRememberedSet() 70 void Region::AtomicInsertCrossRegionRememberedSet(uintptr_t addr) in AtomicInsertCrossRegionRememberedSet() 76 void Region::InsertOldToNewRememberedSet(uintptr_t addr) in InsertOldToNewRememberedSet() 82 void Region::AtomicInsertOldToNewRememberedSet(uintptr_t addr) in AtomicInsertOldToNewRememberedSet() 88 WorkerHelper *Region::GetWorkList() const in GetWorkList() 93 void Region::DeleteMarkBitmap() in DeleteMarkBitmap() [all …]
|
D | sparse_space.cpp | 35 Region *region = heapRegionAllocator_->AllocateAlignedRegion(this, DEFAULT_REGION_SIZE); in Initialize() 89 Region *region = heapRegionAllocator_->AllocateAlignedRegion(this, DEFAULT_REGION_SIZE); in Expand() 120 EnumerateRegions([this](Region *current) { in PrepareSweeping() 134 Region *current = GetSweepingRegionSafe(); in AsyncSweeping() 150 EnumerateRegions([this](Region *current) { in Sweeping() 164 Region *region = nullptr; in FillSweptRegion() 172 void SparseSpace::AddSweepingRegion(Region *region) in AddSweepingRegion() 180 std::sort(sweepingList_.begin(), sweepingList_.end(), [](Region *first, Region *second) { in SortSweepingRegion() 185 Region *SparseSpace::GetSweepingRegionSafe() in GetSweepingRegionSafe() 188 Region *region = nullptr; in GetSweepingRegionSafe() [all …]
|
D | sparse_space.h | 59 void AddSweepingRegion(Region *region); 61 Region *GetSweepingRegionSafe(); 62 void AddSweptRegionSafe(Region *region); 63 Region *GetSweptRegionSafe(); 65 void FreeRegion(Region *current, bool isMain = true); 66 void FreeLiveRange(Region *current, uintptr_t freeStart, uintptr_t freeEnd, bool isMain); 68 void DetachFreeObjectSet(Region *region); 94 std::vector<Region *> sweepingList_; 95 std::vector<Region *> sweptList_; 113 Region *TryToGetExclusiveRegion(size_t size); [all …]
|
D | parallel_marker-inl.h | 35 Region *objectRegion = Region::ObjectAddressToRange(object); in MarkObject() 63 Region *objectRegion = Region::ObjectAddressToRange(start.SlotAddress()); in HandleRangeRoots() 72 inline void NonMovableMarker::HandleOldToNewRSet(uint32_t threadId, Region *region) in HandleOldToNewRSet() 91 inline void NonMovableMarker::RecordWeakReference(uint32_t threadId, JSTaggedType *ref, Region *obj… in RecordWeakReference() 94 Region *valueRegion = Region::ObjectAddressToRange(value.GetTaggedWeakRef()); in RecordWeakReference() 115 Region *objectRegion = Region::ObjectAddressToRange(start.SlotAddress()); in HandleRangeRoots() 124 inline void MovableMarker::HandleOldToNewRSet(uint32_t threadId, Region *region) in HandleOldToNewRSet() 191 return Region::ObjectAddressToRange(dst)->InYoungGeneration(); in UpdateForwardAddressIfFailed() 196 Region *objectRegion = Region::ObjectAddressToRange(object); in MarkObject() 205 Region *valueRegion = Region::ObjectAddressToRange(dst); in MarkObject() [all …]
|
D | parallel_evacuation.h | 78 …Fragment(ParallelEvacuation *evacuation, Region *region) : evacuation_(evacuation), region_(region… in Fragment() 81 inline Region *GetRegion() in GetRegion() 92 Region *region_; 97 …EvacuationFragment(ParallelEvacuation *evacuation, Region *region) : Fragment(evacuation, region) … in EvacuationFragment() 103 …UpdateRSetFragment(ParallelEvacuation *evacuation, Region *region) : Fragment(evacuation, region) … in UpdateRSetFragment() 109 …UpdateNewRegionFragment(ParallelEvacuation *evacuation, Region *region) : Fragment(evacuation, reg… in UpdateNewRegionFragment() 115 UpdateAndSweepNewRegionFragment(ParallelEvacuation *evacuation, Region *region) in UpdateAndSweepNewRegionFragment() 124 void EvacuateRegion(TlabAllocator *allocator, Region *region); 127 inline bool IsWholeRegionEvacuate(Region *region); 134 void UpdateRSet(Region *region); [all …]
|
D | region.h | 53 class Region { 55 Region(Space *space, Heap *heap, uintptr_t allocateBase, uintptr_t begin, in Region() function 69 ~Region() = default; 70 NO_COPY_SEMANTIC(Region); 71 NO_MOVE_SEMANTIC(Region); 82 void LinkNext(Region *next) in LinkNext() 87 Region *GetNext() const in GetNext() 92 void LinkPrev(Region *prev) in LinkPrev() 97 Region *GetPrev() const in GetPrev() 170 static Region *ObjectAddressToRange(TaggedObject *obj) in ObjectAddressToRange() [all …]
|
D | space.cpp | 45 EnumerateRegions([this](Region *current) { ClearAndFreeRegion(current); }); in ReclaimRegions() 50 void Space::ClearAndFreeRegion(Region *region) in ClearAndFreeRegion() 68 Region *region = Region::ObjectAddressToRange(object); in ContainObject() 87 size_t alignedSize = AlignUp(objectSize + sizeof(Region), PANDA_POOL_ALIGNMENT_IN_BYTES); in Allocate() 92 Region *region = heapRegionAllocator_->AllocateAlignedRegion(this, alignedSize); in Allocate() 100 Region *currentRegion = GetRegionList().GetFirst(); in Sweeping() 102 Region *next = currentRegion->GetNext(); in Sweeping() 122 EnumerateRegions([&](Region *region) { in IterateOverObjects()
|
D | space.h | 148 Region *GetCurrentRegion() const in GetCurrentRegion() 158 EcmaList<Region> &GetRegionList() in GetRegionList() 163 const EcmaList<Region> &GetRegionList() const in GetRegionList() 169 inline void EnumerateRegions(const Callback &cb, Region *region = nullptr) const; 171 inline void AddRegion(Region *region); 172 inline void RemoveRegion(Region *region); 182 void ClearAndFreeRegion(Region *region); 188 EcmaList<Region> regionList_ {};
|
D | parallel_marker.h | 28 class Region; variable 42 void ProcessOldToNew(uint32_t threadId, Region *region); // for SemiGC 62 virtual inline void HandleOldToNewRSet(uint32_t threadId, Region *region) = 0; 67 [[maybe_unused]] Region *objectRegion) in RecordWeakReference() 87 inline void HandleOldToNewRSet(uint32_t threadId, Region *region) override; 88 …inline void RecordWeakReference(uint32_t threadId, JSTaggedType *ref, Region *objectRegion) overri… 102 inline void HandleOldToNewRSet(uint32_t threadId, Region *region) override; 122 …inline void RecordWeakReference(uint32_t threadId, JSTaggedType *ref, Region *objectRegion = nullp… 140 …inline void RecordWeakReference(uint32_t threadId, JSTaggedType *ref, Region *objectRegion = nullp…
|
D | parallel_evacuation-inl.h | 29 bool ParallelEvacuation::IsWholeRegionEvacuate(Region *region) in IsWholeRegionEvacuate() 55 Region *objectRegion = Region::ObjectAddressToRange(value); in UpdateWeakObjectSlot() 86 Region *region = Region::ObjectAddressToRange(object); in SetObjectFieldRSet() 91 Region *valueRegion = Region::ObjectAddressToRange(value); in SetObjectFieldRSet()
|
D | allocator.h | 25 class Region; variable 79 inline void Initialize(Region *region); 84 inline void AddFree(Region *region); 89 inline void CollectFreeObjectSet(Region *region); 90 inline void DetachFreeObjectSet(Region *region);
|
D | barriers-inl.h | 28 Region *objectRegion = Region::ObjectAddressToRange(static_cast<TaggedObject *>(obj)); in WriteBarrier() 29 Region *valueRegion = Region::ObjectAddressToRange(reinterpret_cast<TaggedObject *>(value)); in WriteBarrier()
|
D | parallel_evacuation.cpp | 59 heap_->GetFromSpace()->EnumerateRegions([this] (Region *current) { in EvacuateSpace() 63 heap_->GetOldSpace()->EnumerateCollectRegionSet([this](Region *current) { in EvacuateSpace() 96 void ParallelEvacuation::EvacuateRegion(TlabAllocator *allocator, Region *region) in EvacuateRegion() 159 Region *object_region = Region::ObjectAddressToRange(value.GetTaggedObject()); in VerifyHeapObject() 181 heap_->GetNewSpace()->EnumerateRegions([&] (Region *current) { in UpdateReference() 190 heap_->EnumerateOldSpaceRegions([this, &oldRegionCount] (Region *current) { in UpdateReference() 259 … Region *objectRegion = Region::ObjectAddressToRange(reinterpret_cast<TaggedObject *>(header)); in UpdateWeakReference() 288 void ParallelEvacuation::UpdateRSet(Region *region) in UpdateRSet() 295 Region *valueRegion = Region::ObjectAddressToRange(slot.GetTaggedObjectHeader()); in UpdateRSet() 314 void ParallelEvacuation::UpdateNewRegionReference(Region *region) in UpdateNewRegionReference() [all …]
|
D | allocator-inl.h | 60 void FreeListAllocator::Initialize(Region *region) in Initialize() 72 void FreeListAllocator::AddFree(Region *region) in AddFree() 85 Region::ObjectAddressToRange(ret)->IncrementAliveObject(size); in Allocate() 105 Region::ObjectAddressToRange(begin)->IncrementAliveObject(size); in Allocate() 112 Region::ObjectAddressToRange(ret)->IncrementAliveObject(size); in Allocate() 159 inline void FreeListAllocator::CollectFreeObjectSet(Region *region) in CollectFreeObjectSet() 170 inline void FreeListAllocator::DetachFreeObjectSet(Region *region) in DetachFreeObjectSet()
|
D | space-inl.h | 22 void Space::AddRegion(Region *region) in AddRegion() 30 void Space::RemoveRegion(Region *region) in RemoveRegion() 39 void Space::EnumerateRegions(const Callback &cb, Region *end) const in EnumerateRegions() 41 Region *current = regionList_.GetFirst(); in EnumerateRegions()
|
D | heap_region_allocator.cpp | 23 Region *HeapRegionAllocator::AllocateAlignedRegion(Space *space, size_t capacity) in AllocateAlignedRegion() 49 …uintptr_t begin = AlignUp(mem + sizeof(Region), static_cast<size_t>(MemAlignment::MEM_ALIGN_REGION… in AllocateAlignedRegion() 52 return new (ToVoidPtr(mem)) Region(space, space->GetHeap(), mem, begin, end, in AllocateAlignedRegion() 56 void HeapRegionAllocator::FreeRegion(Region *region) in FreeRegion()
|
D | parallel_marker.cpp | 38 void Marker::ProcessOldToNew(uint32_t threadId, Region *region) in ProcessOldToNew() 55 Region *rootRegion = Region::ObjectAddressToRange(root); in ProcessMarkStack() 69 Region *valueRegion = Region::ObjectAddressToRange(obj); in ProcessMarkStack() 102 Region *rootRegion = Region::ObjectAddressToRange(root); in ProcessMarkStack()
|
D | full_gc.cpp | 56 auto callback = [](Region *current) { in InitializePhase() 100 Region *objectRegion = Region::ObjectAddressToRange(header); in SweepPhases() 121 Region *objectRegion = Region::ObjectAddressToRange(header); in SweepPhases()
|
/ark/runtime_core/runtime/mem/ |
D | region_space.cpp | 20 InternalAllocatorPtr Region::GetInternalAllocator() in GetInternalAllocator() 25 void Region::CreateRemSet() in CreateRemSet() 31 MarkBitmap *Region::CreateMarkBitmap() in CreateMarkBitmap() 44 void Region::SetMarkBit(ObjectHeader *object) in SetMarkBit() 50 uint32_t Region::CalcLiveBytes() const in CalcLiveBytes() 59 void Region::Destroy() in Destroy() 83 ASSERT(Region::IsAlignment(regions_begin, region_size_)); in Init() 87 size_t size = num_regions * sizeof(Region *); in Init() 88 auto data = reinterpret_cast<Region **>(allocator_->Alloc(size)); in Init() 90 occupied_ = Span<Region *>(data, num_regions); in Init() [all …]
|
D | region_space.h | 45 class Region { 47 NO_THREAD_SANITIZE explicit Region(RegionSpace *space, uintptr_t begin, uintptr_t end) in Region() function 61 ~Region() = default; 63 NO_COPY_SEMANTIC(Region); 64 NO_MOVE_SEMANTIC(Region); 185 return AlignUp(sizeof(Region), DEFAULT_ALIGNMENT_IN_BYTES); in HeadSize() 194 static Region *AddrToRegion(const void *addr, size_t mask = DEFAULT_REGION_MASK) 200 return reinterpret_cast<Region *>(region_addr); 205 return reinterpret_cast<Region *>(((ToUintPtr(addr) - start_addr) & ~mask) + start_addr); 266 static Region *AsRegion(DListNode *node) in AsRegion() [all …]
|
D | region_allocator.h | 52 Region *GetRegion(const ObjectHeader *object) const in GetRegion() 77 Region *AllocRegion(size_t region_size) in AllocRegion() 166 … this->GetSpace()->IterateRegions([&](Region *region) { region->IterateOverObjects(visitor); }); in IterateOverObjects() 169 PandaVector<Region *> GetTopGarbageRegions(size_t region_count); 177 PandaVector<Region *> GetAllSpecificRegions(); 203 …void CompactSeveralSpecificRegions(const PandaVector<Region *> ®ions, const GCObjectVisitor &de… 218 void ResetSeveralSpecificRegions(const PandaVector<Region *> ®ions); 227 return REGION_SIZE - AlignUp(sizeof(Region), DEFAULT_ALIGNMENT_IN_BYTES); in GetMaxRegularObjectSize() 247 Region *GetCurrentRegion() in GetCurrentRegion() 249 Region **cur_region = GetCurrentRegionPointerUnsafe<region_type>(); in GetCurrentRegion() [all …]
|
D | rem_set.h | 32 class Region; variable 40 explicit RemSet(Region *region); 54 Region *GetRegion() in GetRegion() 59 CardList *GetCardList(Region *region); 84 Region *region_; 86 PandaUnorderedMap<Region *, CardList *> regions_ GUARDED_BY(rem_set_lock_);
|
D | region_space-inl.h | 25 explicit RegionAllocCheck(Region *region) : region_(region) in RegionAllocCheck() 37 Region *region_ FIELD_UNUSED; 42 explicit RegionIterateCheck(Region *region) : region_(region) in RegionIterateCheck() 54 Region *region_ FIELD_UNUSED; 58 void *Region::Alloc(size_t size, Alignment align) in Alloc() 85 void Region::IterateOverObjects(const ObjectVisitor &visitor) in IterateOverObjects() 107 auto *region = Region::AsRegion(&(*it)); in IterateRegions()
|
D | region_allocator-inl.h | 101 Region *region = this->AllocRegion(REGION_SIZE); in AllocRegular() 129 Region *region = this->AllocRegion(Region::RegionSize(align_size, REGION_SIZE)); in Alloc() 153 Region *region = nullptr; in CreateNewTLAB() 201 Region *r = Region::AddrToRegion(tlab->GetStartAddr()); in RevokeTLAB() 215 PandaVector<Region *> RegionAllocator<AllocConfigT, LockConfigT>::GetTopGarbageRegions(size_t regio… in GetTopGarbageRegions() 217 PandaPriorityQueue<std::pair<uint32_t, Region *>> queue; in GetTopGarbageRegions() 218 this->GetSpace()->IterateRegions([&](Region *region) { in GetTopGarbageRegions() 220 queue.push(std::pair<uint32_t, Region *>(garbage_bytes, region)); in GetTopGarbageRegions() 222 PandaVector<Region *> regions; in GetTopGarbageRegions() 233 PandaVector<Region *> RegionAllocator<AllocConfigT, LockConfigT>::GetAllSpecificRegions() in GetAllSpecificRegions() [all …]
|
D | rem_set-inl.h | 25 RemSet<LockConfigT>::RemSet(Region *region) : region_(region) in RemSet() 39 auto from_region = Region::AddrToRegion(from_field_addr); in AddRef() 65 CardList *RemSet<LockConfigT>::GetCardList(Region *region) in GetCardList() 91 auto from_region = Region::AddrToRegion(obj_addr); in AddRefWithAddr() 96 auto to_region = Region::AddrToRegion(value_addr); in AddRefWithAddr()
|