Lines Matching refs:Cand
352 void growRegion(GlobalSplitCandidate &Cand);
1044 void RAGreedy::growRegion(GlobalSplitCandidate &Cand) { in growRegion() argument
1047 SmallVectorImpl<unsigned> &ActiveBlocks = Cand.ActiveBlocks; in growRegion()
1080 if (Cand.PhysReg) in growRegion()
1081 addThroughConstraints(Cand.Intf, NewBlocks); in growRegion()
1101 bool RAGreedy::calcCompactRegion(GlobalSplitCandidate &Cand) { in calcCompactRegion() argument
1107 Cand.reset(IntfCache, 0); in calcCompactRegion()
1113 SpillPlacer->prepare(Cand.LiveBundles); in calcCompactRegion()
1117 if (!addSplitConstraints(Cand.Intf, Cost)) { in calcCompactRegion()
1122 growRegion(Cand); in calcCompactRegion()
1125 if (!Cand.LiveBundles.any()) { in calcCompactRegion()
1131 for (int i = Cand.LiveBundles.find_first(); i>=0; in calcCompactRegion()
1132 i = Cand.LiveBundles.find_next(i)) in calcCompactRegion()
1161 BlockFrequency RAGreedy::calcGlobalSplitCost(GlobalSplitCandidate &Cand) { in calcGlobalSplitCost() argument
1163 const BitVector &LiveBundles = Cand.LiveBundles; in calcGlobalSplitCost()
1180 for (unsigned i = 0, e = Cand.ActiveBlocks.size(); i != e; ++i) { in calcGlobalSplitCost()
1181 unsigned Number = Cand.ActiveBlocks[i]; in calcGlobalSplitCost()
1188 Cand.Intf.moveToBlock(Number); in calcGlobalSplitCost()
1189 if (Cand.Intf.hasInterference()) { in calcGlobalSplitCost()
1237 GlobalSplitCandidate &Cand = GlobalCand[CandIn]; in splitAroundRegion() local
1238 IntvIn = Cand.IntvIdx; in splitAroundRegion()
1239 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
1240 IntfIn = Cand.Intf.first(); in splitAroundRegion()
1246 GlobalSplitCandidate &Cand = GlobalCand[CandOut]; in splitAroundRegion() local
1247 IntvOut = Cand.IntvIdx; in splitAroundRegion()
1248 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
1249 IntfOut = Cand.Intf.last(); in splitAroundRegion()
1286 GlobalSplitCandidate &Cand = GlobalCand[CandIn]; in splitAroundRegion() local
1287 IntvIn = Cand.IntvIdx; in splitAroundRegion()
1288 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
1289 IntfIn = Cand.Intf.first(); in splitAroundRegion()
1294 GlobalSplitCandidate &Cand = GlobalCand[CandOut]; in splitAroundRegion() local
1295 IntvOut = Cand.IntvIdx; in splitAroundRegion()
1296 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
1297 IntfOut = Cand.Intf.last(); in splitAroundRegion()
1416 GlobalSplitCandidate &Cand = GlobalCand[NumCands]; in calculateRegionSplitCost() local
1417 Cand.reset(IntfCache, PhysReg); in calculateRegionSplitCost()
1419 SpillPlacer->prepare(Cand.LiveBundles); in calculateRegionSplitCost()
1421 if (!addSplitConstraints(Cand.Intf, Cost)) { in calculateRegionSplitCost()
1437 growRegion(Cand); in calculateRegionSplitCost()
1442 if (!Cand.LiveBundles.any()) { in calculateRegionSplitCost()
1447 Cost += calcGlobalSplitCost(Cand); in calculateRegionSplitCost()
1451 for (int i = Cand.LiveBundles.find_first(); i>=0; in calculateRegionSplitCost()
1452 i = Cand.LiveBundles.find_next(i)) in calculateRegionSplitCost()
1478 GlobalSplitCandidate &Cand = GlobalCand[BestCand]; in doRegionSplit() local
1479 if (unsigned B = Cand.getBundles(BundleCand, BestCand)) { in doRegionSplit()
1481 Cand.IntvIdx = SE->openIntv(); in doRegionSplit()
1482 DEBUG(dbgs() << "Split for " << PrintReg(Cand.PhysReg, TRI) << " in " in doRegionSplit()
1483 << B << " bundles, intv " << Cand.IntvIdx << ".\n"); in doRegionSplit()
1490 GlobalSplitCandidate &Cand = GlobalCand.front(); in doRegionSplit() local
1491 assert(!Cand.PhysReg && "Compact region has no physreg"); in doRegionSplit()
1492 if (unsigned B = Cand.getBundles(BundleCand, 0)) { in doRegionSplit()
1494 Cand.IntvIdx = SE->openIntv(); in doRegionSplit()
1496 << Cand.IntvIdx << ".\n"); in doRegionSplit()