Lines Matching defs:NewVRegs
399 SmallVectorImpl<Register> &NewVRegs,
425 evictInterference(VirtReg, PhysHint, NewVRegs);
430 if (trySplitAroundHintReg(PhysHint, VirtReg, NewVRegs, Order))
447 MCRegister CheapReg = tryEvict(VirtReg, Order, NewVRegs, Cost, FixedRegisters);
483 SmallVectorImpl<Register> &NewVRegs) {
516 NewVRegs.push_back(Intf->reg());
579 SmallVectorImpl<Register> &NewVRegs,
588 evictInterference(VirtReg, BestPhys, NewVRegs);
1062 SmallVectorImpl<Register> &NewVRegs) {
1090 return doRegionSplit(VirtReg, BestCand, HasCompact, NewVRegs);
1191 SmallVectorImpl<Register> &NewVRegs) {
1194 LiveRangeEdit LREdit(&VirtReg, NewVRegs, *MF, *LIS, VRM, this, &DeadRemats);
1233 SmallVectorImpl<Register> &NewVRegs,
1282 doRegionSplit(VirtReg, BestCand, false/*HasCompact*/, NewVRegs);
1295 SmallVectorImpl<Register> &NewVRegs) {
1299 LiveRangeEdit LREdit(&VirtReg, NewVRegs, *MF, *LIS, VRM, this, &DeadRemats);
1416 SmallVectorImpl<Register> &NewVRegs) {
1429 LiveRangeEdit LREdit(&VirtReg, NewVRegs, *MF, *LIS, VRM, this, &DeadRemats);
1569 SmallVectorImpl<Register> &NewVRegs) {
1760 LiveRangeEdit LREdit(&VirtReg, NewVRegs, *MF, *LIS, VRM, this, &DeadRemats);
1797 /// @return Physreg when VirtReg may be assigned and/or new NewVRegs.
1799 SmallVectorImpl<Register> &NewVRegs,
1810 Register PhysReg = tryLocalSplit(VirtReg, Order, NewVRegs);
1811 if (PhysReg || !NewVRegs.empty())
1813 return tryInstructionSplit(VirtReg, Order, NewVRegs);
1825 MCRegister PhysReg = tryRegionSplit(VirtReg, Order, NewVRegs);
1826 if (PhysReg || !NewVRegs.empty())
1831 return tryBlockSplit(VirtReg, Order, NewVRegs);
1956 SmallVectorImpl<Register> &NewVRegs,
2043 NewVRegs.push_back(NewVReg);
2058 // don't add it to NewVRegs because its physical register will be restored
2060 // selectOrSplit and should be added into NewVRegs.
2064 NewVRegs.push_back(R);
2107 SmallVectorImpl<Register> &NewVRegs,
2114 MCRegister PhysReg = selectOrSplitImpl(*LI, NewVRegs, FixedRegisters,
2143 SmallVectorImpl<Register> &NewVRegs) {
2149 selectOrSplitImpl(VirtReg, NewVRegs, FixedRegisters, RecolorStack);
2176 uint8_t &CostPerUseLimit, SmallVectorImpl<Register> &NewVRegs) {
2202 doRegionSplit(VirtReg, BestCand, false/*HasCompact*/, NewVRegs);
2409 SmallVectorImpl<Register> &NewVRegs,
2418 tryAssign(VirtReg, Order, NewVRegs, FixedRegisters)) {
2419 // When NewVRegs is not empty, we may have made decisions such as evicting
2423 EvictAdvisor->isUnusedCalleeSavedReg(PhysReg) && NewVRegs.empty()) {
2425 CostPerUseLimit, NewVRegs);
2426 if (CSRReg || !NewVRegs.empty())
2433 // Non emtpy NewVRegs means VirtReg has been split.
2434 if (!NewVRegs.empty())
2446 tryEvict(VirtReg, Order, NewVRegs, CostPerUseLimit,
2459 assert((NewVRegs.empty() || Depth) && "Cannot append to existing NewVRegs");
2467 NewVRegs.push_back(VirtReg.reg());
2473 unsigned NewVRegSizeBefore = NewVRegs.size();
2474 Register PhysReg = trySplit(VirtReg, Order, NewVRegs, FixedRegisters);
2475 if (PhysReg || (NewVRegs.size() - NewVRegSizeBefore))
2482 return tryLastChanceRecoloring(VirtReg, Order, NewVRegs, FixedRegisters,
2496 NewVRegs.push_back(VirtReg.reg());
2500 LiveRangeEdit LRE(&VirtReg, NewVRegs, *MF, *LIS, VRM, this, &DeadRemats);
2502 ExtraInfo->setStage(NewVRegs.begin(), NewVRegs.end(), RS_Done);