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()
91 const SparcSubtarget &Subtarget = MF.getSubtarget<SparcSubtarget>(); in emitPrologue()
100 bool NeedsStackRealignment = RegInfo.needsStackRealignment(MF); in emitPrologue()
108 report_fatal_error("Function \"" + Twine(MF.getName()) + "\" required " in emitPrologue()
140 if (MFI.adjustsStack() && hasReservedCallFrame(MF)) in emitPrologue()
156 emitSPAdjustment(MF, MBB, MBBI, -NumBytes, SAVErr, SAVEri); in emitPrologue()
162 MF.addFrameInst(MCCFIInstruction::createDefCfaRegister(nullptr, regFP)); in emitPrologue()
167 CFIIndex = MF.addFrameInst(MCCFIInstruction::createWindowSave(nullptr)); in emitPrologue()
174 CFIIndex = MF.addFrameInst( in emitPrologue()
205 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
207 if (!hasReservedCallFrame(MF)) { in eliminateCallFramePseudoInstr()
214 emitSPAdjustment(MF, MBB, I, Size, SP::ADDrr, SP::ADDri); in eliminateCallFramePseudoInstr()
220 void SparcFrameLowering::emitEpilogue(MachineFunction &MF, in emitEpilogue() argument
222 SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in emitEpilogue()
225 *static_cast<const SparcInstrInfo *>(MF.getSubtarget().getInstrInfo()); in emitEpilogue()
234 MachineFrameInfo &MFI = MF.getFrameInfo(); in emitEpilogue()
240 emitSPAdjustment(MF, MBB, MBBI, NumBytes, SP::ADDrr, SP::ADDri); in emitEpilogue()
243 bool SparcFrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { in hasReservedCallFrame()
245 return !MF.getFrameInfo().hasVarSizedObjects(); in hasReservedCallFrame()
251 bool SparcFrameLowering::hasFP(const MachineFunction &MF) const { in hasFP()
252 const TargetRegisterInfo *RegInfo = MF.getSubtarget().getRegisterInfo(); in hasFP()
254 const MachineFrameInfo &MFI = MF.getFrameInfo(); in hasFP()
255 return MF.getTarget().Options.DisableFramePointerElim(MF) || in hasFP()
256 RegInfo->needsStackRealignment(MF) || in hasFP()
262 int SparcFrameLowering::getFrameIndexReference(const MachineFunction &MF, int FI, in getFrameIndexReference() argument
264 const SparcSubtarget &Subtarget = MF.getSubtarget<SparcSubtarget>(); in getFrameIndexReference()
265 const MachineFrameInfo &MFI = MF.getFrameInfo(); in getFrameIndexReference()
267 const SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in getFrameIndexReference()
284 } else if (RegInfo->needsStackRealignment(MF)) { in getFrameIndexReference()
294 int64_t FrameOffset = MF.getFrameInfo().getObjectOffset(FI) + in getFrameIndexReference()
298 FrameReg = RegInfo->getFrameRegister(MF); in getFrameIndexReference()
302 return FrameOffset + MF.getFrameInfo().getStackSize(); in getFrameIndexReference()
320 bool SparcFrameLowering::isLeafProc(MachineFunction &MF) const in isLeafProc()
323 MachineRegisterInfo &MRI = MF.getRegInfo(); in isLeafProc()
324 MachineFrameInfo &MFI = MF.getFrameInfo(); in isLeafProc()
329 || hasFP(MF)); // need %fp in isLeafProc()
332 void SparcFrameLowering::remapRegsForLeafProc(MachineFunction &MF) const { in remapRegsForLeafProc()
333 MachineRegisterInfo &MRI = MF.getRegInfo(); in remapRegsForLeafProc()
353 for (MachineFunction::iterator MBB = MF.begin(), E = MF.end(); in remapRegsForLeafProc()
371 MF.verify(0, "After LeafProc Remapping"); in remapRegsForLeafProc()
375 void SparcFrameLowering::determineCalleeSaves(MachineFunction &MF, in determineCalleeSaves() argument
378 TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS); in determineCalleeSaves()
379 if (!DisableLeafProc && isLeafProc(MF)) { in determineCalleeSaves()
380 SparcMachineFunctionInfo *MFI = MF.getInfo<SparcMachineFunctionInfo>(); in determineCalleeSaves()
383 remapRegsForLeafProc(MF); in determineCalleeSaves()