Lines Matching defs:HRI

287                             const HexagonRegisterInfo &HRI) {
317 for (MCPhysReg S : HRI.subregs_inclusive(R))
413 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
444 for (const MCPhysReg *P = HRI.getCalleeSavedRegs(&MF); *P; ++P)
445 for (MCPhysReg S : HRI.subregs_inclusive(*P))
449 if (needsStackFrame(I, CSR, HRI))
513 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
523 insertCSRSpillsInBlock(*PrologB, CSI, HRI, PrologueStubs);
528 insertCSRRestoresInBlock(*EpilogB, CSI, HRI);
533 insertCSRRestoresInBlock(B, CSI, HRI);
597 auto &HRI = *HST.getRegisterInfo();
615 Register SP = HRI.getStackRegister();
770 auto &HRI = *HST.getRegisterInfo();
771 Register SP = HRI.getStackRegister();
892 auto &HRI = *HST.getRegisterInfo();
904 Register SP = HRI.getStackRegister();
916 Register SP = HRI.getStackRegister();
1040 auto &HRI = *HST.getRegisterInfo();
1052 unsigned DwFPReg = HRI.getDwarfRegNum(HRI.getFrameRegister(), true);
1053 unsigned DwRAReg = HRI.getDwarfRegNum(HRI.getRARegister(), true);
1119 unsigned DwarfReg = HRI.getDwarfRegNum(Reg, true);
1131 Register HiReg = HRI.getSubReg(Reg, Hexagon::isub_hi);
1132 Register LoReg = HRI.getSubReg(Reg, Hexagon::isub_lo);
1133 unsigned HiDwarfReg = HRI.getDwarfRegNum(HiReg, true);
1134 unsigned LoDwarfReg = HRI.getDwarfRegNum(LoReg, true);
1149 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1150 bool HasExtraAlign = HRI.hasStackRealignment(MF);
1266 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1270 bool HasExtraAlign = HRI.hasStackRealignment(MF);
1275 Register SP = HRI.getStackRegister();
1276 Register FP = HRI.getFrameRegister();
1361 const CSIVect &CSI, const HexagonRegisterInfo &HRI,
1374 Register MaxReg = getMaxCalleeSavedReg(CSI, HRI);
1418 bool IsKill = !HRI.isEHReturnCalleeSaveReg(Reg);
1420 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg);
1421 HII.storeRegToStackSlot(MBB, MI, Reg, IsKill, FI, RC, &HRI, Register());
1429 const CSIVect &CSI, const HexagonRegisterInfo &HRI) const {
1440 Register MaxR = getMaxCalleeSavedReg(CSI, HRI);
1484 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg);
1486 HII.loadRegFromStackSlot(MBB, MI, Reg, FI, RC, &HRI, Register());
1527 const HexagonRegisterInfo &HRI, const TargetRegisterClass *RC) {
1530 auto IsUsed = [&HRI,&MRI] (Register Reg) -> bool {
1531 for (MCRegAliasIterator AI(Reg, &HRI, true); AI.isValid(); ++AI)
1539 for (const MCPhysReg *P = HRI.getCallerSavedRegs(&MF, RC); *P; ++P)
1830 auto *HRI = B.getParent()->getSubtarget<HexagonSubtarget>().getRegisterInfo();
1831 HII.storeRegToStackSlot(B, It, TmpR1, true, FI, RC, HRI, Register());
1861 auto *HRI = MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1862 HII.loadRegFromStackSlot(B, It, TmpR1, FI, RC, HRI, Register());
1880 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1889 LivePhysRegs LPR(HRI);
1899 Register SrcLo = HRI.getSubReg(SrcR, Hexagon::vsub_lo);
1900 Register SrcHi = HRI.getSubReg(SrcR, Hexagon::vsub_hi);
1904 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass);
1905 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass);
1940 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1947 Register DstHi = HRI.getSubReg(DstR, Hexagon::vsub_hi);
1948 Register DstLo = HRI.getSubReg(DstR, Hexagon::vsub_lo);
1951 unsigned Size = HRI.getSpillSize(Hexagon::HvxVRRegClass);
1952 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass);
1985 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1991 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass);
2014 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
2019 Align NeedAlign = HRI.getSpillAlign(Hexagon::HvxVRRegClass);
2080 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
2082 SavedRegs.resize(HRI.getNumRegs());
2087 for (const MCPhysReg *R = HRI.getCalleeSavedRegs(&MF); *R; ++R)
2110 if (!needToReserveScavengingSpillSlots(MF, HRI, RC))
2121 unsigned S = HRI.getSpillSize(*RC);
2122 Align A = HRI.getSpillAlign(*RC);
2138 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
2153 for (auto R : HexagonBlockRanges::expandToSubRegs({Reg,0}, MRI, HRI)) {
2169 auto &HRI = *HST.getRegisterInfo();
2244 auto *RC = HII.getRegClass(In.getDesc(), OpNum, &HRI, MF);
2332 dbgs() << HRI.getRegClassName(P.second.RC) << '\n';
2392 << HexagonBlockRanges::PrintRangeMap(DM, HRI));
2412 auto *RC = HII.getRegClass(SI.getDesc(), 2, &HRI, MF);
2415 LLVM_DEBUG(dbgs() << "Replacement reg:" << printReg(FoundR, &HRI)
2441 SrcOp.setReg(HRI.getSubReg(FoundR, SR));
2480 for (auto RR : HexagonBlockRanges::expandToSubRegs(FoundRR, MRI, HRI))