• Home
  • Raw
  • Download

Lines Matching refs:MF

167     bool runOnMachineFunction(MachineFunction &MF) override;
173 bool HexagonCallFrameInformation::runOnMachineFunction(MachineFunction &MF) { in runOnMachineFunction() argument
174 auto &HFI = *MF.getSubtarget<HexagonSubtarget>().getFrameLowering(); in runOnMachineFunction()
175 bool NeedCFI = MF.getMMI().hasDebugInfo() || in runOnMachineFunction()
176 MF.getFunction()->needsUnwindTableEntry(); in runOnMachineFunction()
180 HFI.insertCFIInstructions(MF); in runOnMachineFunction()
290 void HexagonFrameLowering::findShrunkPrologEpilog(MachineFunction &MF, in findShrunkPrologEpilog() argument
300 auto &HST = static_cast<const HexagonSubtarget&>(MF.getSubtarget()); in findShrunkPrologEpilog()
304 MDT.runOnMachineFunction(MF); in findShrunkPrologEpilog()
306 MPT.runOnMachineFunction(MF); in findShrunkPrologEpilog()
311 RPOTType RPOT(&MF); in findShrunkPrologEpilog()
319 for (auto &I : MF) { in findShrunkPrologEpilog()
332 for (const MCPhysReg *P = HRI.getCalleeSavedRegs(&MF); *P; ++P) in findShrunkPrologEpilog()
335 for (auto &I : MF) in findShrunkPrologEpilog()
394 void HexagonFrameLowering::emitPrologue(MachineFunction &MF, in emitPrologue() argument
396 auto &HST = static_cast<const HexagonSubtarget&>(MF.getSubtarget()); in emitPrologue()
399 assert(&MF.front() == &MBB && "Shrink-wrapping not yet supported"); in emitPrologue()
400 MachineFrameInfo *MFI = MF.getFrameInfo(); in emitPrologue()
403 MachineBasicBlock *PrologB = &MF.front(), *EpilogB = nullptr; in emitPrologue()
405 findShrunkPrologEpilog(MF, PrologB, EpilogB); in emitPrologue()
414 for (auto &B : MF) in emitPrologue()
418 for (auto &B : MF) in emitPrologue()
426 MachineFunction &MF = *MBB.getParent(); in insertPrologueInBlock() local
427 MachineFrameInfo *MFI = MF.getFrameInfo(); in insertPrologueInBlock()
428 auto &HST = MF.getSubtarget<HexagonSubtarget>(); in insertPrologueInBlock()
453 auto *FuncInfo = MF.getInfo<HexagonMachineFunctionInfo>(); in insertPrologueInBlock()
462 if (!hasFP(MF)) in insertPrologueInBlock()
472 MF.getMachineMemOperand(MachinePointerInfo(), MachineMemOperand::MOStore, in insertPrologueInBlock()
503 MachineFunction &MF = *MBB.getParent(); in insertEpilogueInBlock() local
504 if (!hasFP(MF)) in insertEpilogueInBlock()
507 auto &HST = static_cast<const HexagonSubtarget&>(MF.getSubtarget()); in insertEpilogueInBlock()
575 NewI->copyImplicitOps(MF, RetI); in insertEpilogueInBlock()
601 void HexagonFrameLowering::insertCFIInstructions(MachineFunction &MF) const { in insertCFIInstructions()
602 for (auto &B : MF) { in insertCFIInstructions()
613 MachineFunction &MF = *MBB.getParent(); in insertCFIInstructionsAt() local
614 MachineFrameInfo *MFI = MF.getFrameInfo(); in insertCFIInstructionsAt()
615 MachineModuleInfo &MMI = MF.getMMI(); in insertCFIInstructionsAt()
616 auto &HST = MF.getSubtarget<HexagonSubtarget>(); in insertCFIInstructionsAt()
628 if (hasFP(MF)) { in insertCFIInstructionsAt()
679 int64_t Offset = getFrameIndexReference(MF, F->getFrameIdx(), FrameReg) - 8; in insertCFIInstructionsAt()
711 bool HexagonFrameLowering::hasFP(const MachineFunction &MF) const { in hasFP()
712 auto &MFI = *MF.getFrameInfo(); in hasFP()
713 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in hasFP()
718 bool HasExtraAlign = HRI.needsStackRealignment(MF); in hasFP()
726 if (MF.getTarget().getOptLevel() == CodeGenOpt::None) in hasFP()
742 MF.getInfo<HexagonMachineFunctionInfo>()->hasClobberLR()) in hasFP()
828 int HexagonFrameLowering::getFrameIndexReference(const MachineFunction &MF, in getFrameIndexReference() argument
830 auto &MFI = *MF.getFrameInfo(); in getFrameIndexReference()
831 auto &HRI = *MF.getSubtarget<HexagonSubtarget>().getRegisterInfo(); in getFrameIndexReference()
836 bool HasExtraAlign = HRI.needsStackRealignment(MF); in getFrameIndexReference()
837 bool NoOpt = MF.getTarget().getOptLevel() == CodeGenOpt::None; in getFrameIndexReference()
841 if (const MachineInstr *AI = getAlignaInstr(MF)) in getFrameIndexReference()
866 bool HasFP = hasFP(MF); in getFrameIndexReference()
920 MachineFunction &MF = *MBB.getParent(); in insertCSRSpillsInBlock() local
921 auto &HII = *MF.getSubtarget<HexagonSubtarget>().getInstrInfo(); in insertCSRSpillsInBlock()
923 if (useSpillFunction(MF, CSI)) { in insertCSRSpillsInBlock()
961 MachineFunction &MF = *MBB.getParent(); in insertCSRRestoresInBlock() local
962 auto &HII = *MF.getSubtarget<HexagonSubtarget>().getInstrInfo(); in insertCSRRestoresInBlock()
964 if (useRestoreFunction(MF, CSI)) { in insertCSRRestoresInBlock()
987 DeallocCall->copyImplicitOps(MF, It); in insertCSRRestoresInBlock()
1003 void HexagonFrameLowering::eliminateCallFramePseudoInstr(MachineFunction &MF, in eliminateCallFramePseudoInstr() argument
1015 MachineFunction &MF, RegScavenger *RS) const { in processFunctionBeforeFrameFinalized() argument
1020 MachineFrameInfo *MFI = MF.getFrameInfo(); in processFunctionBeforeFrameFinalized()
1047 static bool needToReserveScavengingSpillSlots(MachineFunction &MF, in needToReserveScavengingSpillSlots() argument
1049 MachineRegisterInfo &MRI = MF.getRegInfo(); in needToReserveScavengingSpillSlots()
1050 const MCPhysReg *CallerSavedRegs = HRI.getCallerSavedRegs(&MF); in needToReserveScavengingSpillSlots()
1076 bool HexagonFrameLowering::replacePredRegPseudoSpillCode(MachineFunction &MF) in replacePredRegPseudoSpillCode()
1078 auto &HST = static_cast<const HexagonSubtarget&>(MF.getSubtarget()); in replacePredRegPseudoSpillCode()
1080 MachineRegisterInfo &MRI = MF.getRegInfo(); in replacePredRegPseudoSpillCode()
1084 for (MachineFunction::iterator MBBb = MF.begin(), MBBe = MF.end(); in replacePredRegPseudoSpillCode()
1149 void HexagonFrameLowering::determineCalleeSaves(MachineFunction &MF, in determineCalleeSaves() argument
1152 TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS); in determineCalleeSaves()
1154 auto &HST = static_cast<const HexagonSubtarget&>(MF.getSubtarget()); in determineCalleeSaves()
1157 bool HasEHReturn = MF.getInfo<HexagonMachineFunctionInfo>()->hasEHReturn(); in determineCalleeSaves()
1162 for (const MCPhysReg *CSRegs = HRI.getCalleeSavedRegs(&MF); *CSRegs; in determineCalleeSaves()
1170 bool HasReplacedPseudoInst = replacePredRegPseudoSpillCode(MF); in determineCalleeSaves()
1174 if (HasReplacedPseudoInst && needToReserveScavengingSpillSlots(MF, HRI)) { in determineCalleeSaves()
1175 MachineFrameInfo *MFI = MF.getFrameInfo(); in determineCalleeSaves()
1195 bool HexagonFrameLowering::assignCalleeSavedSpillSlots(MachineFunction &MF, in assignCalleeSavedSpillSlots() argument
1198 << MF.getFunction()->getName() << '\n'); in assignCalleeSavedSpillSlots()
1199 MachineFrameInfo *MFI = MF.getFrameInfo(); in assignCalleeSavedSpillSlots()
1220 BitVector Reserved = TRI->getReservedRegs(MF); in assignCalleeSavedSpillSlots()
1389 bool HexagonFrameLowering::needsAligna(const MachineFunction &MF) const { in needsAligna()
1390 const MachineFrameInfo *MFI = MF.getFrameInfo(); in needsAligna()
1401 const MachineFunction &MF) const { in getAlignaInstr()
1402 for (auto &B : MF) in getAlignaInstr()
1411 inline static bool isOptSize(const MachineFunction &MF) { in isOptSize() argument
1412 AttributeSet AF = MF.getFunction()->getAttributes(); in isOptSize()
1417 inline static bool isMinSize(const MachineFunction &MF) { in isMinSize() argument
1418 return MF.getFunction()->optForMinSize(); in isMinSize()
1426 bool HexagonFrameLowering::shouldInlineCSR(MachineFunction &MF, in shouldInlineCSR() argument
1428 if (MF.getInfo<HexagonMachineFunctionInfo>()->hasEHReturn()) in shouldInlineCSR()
1430 if (!isOptSize(MF) && !isMinSize(MF)) in shouldInlineCSR()
1431 if (MF.getTarget().getOptLevel() > CodeGenOpt::Default) in shouldInlineCSR()
1457 bool HexagonFrameLowering::useSpillFunction(MachineFunction &MF, in useSpillFunction() argument
1459 if (shouldInlineCSR(MF, CSI)) in useSpillFunction()
1465 unsigned Threshold = isOptSize(MF) ? SpillFuncThresholdOs in useSpillFunction()
1471 bool HexagonFrameLowering::useRestoreFunction(MachineFunction &MF, in useRestoreFunction() argument
1473 if (shouldInlineCSR(MF, CSI)) in useRestoreFunction()
1476 unsigned Threshold = isOptSize(MF) ? SpillFuncThresholdOs-1 in useRestoreFunction()