Lines Matching refs:HRI
288 const HexagonRegisterInfo &HRI) { in needsStackFrame() argument
315 for (MCSubRegIterator S(R, &HRI, true); S.isValid(); ++S) in needsStackFrame()
411 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in findShrunkPrologEpilog() local
442 for (const MCPhysReg *P = HRI.getCalleeSavedRegs(&MF); *P; ++P) in findShrunkPrologEpilog()
443 for (MCSubRegIterator S(*P, &HRI, true); S.isValid(); ++S) in findShrunkPrologEpilog()
447 if (needsStackFrame(I, CSR, HRI)) in findShrunkPrologEpilog()
511 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in emitPrologue() local
521 insertCSRSpillsInBlock(*PrologB, CSI, HRI, PrologueStubs); in emitPrologue()
526 insertCSRRestoresInBlock(*EpilogB, CSI, HRI); in emitPrologue()
531 insertCSRRestoresInBlock(B, CSI, HRI); in emitPrologue()
595 auto &HRI = *HST.getRegisterInfo(); in insertPrologueInBlock() local
613 unsigned SP = HRI.getStackRegister(); in insertPrologueInBlock()
768 auto &HRI = *HST.getRegisterInfo(); in insertEpilogueInBlock() local
769 unsigned SP = HRI.getStackRegister(); in insertEpilogueInBlock()
890 auto &HRI = *HST.getRegisterInfo(); in insertAllocframe() local
902 unsigned SP = HRI.getStackRegister(); in insertAllocframe()
913 unsigned SP = HRI.getStackRegister(); in insertAllocframe()
1038 auto &HRI = *HST.getRegisterInfo(); in insertCFIInstructionsAt() local
1050 unsigned DwFPReg = HRI.getDwarfRegNum(HRI.getFrameRegister(), true); in insertCFIInstructionsAt()
1051 unsigned DwRAReg = HRI.getDwarfRegNum(HRI.getRARegister(), true); in insertCFIInstructionsAt()
1117 unsigned DwarfReg = HRI.getDwarfRegNum(Reg, true); in insertCFIInstructionsAt()
1129 Register HiReg = HRI.getSubReg(Reg, Hexagon::isub_hi); in insertCFIInstructionsAt()
1130 Register LoReg = HRI.getSubReg(Reg, Hexagon::isub_lo); in insertCFIInstructionsAt()
1131 unsigned HiDwarfReg = HRI.getDwarfRegNum(HiReg, true); in insertCFIInstructionsAt()
1132 unsigned LoDwarfReg = HRI.getDwarfRegNum(LoReg, true); in insertCFIInstructionsAt()
1150 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in hasFP() local
1151 bool HasExtraAlign = HRI.hasStackRealignment(MF); in hasFP()
1267 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in getFrameIndexReference() local
1271 bool HasExtraAlign = HRI.hasStackRealignment(MF); in getFrameIndexReference()
1276 Register SP = HRI.getStackRegister(); in getFrameIndexReference()
1277 Register FP = HRI.getFrameRegister(); in getFrameIndexReference()
1365 const CSIVect &CSI, const HexagonRegisterInfo &HRI, in insertCSRSpillsInBlock() argument
1378 unsigned MaxReg = getMaxCalleeSavedReg(CSI, HRI); in insertCSRSpillsInBlock()
1422 bool IsKill = !HRI.isEHReturnCalleeSaveReg(Reg); in insertCSRSpillsInBlock()
1424 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg); in insertCSRSpillsInBlock()
1425 HII.storeRegToStackSlot(MBB, MI, Reg, IsKill, FI, RC, &HRI); in insertCSRSpillsInBlock()
1433 const CSIVect &CSI, const HexagonRegisterInfo &HRI) const { in insertCSRRestoresInBlock()
1444 unsigned MaxR = getMaxCalleeSavedReg(CSI, HRI); in insertCSRRestoresInBlock()
1488 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg); in insertCSRRestoresInBlock()
1490 HII.loadRegFromStackSlot(MBB, MI, Reg, FI, RC, &HRI); in insertCSRRestoresInBlock()
1583 const HexagonRegisterInfo &HRI, const TargetRegisterClass *RC) { in needToReserveScavengingSpillSlots() argument
1586 auto IsUsed = [&HRI,&MRI] (unsigned Reg) -> bool { in needToReserveScavengingSpillSlots()
1587 for (MCRegAliasIterator AI(Reg, &HRI, true); AI.isValid(); ++AI) in needToReserveScavengingSpillSlots()
1595 for (const MCPhysReg *P = HRI.getCallerSavedRegs(&MF, RC); *P; ++P) in needToReserveScavengingSpillSlots()
1866 auto *HRI = B.getParent()->getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVecPred() local
1867 HII.storeRegToStackSlot(B, It, TmpR1, true, FI, RC, HRI); in expandStoreVecPred()
1897 auto *HRI = MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVecPred() local
1898 HII.loadRegFromStackSlot(B, It, TmpR1, FI, RC, HRI); in expandLoadVecPred()
1916 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVec2() local
1925 LivePhysRegs LPR(HRI); in expandStoreVec2()
1935 Register SrcLo = HRI.getSubReg(SrcR, Hexagon::vsub_lo); in expandStoreVec2()
1936 Register SrcHi = HRI.getSubReg(SrcR, Hexagon::vsub_hi); in expandStoreVec2()
1941 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass); in expandStoreVec2()
1942 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandStoreVec2()
1981 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVec2() local
1988 Register DstHi = HRI.getSubReg(DstR, Hexagon::vsub_hi); in expandLoadVec2()
1989 Register DstLo = HRI.getSubReg(DstR, Hexagon::vsub_lo); in expandLoadVec2()
1993 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass); in expandLoadVec2()
1994 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandLoadVec2()
2032 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVec() local
2038 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandStoreVec()
2063 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVec() local
2068 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandLoadVec()
2130 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in determineCalleeSaves() local
2132 SavedRegs.resize(HRI.getNumRegs()); in determineCalleeSaves()
2137 for (const MCPhysReg *R = HRI.getCalleeSavedRegs(&MF); *R; ++R) in determineCalleeSaves()
2160 if (!needToReserveScavengingSpillSlots(MF, HRI, RC)) in determineCalleeSaves()
2171 unsigned S = HRI.getSpillSize(*RC); in determineCalleeSaves()
2172 Align A = HRI.getSpillAlign(*RC); in determineCalleeSaves()
2188 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in findPhysReg() local
2203 for (auto R : HexagonBlockRanges::expandToSubRegs({Reg,0}, MRI, HRI)) { in findPhysReg()
2219 auto &HRI = *HST.getRegisterInfo(); in optimizeSpillSlots() local
2294 auto *RC = HII.getRegClass(In.getDesc(), OpNum, &HRI, MF); in optimizeSpillSlots()
2382 dbgs() << HRI.getRegClassName(P.second.RC) << '\n'; in optimizeSpillSlots()
2442 << HexagonBlockRanges::PrintRangeMap(DM, HRI)); in optimizeSpillSlots()
2462 auto *RC = HII.getRegClass(SI.getDesc(), 2, &HRI, MF); in optimizeSpillSlots()
2465 LLVM_DEBUG(dbgs() << "Replacement reg:" << printReg(FoundR, &HRI) in optimizeSpillSlots()
2491 SrcOp.setReg(HRI.getSubReg(FoundR, SR)); in optimizeSpillSlots()
2530 for (auto RR : HexagonBlockRanges::expandToSubRegs(FoundRR, MRI, HRI)) in optimizeSpillSlots()