Lines Matching refs:Cand
693 bool RAGreedy::growRegion(GlobalSplitCandidate &Cand) { in growRegion() argument
696 SmallVectorImpl<unsigned> &ActiveBlocks = Cand.ActiveBlocks; in growRegion()
731 if (Cand.PhysReg) { in growRegion()
732 if (!addThroughConstraints(Cand.Intf, NewBlocks)) in growRegion()
754 bool RAGreedy::calcCompactRegion(GlobalSplitCandidate &Cand) { in calcCompactRegion() argument
760 Cand.reset(IntfCache, MCRegister::NoRegister); in calcCompactRegion()
766 SpillPlacer->prepare(Cand.LiveBundles); in calcCompactRegion()
770 if (!addSplitConstraints(Cand.Intf, Cost)) { in calcCompactRegion()
775 if (!growRegion(Cand)) { in calcCompactRegion()
782 if (!Cand.LiveBundles.any()) { in calcCompactRegion()
788 for (int I : Cand.LiveBundles.set_bits()) in calcCompactRegion()
816 BlockFrequency RAGreedy::calcGlobalSplitCost(GlobalSplitCandidate &Cand, in calcGlobalSplitCost() argument
819 const BitVector &LiveBundles = Cand.LiveBundles; in calcGlobalSplitCost()
828 Cand.Intf.moveToBlock(BC.Number); in calcGlobalSplitCost()
838 for (unsigned Number : Cand.ActiveBlocks) { in calcGlobalSplitCost()
845 Cand.Intf.moveToBlock(Number); in calcGlobalSplitCost()
846 if (Cand.Intf.hasInterference()) { in calcGlobalSplitCost()
894 GlobalSplitCandidate &Cand = GlobalCand[CandIn]; in splitAroundRegion() local
895 IntvIn = Cand.IntvIdx; in splitAroundRegion()
896 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
897 IntfIn = Cand.Intf.first(); in splitAroundRegion()
903 GlobalSplitCandidate &Cand = GlobalCand[CandOut]; in splitAroundRegion() local
904 IntvOut = Cand.IntvIdx; in splitAroundRegion()
905 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
906 IntfOut = Cand.Intf.last(); in splitAroundRegion()
942 GlobalSplitCandidate &Cand = GlobalCand[CandIn]; in splitAroundRegion() local
943 IntvIn = Cand.IntvIdx; in splitAroundRegion()
944 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
945 IntfIn = Cand.Intf.first(); in splitAroundRegion()
950 GlobalSplitCandidate &Cand = GlobalCand[CandOut]; in splitAroundRegion() local
951 IntvOut = Cand.IntvIdx; in splitAroundRegion()
952 Cand.Intf.moveToBlock(Number); in splitAroundRegion()
953 IntfOut = Cand.Intf.last(); in splitAroundRegion()
1074 GlobalSplitCandidate &Cand = GlobalCand[NumCands]; in calculateRegionSplitCost() local
1075 Cand.reset(IntfCache, PhysReg); in calculateRegionSplitCost()
1077 SpillPlacer->prepare(Cand.LiveBundles); in calculateRegionSplitCost()
1079 if (!addSplitConstraints(Cand.Intf, Cost)) { in calculateRegionSplitCost()
1095 if (!growRegion(Cand)) { in calculateRegionSplitCost()
1103 if (!Cand.LiveBundles.any()) { in calculateRegionSplitCost()
1108 Cost += calcGlobalSplitCost(Cand, Order); in calculateRegionSplitCost()
1112 for (int I : Cand.LiveBundles.set_bits()) in calculateRegionSplitCost()
1139 GlobalSplitCandidate &Cand = GlobalCand[BestCand]; in doRegionSplit() local
1140 if (unsigned B = Cand.getBundles(BundleCand, BestCand)) { in doRegionSplit()
1142 Cand.IntvIdx = SE->openIntv(); in doRegionSplit()
1143 LLVM_DEBUG(dbgs() << "Split for " << printReg(Cand.PhysReg, TRI) << " in " in doRegionSplit()
1144 << B << " bundles, intv " << Cand.IntvIdx << ".\n"); in doRegionSplit()
1151 GlobalSplitCandidate &Cand = GlobalCand.front(); in doRegionSplit() local
1152 assert(!Cand.PhysReg && "Compact region has no physreg"); in doRegionSplit()
1153 if (unsigned B = Cand.getBundles(BundleCand, 0)) { in doRegionSplit()
1155 Cand.IntvIdx = SE->openIntv(); in doRegionSplit()
1157 << " bundles, intv " << Cand.IntvIdx << ".\n"); in doRegionSplit()