Lines Matching refs:region

23 #include "ecmascript/mem/region-inl.h"
29 bool ParallelEvacuator::IsWholeRegionEvacuate(Region *region)
31 if ((static_cast<double>(region->AliveObject()) / region->GetSize()) > MIN_OBJECT_SURVIVAL_RATE &&
32 !region->HasAgeMark()) {
35 if (heap_->GetFromSpaceDuringEvacuation()->CommittedSizeIsLarge() && !region->HasAgeMark()) {
41 bool ParallelEvacuator::WholeRegionEvacuate(Region *region)
43 if (region->IsFreshRegion()) {
44 ASSERT(region->InYoungSpace());
45 return heap_->MoveYoungRegionSync(region);
47 bool isInYoung = region->InYoungSpace();
48 bool isBelowAgeMark = region->BelowAgeMark();
49 if (isInYoung && !isBelowAgeMark && IsWholeRegionEvacuate(region) && heap_->MoveYoungRegionSync(region)) {
147 // move region from fromspace to tospace
256 Region *region = Region::ObjectAddressToRange(object);
257 ASSERT(!region->InSharedHeap());
258 auto callbackWithCSet = [this, region](TaggedObject *root, ObjectSlot start, ObjectSlot end, VisitObjectArea area) {
260 if (VisitBodyInObj(root, start, end, [&](ObjectSlot slot) { SetLocalToShareRSet(slot, region); })) {
265 SetLocalToShareRSet(slot, region);
271 void ParallelEvacuator::SetLocalToShareRSet(ObjectSlot slot, Region *region)
273 ASSERT(!region->InSharedHeap());
280 region->AtomicInsertLocalToShareRSet(slot.SlotAddress());
287 Region *region = Region::ObjectAddressToRange(object);
288 auto callbackWithCSet = [this, region](TaggedObject *root, ObjectSlot start, ObjectSlot end, VisitObjectArea area) {
291 [&](ObjectSlot slot) { SetObjectRSet<SetEdenObject>(slot, region); })) {
296 SetObjectRSet<SetEdenObject>(slot, region);
303 void ParallelEvacuator::SetObjectRSet(ObjectSlot slot, Region *region)
311 if (region->InYoungSpace() && valueRegion->InEdenSpace()) {
312 region->AtomicInsertNewToEdenRSet(slot.SlotAddress());
314 region->AtomicInsertLocalToShareRSet(slot.SlotAddress());
318 region->InsertOldToNewRSet(slot.SlotAddress());
320 region->InsertLocalToShareRSet(slot.SlotAddress());
322 region->InsertCrossRegionRSet(slot.SlotAddress());