Lines Matching refs:MTracker
184 MLocTracker *MTracker; member in TransferTracker
268 TransferTracker(const TargetInstrInfo *TII, MLocTracker *MTracker, in TransferTracker() argument
271 : TII(TII), MTracker(MTracker), MF(MF), TRI(TRI), in TransferTracker()
279 unsigned Reg = MTracker->LocIdxToLocID[L]; in isCalleeSaved()
280 if (Reg >= MTracker->NumRegs) in isCalleeSaved()
327 if (MTracker->isSpill(L)) in getLocQualityIfBetter()
422 MTracker->emitLoc(ResolvedDbgOps, Var, Value.Properties)); in loadVarInloc()
459 for (auto Location : MTracker->locations()) { in loadInlocs()
530 for (auto Location : MTracker->locations()) { in checkInstForNewValues()
575 MTracker->emitLoc(DbgOps, Use.Var, Use.Properties)); in checkInstForNewValues()
616 if (MTracker->isSpill(Val.getLoc())) in isEntryValueValue()
621 Register Reg = MTracker->LocIdxToLocID[Val.getLoc()]; in isEntryValueValue()
657 Register Reg = MTracker->LocIdxToLocID[Num.getLoc()]; in recoverAsEntryValue()
691 LocIdx NewLoc = MTracker->getRegMLoc(Reg); in redefVar()
735 if (MTracker->readMLoc(NewLoc) != VarLocs[NewLoc.asU64()]) { in redefVar()
754 VarLocs[NewLoc.asU64()] = MTracker->readMLoc(NewLoc); in redefVar()
797 for (auto Loc : MTracker->locations()) in clobberMloc()
838 PendingDbgValues.push_back(MTracker->emitLoc(DbgOps, Var, Properties)); in clobberMloc()
884 if (VarLocs[Src.asU64()] != MTracker->readMLoc(Src)) in transferMlocs()
906 MachineInstr *MI = MTracker->emitLoc(ActiveVLocIt->second.Ops, Var, in transferMlocs()
1314 unsigned Reg = MTracker->LocIdxToLocID[L]; in isCalleeSaved()
1345 return MTracker->getOrTrackSpillLoc({Reg, Offset}); in extractSpillBaseRegAndOffset()
1362 auto IdxIt = MTracker->StackSlotIdxes.find({SizeInBits, 0}); in findLocationForMemOperand()
1363 if (IdxIt == MTracker->StackSlotIdxes.end()) in findLocationForMemOperand()
1368 unsigned SpillID = MTracker->getSpillIDWithIdx(*SpillLoc, IdxIt->second); in findLocationForMemOperand()
1369 return MTracker->getSpillMLoc(SpillID); in findLocationForMemOperand()
1391 (void)MTracker->readReg(MO.getReg()); in transferDebugValue()
1405 DebugOps.push_back(DbgOpStore.insert(MTracker->readReg(MO.getReg()))); in transferDebugValue()
1476 unsigned LocID = MTracker->getLocID(MO.getReg()); in getValueForInstrRef()
1477 LocIdx L = MTracker->LocIDToLocIdx[LocID]; in getValueForInstrRef()
1525 if (NewID && !MTracker->isSpill(L)) { in getValueForInstrRef()
1528 Register Reg = MTracker->LocIdxToLocID[L]; in getValueForInstrRef()
1557 LocIdx NewLoc = MTracker->lookupOrTrackRegister(NewReg); in getValueForInstrRef()
1652 for (auto Location : MTracker->locations()) { in transferDebugInstrRef()
1654 ValueIDNum ID = MTracker->readMLoc(CurL); in transferDebugInstrRef()
1717 MachineInstr *DbgMI = MTracker->emitLoc(NewLocs, V, Properties); in transferDebugInstrRef()
1751 ValueIDNum Num = MTracker->readReg(Reg); in transferDebugPHI()
1753 {InstrNum, MI.getParent(), Num, MTracker->lookupOrTrackRegister(Reg)}); in transferDebugPHI()
1758 MTracker->lookupOrTrackRegister(*RAI); in transferDebugPHI()
1772 std::optional<SpillLocationNo> SpillNo = MTracker->getOrTrackSpillLoc(SL); in transferDebugPHI()
1783 unsigned SpillID = MTracker->getLocID(*SpillNo, {slotBitSize, 0}); in transferDebugPHI()
1784 LocIdx SpillLoc = MTracker->getSpillMLoc(SpillID); in transferDebugPHI()
1785 ValueIDNum Result = MTracker->readMLoc(SpillLoc); in transferDebugPHI()
1811 ValueIDNum Num = MTracker->readReg(MI.getOperand(0).getReg()); in transferRegisterDef()
1834 return MI.isCall() && MTracker->SPAliases.count(R); in transferRegisterDef()
1859 MTracker->defReg(DeadReg, CurBB, CurInst); in transferRegisterDef()
1862 MTracker->writeRegMask(MO, CurBB, CurInst); in transferRegisterDef()
1868 for (unsigned int I = 0; I < MTracker->NumSlotIdxes; ++I) { in transferRegisterDef()
1869 unsigned SpillID = MTracker->getSpillIDWithIdx(*SpillNo, I); in transferRegisterDef()
1870 LocIdx L = MTracker->getSpillMLoc(SpillID); in transferRegisterDef()
1871 MTracker->setMLoc(L, ValueIDNum(CurBB, CurInst, L)); in transferRegisterDef()
1885 LocIdx Loc = MTracker->lookupOrTrackRegister(DeadReg); in transferRegisterDef()
1892 for (auto L : MTracker->locations()) { in transferRegisterDef()
1894 if (MTracker->isSpill(L.Idx)) in transferRegisterDef()
1897 Register Reg = MTracker->LocIdxToLocID[L.Idx]; in transferRegisterDef()
1911 for (unsigned int I = 0; I < MTracker->NumSlotIdxes; ++I) { in transferRegisterDef()
1912 unsigned SpillID = MTracker->getSpillIDWithIdx(*SpillNo, I); in transferRegisterDef()
1913 LocIdx L = MTracker->getSpillMLoc(SpillID); in transferRegisterDef()
1923 MTracker->defReg(*RAI, CurBB, CurInst); in performCopy()
1925 ValueIDNum SrcValue = MTracker->readReg(SrcRegNum); in performCopy()
1926 MTracker->setReg(DstRegNum, SrcValue); in performCopy()
1941 LocIdx SrcL = MTracker->lookupOrTrackRegister(SrcSubReg); in performCopy()
1942 LocIdx DstL = MTracker->lookupOrTrackRegister(DstSubReg); in performCopy()
1945 ValueIDNum CpyValue = MTracker->readReg(SrcSubReg); in performCopy()
1947 MTracker->setReg(DstSubReg, CpyValue); in performCopy()
2028 for (unsigned SlotIdx = 0; SlotIdx < MTracker->NumSlotIdxes; ++SlotIdx) { in transferSpillOrRestoreInst()
2029 unsigned SpillID = MTracker->getSpillIDWithIdx(*Loc, SlotIdx); in transferSpillOrRestoreInst()
2030 std::optional<LocIdx> MLoc = MTracker->getSpillMLoc(SpillID); in transferSpillOrRestoreInst()
2039 MTracker->setMLoc(*MLoc, Def); in transferSpillOrRestoreInst()
2052 auto ReadValue = MTracker->readReg(SrcReg); in transferSpillOrRestoreInst()
2053 LocIdx DstLoc = MTracker->getSpillMLoc(SpillID); in transferSpillOrRestoreInst()
2054 MTracker->setMLoc(DstLoc, ReadValue); in transferSpillOrRestoreInst()
2057 LocIdx SrcLoc = MTracker->getRegMLoc(SrcReg); in transferSpillOrRestoreInst()
2065 (void)MTracker->lookupOrTrackRegister(SR); in transferSpillOrRestoreInst()
2067 unsigned SpillID = MTracker->getLocID(Loc, SubregIdx); in transferSpillOrRestoreInst()
2073 unsigned SpillID = MTracker->getLocID(Loc, {Size, 0}); in transferSpillOrRestoreInst()
2088 MTracker->defReg(*RAI, CurBB, CurInst); in transferSpillOrRestoreInst()
2093 LocIdx SrcIdx = MTracker->getSpillMLoc(SpillID); in transferSpillOrRestoreInst()
2094 auto ReadValue = MTracker->readMLoc(SrcIdx); in transferSpillOrRestoreInst()
2095 MTracker->setReg(DestReg, ReadValue); in transferSpillOrRestoreInst()
2100 unsigned SpillID = MTracker->getLocID(*Loc, Subreg); in transferSpillOrRestoreInst()
2106 unsigned SpillID = MTracker->getLocID(*Loc, {Size, 0}); in transferSpillOrRestoreInst()
2149 LocIdx ClobberedLoc = MTracker->getRegMLoc(*RAI); in transferRegisterCopy()
2155 ValueIDNum Value = MTracker->readReg(*RAI); in transferRegisterCopy()
2176 TTracker->transferMlocs(MTracker->getRegMLoc(SrcReg), in transferRegisterCopy()
2177 MTracker->getRegMLoc(DestReg), MI.getIterator()); in transferRegisterCopy()
2181 MTracker->defReg(SrcReg, CurBB, CurInst); in transferRegisterCopy()
2289 MTracker->reset(); in produceMLocTransferFunction()
2290 MTracker->setMPhis(CurBB); in produceMLocTransferFunction()
2321 for (auto Location : MTracker->locations()) { in produceMLocTransferFunction()
2336 for (auto &P : MTracker->Masks) { in produceMLocTransferFunction()
2343 for (auto Location : MTracker->locations()) { in produceMLocTransferFunction()
2344 unsigned ID = MTracker->LocIdxToLocID[Location.Idx]; in produceMLocTransferFunction()
2346 if (ID >= TRI->getNumRegs() || MTracker->SPAliases.count(ID)) in produceMLocTransferFunction()
2362 unsigned ID = MTracker->getLocID(Bit); in produceMLocTransferFunction()
2363 LocIdx Idx = MTracker->LocIDToLocIdx[ID]; in produceMLocTransferFunction()
2418 for (auto Location : MTracker->locations()) { in mlocJoin()
2478 auto It = MTracker->StackSlotIdxes.find({8, 0}); in findStackIndexInterference()
2479 assert(It != MTracker->StackSlotIdxes.end()); in findStackIndexInterference()
2483 for (auto &Pair : MTracker->StackSlotIdxes) { in findStackIndexInterference()
2507 for (auto Location : MTracker->locations()) { in placeMLocPHIs()
2509 if (MTracker->isSpill(L)) { in placeMLocPHIs()
2510 StackSlots.insert(MTracker->locIDToSpill(MTracker->LocIdxToLocID[L])); in placeMLocPHIs()
2514 Register R = MTracker->LocIdxToLocID[L]; in placeMLocPHIs()
2519 if (!MTracker->isRegisterTracked(*URoot)) { in placeMLocPHIs()
2579 unsigned SpillID = MTracker->getSpillIDWithIdx(Slot, Idx); in placeMLocPHIs()
2580 LocIdx L = MTracker->getSpillMLoc(SpillID); in placeMLocPHIs()
2586 std::tie(Size, Offset) = MTracker->StackIdxesToPos[Idx]; in placeMLocPHIs()
2587 for (auto &Pair : MTracker->StackSlotIdxes) { in placeMLocPHIs()
2593 unsigned ThisID = MTracker->getSpillIDWithIdx(Slot, Pair.second); in placeMLocPHIs()
2594 LocIdx ThisL = MTracker->getSpillMLoc(ThisID); in placeMLocPHIs()
2602 LocIdx L = MTracker->lookupOrTrackRegister(R); in placeMLocPHIs()
2612 if (!MTracker->isRegisterTracked(*RAI)) in placeMLocPHIs()
2615 LocIdx AliasLoc = MTracker->lookupOrTrackRegister(*RAI); in placeMLocPHIs()
2643 for (auto Location : MTracker->locations()) in buildMLocValueMap()
2647 MTracker->reset(); in buildMLocValueMap()
2683 MTracker->loadFromArray(MInLocs[*MBB], CurBB); in buildMLocValueMap()
2691 ValueIDNum NewID = MTracker->readMLoc(P.second.getLoc()); in buildMLocValueMap()
2703 MTracker->setMLoc(P.first, P.second); in buildMLocValueMap()
2709 for (auto Location : MTracker->locations()) { in buildMLocValueMap()
2714 MTracker->reset(); in buildMLocValueMap()
2851 unsigned NumLocs = MTracker->getNumLocs(); in pickOperandPHILoc()
3380 std::string foo = MTracker->LocIdxToName(P.first); in dump_mloc_transfer()
3381 std::string bar = MTracker->IDAsString(P.second); in dump_mloc_transfer()
3490 TTracker = new TransferTracker(TII, MTracker, MF, *TRI, CalleeSavedRegs, TPC); in depthFirstVLocAndEmit()
3491 unsigned NumLocs = MTracker->getNumLocs(); in depthFirstVLocAndEmit()
3513 MTracker->reset(); in depthFirstVLocAndEmit()
3514 MTracker->loadFromArray(MInLocs[MBB], BBNum); in depthFirstVLocAndEmit()
3665 MTracker = in ExtendRanges()
3691 unsigned NumLocs = MTracker->getNumLocs(); in ExtendRanges()
3731 MTracker->loadFromArray(MInLocs[MBB], CurBB); in ExtendRanges()
3737 MTracker->reset(); in ExtendRanges()
3798 delete MTracker; in ExtendRanges()
3800 MTracker = nullptr; in ExtendRanges()