Lines Matching refs:CurrentGroup

1220 static void fillOverallFunction(Module &M, OutlinableGroup &CurrentGroup,  in fillOverallFunction()  argument
1223 OutlinableRegion *CurrentOS = CurrentGroup.Regions[0]; in fillOverallFunction()
1228 << *CurrentGroup.OutlinedFunction << "\n"); in fillOverallFunction()
1230 CurrentGroup.EndBB = moveFunctionData(*CurrentOS->ExtractedFunction, in fillOverallFunction()
1231 *CurrentGroup.OutlinedFunction); in fillOverallFunction()
1236 CurrentGroup.OutlinedFunction->addFnAttr(A); in fillOverallFunction()
1241 CurrentGroup.OutlinedFunction); in fillOverallFunction()
1254 BranchInst::Create(CurrentGroup.EndBB, NewBB); in fillOverallFunction()
1267 Module &M, OutlinableGroup &CurrentGroup, in deduplicateExtractedSections() argument
1269 createFunction(M, CurrentGroup, OutlinedFunctionNum); in deduplicateExtractedSections()
1275 fillOverallFunction(M, CurrentGroup, OutputStoreBBs, FuncsToRemove); in deduplicateExtractedSections()
1277 for (unsigned Idx = 1; Idx < CurrentGroup.Regions.size(); Idx++) { in deduplicateExtractedSections()
1278 CurrentOS = CurrentGroup.Regions[Idx]; in deduplicateExtractedSections()
1279 AttributeFuncs::mergeAttributesForOutlining(*CurrentGroup.OutlinedFunction, in deduplicateExtractedSections()
1285 CurrentGroup.OutlinedFunction); in deduplicateExtractedSections()
1288 alignOutputBlockWithAggFunc(CurrentGroup, *CurrentOS, NewBB, in deduplicateExtractedSections()
1289 CurrentGroup.EndBB, OutputMappings, in deduplicateExtractedSections()
1297 createSwitchStatement(M, CurrentGroup, CurrentGroup.EndBB, OutputStoreBBs); in deduplicateExtractedSections()
1304 OutlinableGroup &CurrentGroup) { in pruneIncompatibleRegions() argument
1360 OutlinableRegion(IRSC, CurrentGroup); in pruneIncompatibleRegions()
1361 CurrentGroup.Regions.push_back(OS); in pruneIncompatibleRegions()
1368 IROutliner::findBenefitFromAllRegions(OutlinableGroup &CurrentGroup) { in findBenefitFromAllRegions() argument
1370 for (OutlinableRegion *Region : CurrentGroup.Regions) { in findBenefitFromAllRegions()
1383 IROutliner::findCostOutputReloads(OutlinableGroup &CurrentGroup) { in findCostOutputReloads() argument
1385 for (OutlinableRegion *Region : CurrentGroup.Regions) { in findCostOutputReloads()
1416 OutlinableGroup &CurrentGroup, in findCostForOutputBlocks() argument
1421 CurrentGroup.OutputGVNCombinations) { in findCostForOutputBlocks()
1422 IRSimilarityCandidate &Candidate = *CurrentGroup.Regions[0]->Candidate; in findCostForOutputBlocks()
1449 if (CurrentGroup.OutputGVNCombinations.size() > 1) { in findCostForOutputBlocks()
1457 unsigned DifferentBlocks = CurrentGroup.OutputGVNCombinations.size(); in findCostForOutputBlocks()
1469 void IROutliner::findCostBenefit(Module &M, OutlinableGroup &CurrentGroup) { in findCostBenefit() argument
1470 InstructionCost RegionBenefit = findBenefitFromAllRegions(CurrentGroup); in findCostBenefit()
1471 CurrentGroup.Benefit += RegionBenefit; in findCostBenefit()
1472 LLVM_DEBUG(dbgs() << "Current Benefit: " << CurrentGroup.Benefit << "\n"); in findCostBenefit()
1474 InstructionCost OutputReloadCost = findCostOutputReloads(CurrentGroup); in findCostBenefit()
1475 CurrentGroup.Cost += OutputReloadCost; in findCostBenefit()
1476 LLVM_DEBUG(dbgs() << "Current Cost: " << CurrentGroup.Cost << "\n"); in findCostBenefit()
1479 RegionBenefit / CurrentGroup.Regions.size(); in findCostBenefit()
1480 unsigned OverallArgumentNum = CurrentGroup.ArgumentTypes.size(); in findCostBenefit()
1481 unsigned NumRegions = CurrentGroup.Regions.size(); in findCostBenefit()
1483 getTTI(*CurrentGroup.Regions[0]->Candidate->getFunction()); in findCostBenefit()
1489 CurrentGroup.Cost += AverageRegionBenefit; in findCostBenefit()
1490 LLVM_DEBUG(dbgs() << "Current Cost: " << CurrentGroup.Cost << "\n"); in findCostBenefit()
1497 CurrentGroup.Cost += in findCostBenefit()
1499 LLVM_DEBUG(dbgs() << "Current Cost: " << CurrentGroup.Cost << "\n"); in findCostBenefit()
1508 CurrentGroup.Cost += in findCostBenefit()
1510 LLVM_DEBUG(dbgs() << "Current Cost: " << CurrentGroup.Cost << "\n"); in findCostBenefit()
1512 CurrentGroup.Cost += findCostForOutputBlocks(M, CurrentGroup, TTI); in findCostBenefit()
1513 LLVM_DEBUG(dbgs() << "Current Cost: " << CurrentGroup.Cost << "\n"); in findCostBenefit()
1630 OutlinableGroup CurrentGroup; in doOutline() local
1633 pruneIncompatibleRegions(CandidateVec, CurrentGroup); in doOutline()
1638 if (CurrentGroup.Regions.size() < 2) in doOutline()
1644 CurrentGroup.findSameConstants(NotSame); in doOutline()
1646 if (CurrentGroup.IgnoreGroup) in doOutline()
1653 for (OutlinableRegion *OS : CurrentGroup.Regions) { in doOutline()
1668 CurrentGroup.Regions = std::move(OutlinedRegions); in doOutline()
1670 if (CurrentGroup.Regions.empty()) in doOutline()
1673 CurrentGroup.collectGVNStoreSets(M); in doOutline()
1676 findCostBenefit(M, CurrentGroup); in doOutline()
1679 if (CurrentGroup.Cost >= CurrentGroup.Benefit && CostModel) { in doOutline()
1680 for (OutlinableRegion *OS : CurrentGroup.Regions) in doOutline()
1683 *CurrentGroup.Regions[0]->Candidate->getFunction()); in doOutline()
1685 IRSimilarityCandidate *C = CurrentGroup.Regions[0]->Candidate; in doOutline()
1689 << ore::NV(std::to_string(CurrentGroup.Regions.size())) in doOutline()
1692 CurrentGroup.Cost - CurrentGroup.Benefit) in doOutline()
1695 CurrentGroup.Regions.begin(), CurrentGroup.Regions.end(), in doOutline()
1707 LLVM_DEBUG(dbgs() << "Outlining regions with cost " << CurrentGroup.Cost in doOutline()
1708 << " and benefit " << CurrentGroup.Benefit << "\n"); in doOutline()
1712 for (OutlinableRegion *OS : CurrentGroup.Regions) { in doOutline()
1725 << " with benefit " << CurrentGroup.Benefit in doOutline()
1726 << " and cost " << CurrentGroup.Cost << "\n"); in doOutline()
1728 CurrentGroup.Regions = std::move(OutlinedRegions); in doOutline()
1730 if (CurrentGroup.Regions.empty()) in doOutline()
1734 getORE(*CurrentGroup.Regions[0]->Call->getFunction()); in doOutline()
1736 IRSimilarityCandidate *C = CurrentGroup.Regions[0]->Candidate; in doOutline()
1738 R << "outlined " << ore::NV(std::to_string(CurrentGroup.Regions.size())) in doOutline()
1740 << ore::NV("Benefit", CurrentGroup.Benefit - CurrentGroup.Cost) in doOutline()
1743 CurrentGroup.Regions.begin(), CurrentGroup.Regions.end(), in doOutline()
1752 deduplicateExtractedSections(M, CurrentGroup, FuncsToRemove, in doOutline()