Lines Matching refs:Region
132 static bool isProfitableToOutline(const BlockSequence &Region, in isProfitableToOutline() argument
134 if (Region.size() > 1) in isProfitableToOutline()
138 const BasicBlock &BB = *Region[0]; in isProfitableToOutline()
178 Function *extractColdRegion(const BlockSequence &Region, DominatorTree &DT,
236 Function *HotColdSplitting::extractColdRegion(const BlockSequence &Region, in extractColdRegion() argument
242 assert(!Region.empty()); in extractColdRegion()
245 CodeExtractor CE(Region, &DT, /* AggregateArgs */ false, /* BFI */ nullptr, in extractColdRegion()
260 Function *OrigF = Region[0]->getParent(); in extractColdRegion()
279 &*Region[0]->begin()) in extractColdRegion()
288 &*Region[0]->begin()) in extractColdRegion()
290 << ore::NV("Block", Region.front()); in extractColdRegion()
502 auto Region = OutliningRegion::create(*BB, DT, PDT); in outlineColdRegions() local
503 if (Region.empty()) in outlineColdRegions()
506 if (Region.isEntireFunctionCold()) { in outlineColdRegions()
516 bool RegionsOverlap = any_of(Region.blocks(), [&](const BlockTy &Block) { in outlineColdRegions()
522 OutliningWorklist.emplace_back(std::move(Region)); in outlineColdRegions()
529 OutliningRegion Region = OutliningWorklist.pop_back_val(); in outlineColdRegions() local
530 assert(!Region.empty() && "Empty outlining region in worklist"); in outlineColdRegions()
532 BlockSequence SubRegion = Region.takeSingleEntrySubRegion(DT); in outlineColdRegions()
554 } while (!Region.empty()); in outlineColdRegions()