Lines Matching refs:MF
40 void SparcFrameLowering::emitSPAdjustment(MachineFunction &MF, in emitSPAdjustment() argument
49 *static_cast<const SparcInstrInfo *>(MF.getSubtarget().getInstrInfo()); in emitSPAdjustment()
85 void SparcFrameLowering::emitPrologue(MachineFunction &MF, in emitPrologue() argument
87 SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in emitPrologue()
89 assert(&MF.front() == &MBB && "Shrink-wrapping not yet supported"); in emitPrologue()
90 MachineFrameInfo *MFI = MF.getFrameInfo(); in emitPrologue()
92 *static_cast<const SparcInstrInfo *>(MF.getSubtarget().getInstrInfo()); in emitPrologue()
94 *static_cast<const SparcRegisterInfo *>(MF.getSubtarget().getRegisterInfo()); in emitPrologue()
99 bool NeedsStackRealignment = RegInfo.needsStackRealignment(MF); in emitPrologue()
107 report_fatal_error("Function \"" + Twine(MF.getName()) + "\" required " in emitPrologue()
139 if (MFI->adjustsStack() && hasReservedCallFrame(MF)) in emitPrologue()
144 NumBytes = MF.getSubtarget<SparcSubtarget>().getAdjustedFrameSize(NumBytes); in emitPrologue()
155 emitSPAdjustment(MF, MBB, MBBI, -NumBytes, SAVErr, SAVEri); in emitPrologue()
157 MachineModuleInfo &MMI = MF.getMMI(); in emitPrologue()
187 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
189 if (!hasReservedCallFrame(MF)) { in eliminateCallFramePseudoInstr()
196 emitSPAdjustment(MF, MBB, I, Size, SP::ADDrr, SP::ADDri); in eliminateCallFramePseudoInstr()
202 void SparcFrameLowering::emitEpilogue(MachineFunction &MF, in emitEpilogue() argument
204 SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in emitEpilogue()
207 *static_cast<const SparcInstrInfo *>(MF.getSubtarget().getInstrInfo()); in emitEpilogue()
216 MachineFrameInfo *MFI = MF.getFrameInfo(); in emitEpilogue()
222 emitSPAdjustment(MF, MBB, MBBI, NumBytes, SP::ADDrr, SP::ADDri); in emitEpilogue()
225 bool SparcFrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { in hasReservedCallFrame()
227 return !MF.getFrameInfo()->hasVarSizedObjects(); in hasReservedCallFrame()
233 bool SparcFrameLowering::hasFP(const MachineFunction &MF) const { in hasFP()
234 const TargetRegisterInfo *RegInfo = MF.getSubtarget().getRegisterInfo(); in hasFP()
236 const MachineFrameInfo *MFI = MF.getFrameInfo(); in hasFP()
237 return MF.getTarget().Options.DisableFramePointerElim(MF) || in hasFP()
238 RegInfo->needsStackRealignment(MF) || in hasFP()
244 int SparcFrameLowering::getFrameIndexReference(const MachineFunction &MF, int FI, in getFrameIndexReference() argument
246 const SparcSubtarget &Subtarget = MF.getSubtarget<SparcSubtarget>(); in getFrameIndexReference()
247 const MachineFrameInfo *MFI = MF.getFrameInfo(); in getFrameIndexReference()
249 const SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in getFrameIndexReference()
266 } else if (RegInfo->needsStackRealignment(MF)) { in getFrameIndexReference()
276 int64_t FrameOffset = MF.getFrameInfo()->getObjectOffset(FI) + in getFrameIndexReference()
280 FrameReg = RegInfo->getFrameRegister(MF); in getFrameIndexReference()
284 return FrameOffset + MF.getFrameInfo()->getStackSize(); in getFrameIndexReference()
302 bool SparcFrameLowering::isLeafProc(MachineFunction &MF) const in isLeafProc()
305 MachineRegisterInfo &MRI = MF.getRegInfo(); in isLeafProc()
306 MachineFrameInfo *MFI = MF.getFrameInfo(); in isLeafProc()
311 || hasFP(MF)); // need %FP in isLeafProc()
314 void SparcFrameLowering::remapRegsForLeafProc(MachineFunction &MF) const { in remapRegsForLeafProc()
315 MachineRegisterInfo &MRI = MF.getRegInfo(); in remapRegsForLeafProc()
336 for (MachineFunction::iterator MBB = MF.begin(), E = MF.end(); in remapRegsForLeafProc()
354 MF.verify(0, "After LeafProc Remapping"); in remapRegsForLeafProc()
358 void SparcFrameLowering::determineCalleeSaves(MachineFunction &MF, in determineCalleeSaves() argument
361 TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS); in determineCalleeSaves()
362 if (!DisableLeafProc && isLeafProc(MF)) { in determineCalleeSaves()
363 SparcMachineFunctionInfo *MFI = MF.getInfo<SparcMachineFunctionInfo>(); in determineCalleeSaves()
366 remapRegsForLeafProc(MF); in determineCalleeSaves()