Lines Matching refs:CSR
890 bool ShrinkWrapping::isBestSavePosCold(unsigned CSR, MCInst *&BestPosSave, in isBestSavePosCold() argument
892 const uint64_t CurSavingCost = CSA.SavingCost[CSR]; in isBestSavePosCold()
893 if (!CSA.CalleeSaved[CSR]) in isBestSavePosCold()
896 assert(BestSaveCount[CSR].size() == BestSavePos[CSR].size() && in isBestSavePosCold()
898 if (BestSaveCount[CSR].empty()) in isBestSavePosCold()
901 const uint64_t BestCount = BestSaveCount[CSR].back(); in isBestSavePosCold()
902 BestPosSave = BestSavePos[CSR].back(); in isBestSavePosCold()
910 dbgs() << "Reg: " << CSR << "; New BB: " << InsnToBB[BestPosSave]->getName() in isBestSavePosCold()
972 ShrinkWrapping::doRestorePlacement(MCInst *BestPosSave, unsigned CSR, in doRestorePlacement() argument
996 doesInstUsesCSR(*PP.getInst(), CSR)) { in doRestorePlacement()
1059 bool ShrinkWrapping::validatePushPopsMode(unsigned CSR, MCInst *BestPosSave, in validatePushPopsMode() argument
1063 dbgs() << "Reg " << CSR in validatePushPopsMode()
1071 dbgs() << "Reg " << CSR in validatePushPopsMode()
1077 for (MCInst *Save : CSA.getSavesByReg(CSR)) { in validatePushPopsMode()
1079 LLVM_DEBUG(dbgs() << "Reg " << CSR << " cannot collapse region.\n"); in validatePushPopsMode()
1084 for (MCInst *Load : CSA.getRestoresByReg(CSR)) { in validatePushPopsMode()
1086 LLVM_DEBUG(dbgs() << "Reg " << CSR << " has a mismatching restore.\n"); in validatePushPopsMode()
1097 dbgs() << "Reg " << CSR in validatePushPopsMode()
1108 unsigned CSR) { in fixPopsPlacements() argument
1119 BV &= UsesByReg[CSR]; in fixPopsPlacements()
1129 BV &= UsesByReg[CSR]; in fixPopsPlacements()
1139 dbgs() << "Could not find restore insertion point for " << CSR in fixPopsPlacements()
1149 void ShrinkWrapping::scheduleOldSaveRestoresRemoval(unsigned CSR, in scheduleOldSaveRestoresRemoval() argument
1158 if (SLM.getOffsetCFIReg(Inst) == CSR) { in scheduleOldSaveRestoresRemoval()
1159 HasDeletedOffsetCFIs[CSR] = true; in scheduleOldSaveRestoresRemoval()
1160 scheduleChange(&Inst, WorklistItem(WorklistItem::Erase, CSR)); in scheduleOldSaveRestoresRemoval()
1169 if (SavedReg != CSR && RestoredReg != CSR) { in scheduleOldSaveRestoresRemoval()
1177 CSR)); in scheduleOldSaveRestoresRemoval()
1181 SavedReg == CSR && DeletedPushCFIs[CSR].empty(); in scheduleOldSaveRestoresRemoval()
1183 RestoredReg == CSR && DeletedPopCFIs[CSR].empty(); in scheduleOldSaveRestoresRemoval()
1190 scheduleChange(CFI, WorklistItem(WorklistItem::Erase, CSR)); in scheduleOldSaveRestoresRemoval()
1196 DeletedPushCFIs[CSR].push_back(CFI->getOperand(0).getImm()); in scheduleOldSaveRestoresRemoval()
1201 DeletedPopCFIs[CSR].push_back(CFI->getOperand(0).getImm()); in scheduleOldSaveRestoresRemoval()
1209 bool ShrinkWrapping::doesInstUsesCSR(const MCInst &Inst, uint16_t CSR) { in doesInstUsesCSR() argument
1210 if (BC.MIB->isCFI(Inst) || CSA.getSavedReg(Inst) == CSR || in doesInstUsesCSR()
1211 CSA.getRestoredReg(Inst) == CSR) in doesInstUsesCSR()
1215 return BV[CSR]; in doesInstUsesCSR()
1219 unsigned CSR, MCInst *BestPosSave, in scheduleSaveRestoreInsertions() argument
1222 const FrameIndexEntry *FIESave = CSA.SaveFIEByReg[CSR]; in scheduleSaveRestoreInsertions()
1223 const FrameIndexEntry *FIELoad = CSA.LoadFIEByReg[CSR]; in scheduleSaveRestoreInsertions()
1234 *FIESave, CSR); in scheduleSaveRestoreInsertions()
1258 (doesInstUsesCSR(*PP.getInst(), CSR) || PrecededByPrefix)) { in scheduleSaveRestoreInsertions()
1264 *FIELoad, CSR); in scheduleSaveRestoreInsertions()
1270 *FIELoad, CSR); in scheduleSaveRestoreInsertions()
1541 void ShrinkWrapping::insertUpdatedCFI(unsigned CSR, int SPValPush, in insertUpdatedCFI() argument
1561 if (Reg != CSR || !IsStore || !IsSimple) in insertUpdatedCFI()
1571 dbgs() << "Now using as save point for reg " << CSR << " :"; in insertUpdatedCFI()
1591 InstIter = insertCFIsForPushOrPop(*BB, InsertionIter, CSR, true, 0, in insertUpdatedCFI()
1594 InstIter = insertCFIsForPushOrPop(*BB, InsertionIter, CSR, false, 0, in insertUpdatedCFI()
1602 insertCFIsForPushOrPop(*BB, BB->begin(), CSR, true, 0, SPValPush); in insertUpdatedCFI()
1605 insertCFIsForPushOrPop(*PrevBB, PrevBB->end(), CSR, true, 0, SPValPush); in insertUpdatedCFI()
1607 insertCFIsForPushOrPop(*PrevBB, PrevBB->end(), CSR, false, 0, SPValPop); in insertUpdatedCFI()