Lines Matching defs:MF

132 void VEFrameLowering::emitPrologueInsns(MachineFunction &MF,
137 const VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();
160 if (hasGOT(MF)) {
172 if (hasBP(MF))
180 void VEFrameLowering::emitEpilogueInsns(MachineFunction &MF,
185 const VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();
196 if (hasBP(MF))
201 if (hasGOT(MF)) {
223 void VEFrameLowering::emitSPAdjustment(MachineFunction &MF,
271 void VEFrameLowering::emitSPExtend(MachineFunction &MF, MachineBasicBlock &MBB,
305 void VEFrameLowering::emitPrologue(MachineFunction &MF,
307 const VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();
308 assert(&MF.front() == &MBB && "Shrink-wrapping not yet supported");
309 MachineFrameInfo &MFI = MF.getFrameInfo();
313 bool NeedsStackRealignment = RegInfo.shouldRealignStack(MF);
319 if (NeedsStackRealignment && !RegInfo.canRealignStack(MF))
320 report_fatal_error("Function \"" + Twine(MF.getName()) +
345 emitPrologueInsns(MF, MBB, MBBI, NumBytes, true);
360 emitSPAdjustment(MF, MBB, MBBI, -(int64_t)NumBytes, RuntimeAlign);
362 if (hasBP(MF)) {
371 emitSPExtend(MF, MBB, MBBI);
375 MachineFunction &MF, MachineBasicBlock &MBB,
377 if (!hasReservedCallFrame(MF)) {
384 emitSPAdjustment(MF, MBB, I, Size);
389 void VEFrameLowering::emitEpilogue(MachineFunction &MF,
391 const VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();
394 MachineFrameInfo &MFI = MF.getFrameInfo();
408 emitSPAdjustment(MF, MBB, MBBI, NumBytes, std::nullopt);
412 emitEpilogueInsns(MF, MBB, MBBI, NumBytes, true);
418 bool VEFrameLowering::hasFPImpl(const MachineFunction &MF) const {
419 const TargetRegisterInfo *RegInfo = MF.getSubtarget().getRegisterInfo();
421 const MachineFrameInfo &MFI = MF.getFrameInfo();
422 return MF.getTarget().Options.DisableFramePointerElim(MF) ||
423 RegInfo->hasStackRealignment(MF) || MFI.hasVarSizedObjects() ||
427 bool VEFrameLowering::hasBP(const MachineFunction &MF) const {
428 const MachineFrameInfo &MFI = MF.getFrameInfo();
431 return MFI.hasVarSizedObjects() && TRI->hasStackRealignment(MF);
434 bool VEFrameLowering::hasGOT(const MachineFunction &MF) const {
435 const VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();
441 StackOffset VEFrameLowering::getFrameIndexReference(const MachineFunction &MF,
444 const MachineFrameInfo &MFI = MF.getFrameInfo();
448 int64_t FrameOffset = MF.getFrameInfo().getObjectOffset(FI);
450 if (!hasFP(MF)) {
454 MF.getFrameInfo().getStackSize());
456 if (RegInfo->hasStackRealignment(MF) && !isFixed) {
459 if (hasBP(MF))
464 MF.getFrameInfo().getStackSize());
467 FrameReg = RegInfo->getFrameRegister(MF);
471 bool VEFrameLowering::isLeafProc(MachineFunction &MF) const {
473 MachineRegisterInfo &MRI = MF.getRegInfo();
474 MachineFrameInfo &MFI = MF.getFrameInfo();
480 && !hasFP(MF); // Don't need %fp
483 void VEFrameLowering::determineCalleeSaves(MachineFunction &MF,
486 TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS);
490 if (isLeafProc(MF) && !hasBP(MF)) {
491 VEMachineFunctionInfo *FuncInfo = MF.getInfo<VEMachineFunctionInfo>();