Lines Matching refs:BC

45   BitVector BlacklistedRegs(BC.MRI->getNumRegs(), false);  in analyzeSaves()
110 BC.MIB->addAnnotation(Inst, getSaveTag(), FIE->RegOrImm, AllocatorId); in analyzeSaves()
161 BC.MIB->addAnnotation(Inst, getRestoreTag(), FIE->RegOrImm, in analyzeRestores()
191 BC.MIB->removeAnnotation(Inst, getSaveTag()); in ~CalleeSavedAnalysis()
192 BC.MIB->removeAnnotation(Inst, getRestoreTag()); in ~CalleeSavedAnalysis()
231 if (!BC.MII->get(Point.getOpcode()) in checkFramePointerInitialization()
232 .hasDefOfPhysReg(Point, BC.MIB->getFramePointer(), *BC.MRI)) in checkFramePointerInitialization()
240 FP = std::make_pair(BC.MIB->getFramePointer(), FPVal); in checkFramePointerInitialization()
246 SP = std::make_pair(BC.MIB->getStackPointer(), SPVal); in checkFramePointerInitialization()
251 if (!BC.MIB->evaluateStackOffsetExpr(Point, Output, SP, FP)) in checkFramePointerInitialization()
261 if (!BC.MII->get(Point.getOpcode()) in checkStackPointerRestore()
262 .hasDefOfPhysReg(Point, BC.MIB->getStackPointer(), *BC.MRI)) in checkStackPointerRestore()
266 const MCInstrDesc &InstInfo = BC.MII->get(Point.getOpcode()); in checkStackPointerRestore()
274 if (Operand.getReg() == BC.MIB->getFramePointer()) { in checkStackPointerRestore()
288 FP = std::make_pair(BC.MIB->getFramePointer(), FPVal); in checkStackPointerRestore()
294 SP = std::make_pair(BC.MIB->getStackPointer(), SPVal); in checkStackPointerRestore()
299 if (!BC.MIB->evaluateStackOffsetExpr(Point, Output, SP, FP)) in checkStackPointerRestore()
314 BC.MIB->addAnnotation(Point, getSlotTag(), Output, AllocatorId); in checkStackPointerRestore()
357 BC.MIB->addAnnotation(Inst, getSlotTag(), FIEX->StackOffset, AllocatorId); in classifyStackAccesses()
372 const uint16_t Reg = *BC.MRI->getLLVMRegNum(CfaReg, /*isEH=*/false); in classifyCFIs()
373 if (Reg == BC.MIB->getStackPointer() || Reg == BC.MIB->getFramePointer()) { in classifyCFIs()
374 BC.MIB->addAnnotation(*Inst, getSlotTag(), Offset, AllocatorId); in classifyCFIs()
384 if (!BC.MIB->isCFI(Inst)) in classifyCFIs()
401 BC.MIB->addAnnotation(Inst, getOffsetCFIRegTag(), in classifyCFIs()
402 BC.MRI->getLLVMRegNum(CFI->getRegister(), in classifyCFIs()
407 BC.MIB->addAnnotation(Inst, getOffsetCFIRegTag(), in classifyCFIs()
408 BC.MRI->getLLVMRegNum(CFI->getRegister(), in classifyCFIs()
436 auto &WList = BC.MIB->getOrCreateAnnotationAs<std::vector<WorklistItem>>( in scheduleChange()
442 if (!IsSimple || !BC.MIB->isPush(*DeletedPush)) in canCollapseRegion()
487 if (!BC.MIB->hasAnnotation(Inst, getSlotTag())) in collapseRegion()
490 BC.MIB->getAnnotationAs<decltype(FrameIndexEntry::StackOffset)>( in collapseRegion()
498 if (BC.MIB->isCFI(Inst)) { in collapseRegion()
515 BC.MIB->addAnnotation(Inst, "AccessesDeletedPos", 0U, AllocatorId); in collapseRegion()
518 if (BC.MIB->isPush(Inst) || BC.MIB->isPop(Inst)) in collapseRegion()
521 if (FIE->StackPtrReg == BC.MIB->getStackPointer() && Slot < RegionAddr) in collapseRegion()
524 if (FIE->StackPtrReg == BC.MIB->getFramePointer() && Slot > RegionAddr) in collapseRegion()
539 if (!BC.MIB->hasAnnotation(Inst, "AccessesDeletedPos")) in setOffsetForCollapsedAccesses()
541 BC.MIB->removeAnnotation(Inst, "AccessesDeletedPos"); in setOffsetForCollapsedAccesses()
586 if (!BC.MIB->hasAnnotation(Inst, getSlotTag())) in insertRegion()
589 BC.MIB->getAnnotationAs<decltype(FrameIndexEntry::StackOffset)>( in insertRegion()
597 if (BC.MIB->isCFI(Inst)) { in insertRegion()
612 if (FIE->StackPtrReg == BC.MIB->getStackPointer() && Slot < RegionAddr) in insertRegion()
614 if (FIE->StackPtrReg == BC.MIB->getFramePointer() && Slot >= RegionAddr) in insertRegion()
616 if (BC.MIB->isPush(Inst) || BC.MIB->isPop(Inst)) in insertRegion()
632 if (BC.MIB->hasAnnotation(Inst, "AccessesDeletedPos")) { in performChanges()
633 assert(BC.MIB->isPop(Inst) || BC.MIB->isPush(Inst)); in performChanges()
634 BC.MIB->removeAnnotation(Inst, "AccessesDeletedPos"); in performChanges()
636 if (!BC.MIB->hasAnnotation(Inst, getTodoTag())) in performChanges()
638 auto &WList = BC.MIB->getAnnotationAs<std::vector<WorklistItem>>( in performChanges()
656 assert(BC.MIB->isCFI(Inst)); in performChanges()
682 Success = BC.MIB->isStackAccess(Inst, IsLoad, IsStore, IsStoreFromReg, in performChanges()
687 Success = BC.MIB->addToImm(Inst, Adjustment, &*BC.Ctx); in performChanges()
692 if (StackPtrReg != BC.MIB->getFramePointer()) in performChanges()
695 Success = BC.MIB->createRestoreFromStack( in performChanges()
698 Success = BC.MIB->createSaveToStack( in performChanges()
727 UsesByReg = std::vector<BitVector>(BC.MRI->getNumRegs(), in classifyCSRUses()
730 const BitVector &FPAliases = BC.MIB->getAliases(BC.MIB->getFramePointer()); in classifyCSRUses()
733 if (BC.MIB->isCFI(Inst)) in classifyCSRUses()
735 BitVector BV = BitVector(BC.MRI->getNumRegs(), false); in classifyCSRUses()
736 BC.MIB->getTouchedRegs(Inst, BV); in classifyCSRUses()
744 if (!SPT.HasFramePointer || !BC.MIB->isCall(Inst)) in classifyCSRUses()
755 BitVector ParamRegs = BC.MIB->getRegsUsedAsParams(); in pruneUnwantedCSRs()
756 for (unsigned I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in pruneUnwantedCSRs()
782 BestSavePos = std::vector<std::vector<MCInst *>>(BC.MRI->getNumRegs()); in computeSaveLocations()
806 for (unsigned I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in computeSaveLocations()
827 BC.printInstruction(dbgs(), *DA.Expressions[J]); in computeSaveLocations()
835 BestSaveCount = std::vector<std::vector<uint64_t>>(BC.MRI->getNumRegs()); in computeSaveLocations()
838 for (unsigned I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in computeSaveLocations()
860 DomOrder = std::vector<MCPhysReg>(BC.MRI->getNumRegs(), 0); in computeDomOrder()
862 for (MCPhysReg I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in computeDomOrder()
886 for (MCPhysReg I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) in computeDomOrder()
949 BC.MIB->createNoop(NewInst); in splitFrontierCritEdges()
986 BC.printInstruction(dbgs(), *BestPosSave); in doRestorePlacement()
989 BC.printInstruction(dbgs(), *PP.getInst()); in doRestorePlacement()
995 if (PP.isInst() && BC.MIB->isTerminator(*PP.getInst()) && in doRestorePlacement()
1006 if (PP.isInst() && BC.MIB->isInvoke(*PP.getInst())) { in doRestorePlacement()
1028 BC.MIB->createNoop(NewInst); in doRestorePlacement()
1085 if (!BC.MIB->isPop(*Load)) { in validatePushPopsMode()
1156 if (BC.MIB->isCFI(Inst)) { in scheduleOldSaveRestoresRemoval()
1210 if (BC.MIB->isCFI(Inst) || CSA.getSavedReg(Inst) == CSR || in doesInstUsesCSR()
1213 BitVector BV = BitVector(BC.MRI->getNumRegs(), false); in doesInstUsesCSR()
1214 BC.MIB->getTouchedRegs(Inst, BV); in doesInstUsesCSR()
1254 PrecededByPrefix = BC.MIB->isPrefix(*Iter); in scheduleSaveRestoreInsertions()
1283 for (unsigned I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in moveSaveRestores()
1360 auto TodoList = BC.MIB->tryGetAnnotationAs<std::vector<WorklistItem>>( in moveSaveRestores()
1364 bool isCFI = BC.MIB->isCFI(Inst); in moveSaveRestores()
1399 bool isIdenticalSplitEdgeBB(const BinaryContext &BC, const BinaryBasicBlock &A, in isIdenticalSplitEdgeBB() argument
1418 if (!BC.MIB->equals(*I, *OtherI, [](const MCSymbol *A, const MCSymbol *B) { in isIdenticalSplitEdgeBB()
1440 !isIdenticalSplitEdgeBB(BC, *Iter, RBB)) in foldIdenticalSplitEdges()
1476 BC.MIB->isPush(Point)) { in compNextAux()
1477 Res.first += BC.MIB->getPushSize(Point); in compNextAux()
1481 BC.MIB->isPop(Point)) { in compNextAux()
1482 Res.first -= BC.MIB->getPopSize(Point); in compNextAux()
1507 BC.MIB->tryGetAnnotationAs<std::vector<ShrinkWrapping::WorklistItem>>( in computeNext()
1557 if (!BC.MIB->isStackAccess(*InstIter, IsLoad, IsStore, IsStoreFromReg, in insertUpdatedCFI()
1617 if (!BC.MIB->isCFI(Inst)) in rebuildCFIForSP()
1621 BC.MIB->addAnnotation(Inst, "DeleteMe", 0U, AllocatorId); in rebuildCFIForSP()
1659 if (BC.MIB->hasAnnotation(*I, "DeleteMe")) in rebuildCFIForSP()
1672 if (!BC.MIB->createRestoreFromStack(NewInst, BC.MIB->getStackPointer(), in createStackAccess()
1679 if (!BC.MIB->createSaveToStack(NewInst, BC.MIB->getStackPointer(), in createStackAccess()
1687 BC.MIB->changeToPushOrPop(NewInst); in createStackAccess()
1694 if (!BC.MIB->createRestoreFromStack(NewInst, BC.MIB->getFramePointer(), in createStackAccess()
1701 if (!BC.MIB->createSaveToStack(NewInst, BC.MIB->getFramePointer(), in createStackAccess()
1743 nullptr, BC.MRI->getDwarfRegNum(Reg, false), NewOffset)); in insertCFIsForPushOrPop()
1755 nullptr, BC.MRI->getDwarfRegNum(Reg, false))); in insertCFIsForPushOrPop()
1884 auto TodoList = BC.MIB->tryGetAnnotationAs<std::vector<WorklistItem>>( in processInsertions()
1917 auto TodoList = BC.MIB->tryGetAnnotationAs<std::vector<WorklistItem>>( in processDeletions()
1929 bool DontClobberFlags = LA.isAlive(&Inst, BC.MIB->getFlagsReg()); in processDeletions()
1930 if (int Sz = BC.MIB->getPushSize(Inst)) { in processDeletions()
1931 BC.MIB->createStackPointerIncrement(Inst, Sz, DontClobberFlags); in processDeletions()
1934 if (int Sz = BC.MIB->getPopSize(Inst)) { in processDeletions()
1935 BC.MIB->createStackPointerDecrement(Inst, Sz, DontClobberFlags); in processDeletions()
1942 BC.printInstruction(dbgs(), Inst); in processDeletions()
1958 for (unsigned I = 0, E = BC.MRI->getNumRegs(); I != E; ++I) { in rebuildCFI()
1969 HasDeletedOffsetCFIs = BitVector(BC.MRI->getNumRegs(), false); in perform()
1970 PushOffsetByReg = std::vector<int64_t>(BC.MRI->getNumRegs(), 0LL); in perform()
1971 PopOffsetByReg = std::vector<int64_t>(BC.MRI->getNumRegs(), 0LL); in perform()
1981 if (BC.MIB->isPseudo(Instr)) in perform()
1983 if (BC.MIB->isStore(Instr)) in perform()
1994 if (HotOnly && (BF.getKnownExecutionCount() < BC.getHotThreshold())) in perform()