Lines Matching refs:HRI
287 const HexagonRegisterInfo &HRI) { in needsStackFrame() argument
317 for (MCPhysReg S : HRI.subregs_inclusive(R)) in needsStackFrame()
413 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in findShrunkPrologEpilog() local
444 for (const MCPhysReg *P = HRI.getCalleeSavedRegs(&MF); *P; ++P) in findShrunkPrologEpilog()
445 for (MCPhysReg S : HRI.subregs_inclusive(*P)) in findShrunkPrologEpilog()
449 if (needsStackFrame(I, CSR, HRI)) in findShrunkPrologEpilog()
513 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in emitPrologue() local
523 insertCSRSpillsInBlock(*PrologB, CSI, HRI, PrologueStubs); in emitPrologue()
528 insertCSRRestoresInBlock(*EpilogB, CSI, HRI); in emitPrologue()
533 insertCSRRestoresInBlock(B, CSI, HRI); in emitPrologue()
597 auto &HRI = *HST.getRegisterInfo(); in insertPrologueInBlock() local
615 Register SP = HRI.getStackRegister(); in insertPrologueInBlock()
770 auto &HRI = *HST.getRegisterInfo(); in insertEpilogueInBlock() local
771 Register SP = HRI.getStackRegister(); in insertEpilogueInBlock()
892 auto &HRI = *HST.getRegisterInfo(); in insertAllocframe() local
904 Register SP = HRI.getStackRegister(); in insertAllocframe()
915 Register 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()
1362 const CSIVect &CSI, const HexagonRegisterInfo &HRI, in insertCSRSpillsInBlock() argument
1375 Register MaxReg = getMaxCalleeSavedReg(CSI, HRI); in insertCSRSpillsInBlock()
1419 bool IsKill = !HRI.isEHReturnCalleeSaveReg(Reg); in insertCSRSpillsInBlock()
1421 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg); in insertCSRSpillsInBlock()
1422 HII.storeRegToStackSlot(MBB, MI, Reg, IsKill, FI, RC, &HRI, Register()); in insertCSRSpillsInBlock()
1430 const CSIVect &CSI, const HexagonRegisterInfo &HRI) const { in insertCSRRestoresInBlock()
1441 Register MaxR = getMaxCalleeSavedReg(CSI, HRI); in insertCSRRestoresInBlock()
1485 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg); in insertCSRRestoresInBlock()
1487 HII.loadRegFromStackSlot(MBB, MI, Reg, FI, RC, &HRI, Register()); in insertCSRRestoresInBlock()
1528 const HexagonRegisterInfo &HRI, const TargetRegisterClass *RC) { in needToReserveScavengingSpillSlots() argument
1531 auto IsUsed = [&HRI,&MRI] (Register Reg) -> bool { in needToReserveScavengingSpillSlots()
1532 for (MCRegAliasIterator AI(Reg, &HRI, true); AI.isValid(); ++AI) in needToReserveScavengingSpillSlots()
1540 for (const MCPhysReg *P = HRI.getCallerSavedRegs(&MF, RC); *P; ++P) in needToReserveScavengingSpillSlots()
1831 auto *HRI = B.getParent()->getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVecPred() local
1832 HII.storeRegToStackSlot(B, It, TmpR1, true, FI, RC, HRI, Register()); in expandStoreVecPred()
1862 auto *HRI = MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVecPred() local
1863 HII.loadRegFromStackSlot(B, It, TmpR1, FI, RC, HRI, Register()); in expandLoadVecPred()
1881 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVec2() local
1890 LivePhysRegs LPR(HRI); in expandStoreVec2()
1900 Register SrcLo = HRI.getSubReg(SrcR, Hexagon::vsub_lo); in expandStoreVec2()
1901 Register SrcHi = HRI.getSubReg(SrcR, Hexagon::vsub_hi); in expandStoreVec2()
1905 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass); in expandStoreVec2()
1906 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandStoreVec2()
1941 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVec2() local
1948 Register DstHi = HRI.getSubReg(DstR, Hexagon::vsub_hi); in expandLoadVec2()
1949 Register DstLo = HRI.getSubReg(DstR, Hexagon::vsub_lo); in expandLoadVec2()
1952 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass); in expandLoadVec2()
1953 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandLoadVec2()
1986 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandStoreVec() local
1992 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandStoreVec()
2015 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in expandLoadVec() local
2020 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass); in expandLoadVec()
2081 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in determineCalleeSaves() local
2083 SavedRegs.resize(HRI.getNumRegs()); in determineCalleeSaves()
2088 for (const MCPhysReg *R = HRI.getCalleeSavedRegs(&MF); *R; ++R) in determineCalleeSaves()
2111 if (!needToReserveScavengingSpillSlots(MF, HRI, RC)) in determineCalleeSaves()
2122 unsigned S = HRI.getSpillSize(*RC); in determineCalleeSaves()
2123 Align A = HRI.getSpillAlign(*RC); in determineCalleeSaves()
2139 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in findPhysReg() local
2154 for (auto R : HexagonBlockRanges::expandToSubRegs({Reg,0}, MRI, HRI)) { in findPhysReg()
2170 auto &HRI = *HST.getRegisterInfo(); in optimizeSpillSlots() local
2245 auto *RC = HII.getRegClass(In.getDesc(), OpNum, &HRI, MF); in optimizeSpillSlots()
2333 dbgs() << HRI.getRegClassName(P.second.RC) << '\n'; in optimizeSpillSlots()
2393 << HexagonBlockRanges::PrintRangeMap(DM, HRI)); in optimizeSpillSlots()
2413 auto *RC = HII.getRegClass(SI.getDesc(), 2, &HRI, MF); in optimizeSpillSlots()
2416 LLVM_DEBUG(dbgs() << "Replacement reg:" << printReg(FoundR, &HRI) in optimizeSpillSlots()
2442 SrcOp.setReg(HRI.getSubReg(FoundR, SR)); in optimizeSpillSlots()
2481 for (auto RR : HexagonBlockRanges::expandToSubRegs(FoundRR, MRI, HRI)) in optimizeSpillSlots()