Home | History | Annotate | Download | only in Hexagon

Lines Matching refs:HRI

242         const HexagonRegisterInfo &HRI) {
271 for (MCSubRegIterator S(R, &HRI, true); S.isValid(); ++S)
346 auto &HRI = *HST.getRegisterInfo();
377 for (const MCPhysReg *P = HRI.getCalleeSavedRegs(&MF); *P; ++P)
378 for (MCSubRegIterator S(*P, &HRI, true); S.isValid(); ++S)
382 if (needsStackFrame(I, CSR, HRI))
444 auto &HRI = *HST.getRegisterInfo();
454 insertCSRSpillsInBlock(*PrologB, CSI, HRI, PrologueStubs);
458 insertCSRRestoresInBlock(*EpilogB, CSI, HRI);
463 insertCSRRestoresInBlock(B, CSI, HRI);
500 auto &HRI = *HST.getRegisterInfo();
519 unsigned SP = HRI.getStackRegister();
553 unsigned CallerSavedReg = HRI.getFirstCallerSavedNonParamReg();
586 auto &HRI = *HST.getRegisterInfo();
587 unsigned SP = HRI.getStackRegister();
736 auto &HRI = *HST.getRegisterInfo();
748 unsigned DwFPReg = HRI.getDwarfRegNum(HRI.getFrameRegister(), true);
749 unsigned DwRAReg = HRI.getDwarfRegNum(HRI.getRARegister(), true);
814 unsigned DwarfReg = HRI.getDwarfRegNum(Reg, true);
826 unsigned HiReg = HRI.getSubReg(Reg, Hexagon::subreg_hireg);
827 unsigned LoReg = HRI.getSubReg(Reg, Hexagon::subreg_loreg);
828 unsigned HiDwarfReg = HRI.getDwarfRegNum(HiReg, true);
829 unsigned LoDwarfReg = HRI.getDwarfRegNum(LoReg, true);
845 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
850 bool HasExtraAlign = HRI.needsStackRealignment(MF);
962 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
966 bool HasExtraAlign = HRI.needsStackRealignment(MF);
969 unsigned SP = HRI.getStackRegister(), FP = HRI.getFrameRegister();
1044 const CSIVect &CSI, const HexagonRegisterInfo &HRI,
1056 unsigned MaxReg = getMaxCalleeSavedReg(CSI, HRI);
1089 bool IsKill = !HRI.isEHReturnCalleeSaveReg(Reg);
1091 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg);
1092 HII.storeRegToStackSlot(MBB, MI, Reg, IsKill, FI, RC, &HRI);
1101 const CSIVect &CSI, const HexagonRegisterInfo &HRI) const {
1111 unsigned MaxR = getMaxCalleeSavedReg(CSI, HRI);
1144 const TargetRegisterClass *RC = HRI.getMinimalPhysRegClass(Reg);
1146 HII.loadRegFromStackSlot(MBB, MI, Reg, FI, RC, &HRI);
1207 const HexagonRegisterInfo &HRI, const TargetRegisterClass *RC) {
1210 auto IsUsed = [&HRI,&MRI] (unsigned Reg) -> bool {
1211 for (MCRegAliasIterator AI(Reg, &HRI, true); AI.isValid(); ++AI)
1219 for (const MCPhysReg *P = HRI.getCallerSavedRegs(&MF, RC); *P; ++P)
1491 auto *HRI = B.getParent()->getSubtarget<HexagonSubtarget>().getRegisterInfo();
1492 HII.storeRegToStackSlot(B, It, TmpR1, true, FI, RC, HRI);
1524 auto *HRI = B.getParent()->getSubtarget<HexagonSubtarget>().getRegisterInfo();
1525 HII.loadRegFromStackSlot(B, It, TmpR1, FI, RC, HRI);
1545 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1550 unsigned SrcLo = HRI.getSubReg(SrcR, Hexagon::subreg_loreg);
1551 unsigned SrcHi = HRI.getSubReg(SrcR, Hexagon::subreg_hireg);
1599 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1604 unsigned DstHi = HRI.getSubReg(DstR, Hexagon::subreg_hireg);
1605 unsigned DstLo = HRI.getSubReg(DstR, Hexagon::subreg_loreg);
1782 auto &HRI = *HST.getRegisterInfo();
1784 SavedRegs.resize(HRI.getNumRegs());
1789 for (const MCPhysReg *R = HRI.getCalleeSavedRegs(&MF); *R; ++R)
1812 if (!needToReserveScavengingSpillSlots(MF, HRI, RC))
1832 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo();
1847 for (auto R : HexagonBlockRanges::expandToSubRegs({Reg,0}, MRI, HRI)) {
1863 auto &HRI = *HST.getRegisterInfo();
1885 auto getRegClass = [&MRI,&HRI] (HexagonBlockRanges::RegisterRef R)
1894 R.Reg = HRI.getSubReg(PR, R.Sub);
1896 return HRI.getMinimalPhysRegClass(R.Reg);
1902 auto getCommonRC = [&HRI] (const TargetRegisterClass *HaveRC,
2037 dbgs() << HRI.getRegClassName(P.second.RC) << '\n';
2092 << HexagonBlockRanges::PrintRangeMap(DM, HRI));
2115 DEBUG(dbgs() << "Replacement reg:" << PrintReg(FoundR, &HRI) << '\n');
2133 SrcOp.setReg(HRI.getSubReg(FoundR, SR));
2172 for (auto RR : HexagonBlockRanges::expandToSubRegs(FoundRR, MRI, HRI))