Lines Matching refs:region

126     DrainWorkloads(evacuateWorkloadSet_, [&](std::unique_ptr<Workload> &region) {
127 EvacuateRegion(allocator, region->GetRegion(), arrayTrackInfoSet);
163 void ParallelEvacuator::EvacuateRegion(TlabAllocator *allocator, Region *region,
166 bool isInEden = region->InEdenSpace();
167 bool isInOldGen = region->InOldSpace();
168 bool isBelowAgeMark = region->BelowAgeMark();
173 if (WholeRegionEvacuate(region)) {
176 region->IterateAllMarkedBits([this, &region, &isInOldGen, &isBelowAgeMark, isInEden, &pgoEnabled,
178 ASSERT(region->InRange(ToUintPtr(mem)));
185 bool hasAgeMark = isBelowAgeMark || (region->HasAgeMark() && ToUintPtr(mem) < waterLine_);
223 } else if (region->HasLocalToShareRememberedSet()) {
270 LOG_GC(DEBUG) << "UpdatePointers statistic: younge space region compact moving count:"
272 << "younge space region compact coping count:" << youngeRegionCopyCount
273 << "old space region count:" << oldRegionCount;
358 LOG_GC(ERROR) << "PartialGC updateWeakReference: region is nullptr, header is " << header;
453 void ParallelEvacuator::UpdateRSet(Region *region)
461 if (region->IsGCFlagSet(RegionGCFlags::HAS_BEEN_SWEPT)) {
463 region->MergeOldToNewRSetForCS();
464 region->MergeLocalToShareRSetForCS();
466 region->AtomicIterateAllSweepingRSetBits(cb);
469 region->IterateAllOldToNewBits(cb);
474 region->IterateAllCrossRegionBits([this](void *mem) {
479 region->IterateAllCrossRegionBits([this](void *mem) {
487 region->DeleteCrossRegionRSet();
490 void ParallelEvacuator::UpdateNewToEdenRSetReference(Region *region)
496 region->IterateAllNewToEdenBits(cb);
497 region->ClearNewToEdenRSet();
501 void ParallelEvacuator::UpdateNewRegionReference(Region *region)
504 auto curPtr = region->GetBegin();
506 if (region == current) {
508 endPtr = curPtr + region->GetAllocatedBytes(top);
510 endPtr = curPtr + region->GetAllocatedBytes();
535 void ParallelEvacuator::UpdateAndSweepNewRegionReference(Region *region)
537 uintptr_t freeStart = region->GetBegin();
538 uintptr_t freeEnd = freeStart + region->GetAllocatedBytes();
539 region->IterateAllMarkedBits([&](void *mem) {
540 ASSERT(region->InRange(ToUintPtr(mem)));
549 region->ClearLocalToShareRSetInRange(freeStart, freeEnd);
557 region->ClearLocalToShareRSetInRange(freeStart, freeEnd);
591 DrainWorkloads(updateWorkloadSet_, [&](std::unique_ptr<Workload> &region) {
592 region->Process(isMain);
606 std::unique_ptr<Workload> region;
615 region = workloadSet.TryGetWorkload(i);
616 if (region == nullptr) {
619 callback(region);