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.shouldRealignStack(MF); in emitPrologue()
102 if (NeedsStackRealignment && !RegInfo.canRealignStack(MF)) in emitPrologue()
103 report_fatal_error("Function \"" + Twine(MF.getName()) + "\" required " in emitPrologue()
135 if (MFI.adjustsStack() && hasReservedCallFrame(MF)) in emitPrologue()
149 emitSPAdjustment(MF, MBB, MBBI, -NumBytes, SAVErr, SAVEri); in emitPrologue()
155 MF.addFrameInst(MCCFIInstruction::createDefCfaRegister(nullptr, regFP)); in emitPrologue()
160 CFIIndex = MF.addFrameInst(MCCFIInstruction::createWindowSave(nullptr)); in emitPrologue()
167 CFIIndex = MF.addFrameInst( in emitPrologue()
199 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, in eliminateCallFramePseudoInstr() argument
201 if (!hasReservedCallFrame(MF)) { in eliminateCallFramePseudoInstr()
208 emitSPAdjustment(MF, MBB, I, Size, SP::ADDrr, SP::ADDri); in eliminateCallFramePseudoInstr()
214 void SparcFrameLowering::emitEpilogue(MachineFunction &MF, in emitEpilogue() argument
216 SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in emitEpilogue()
219 *static_cast<const SparcInstrInfo *>(MF.getSubtarget().getInstrInfo()); in emitEpilogue()
228 MachineFrameInfo &MFI = MF.getFrameInfo(); in emitEpilogue()
234 emitSPAdjustment(MF, MBB, MBBI, NumBytes, SP::ADDrr, SP::ADDri); in emitEpilogue()
237 bool SparcFrameLowering::hasReservedCallFrame(const MachineFunction &MF) const { in hasReservedCallFrame()
239 return !MF.getFrameInfo().hasVarSizedObjects(); in hasReservedCallFrame()
245 bool SparcFrameLowering::hasFP(const MachineFunction &MF) const { in hasFP()
246 const TargetRegisterInfo *RegInfo = MF.getSubtarget().getRegisterInfo(); in hasFP()
248 const MachineFrameInfo &MFI = MF.getFrameInfo(); in hasFP()
249 return MF.getTarget().Options.DisableFramePointerElim(MF) || in hasFP()
250 RegInfo->hasStackRealignment(MF) || MFI.hasVarSizedObjects() || in hasFP()
255 SparcFrameLowering::getFrameIndexReference(const MachineFunction &MF, int FI, in getFrameIndexReference() argument
257 const SparcSubtarget &Subtarget = MF.getSubtarget<SparcSubtarget>(); in getFrameIndexReference()
258 const MachineFrameInfo &MFI = MF.getFrameInfo(); in getFrameIndexReference()
260 const SparcMachineFunctionInfo *FuncInfo = MF.getInfo<SparcMachineFunctionInfo>(); in getFrameIndexReference()
277 } else if (RegInfo->hasStackRealignment(MF)) { in getFrameIndexReference()
287 int64_t FrameOffset = MF.getFrameInfo().getObjectOffset(FI) + in getFrameIndexReference()
291 FrameReg = RegInfo->getFrameRegister(MF); in getFrameIndexReference()
295 return StackOffset::getFixed(FrameOffset + MF.getFrameInfo().getStackSize()); in getFrameIndexReference()
313 bool SparcFrameLowering::isLeafProc(MachineFunction &MF) const in isLeafProc()
316 MachineRegisterInfo &MRI = MF.getRegInfo(); in isLeafProc()
317 MachineFrameInfo &MFI = MF.getFrameInfo(); in isLeafProc()
322 || hasFP(MF)); // need %fp in isLeafProc()
325 void SparcFrameLowering::remapRegsForLeafProc(MachineFunction &MF) const { in remapRegsForLeafProc()
326 MachineRegisterInfo &MRI = MF.getRegInfo(); in remapRegsForLeafProc()
346 for (MachineFunction::iterator MBB = MF.begin(), E = MF.end(); in remapRegsForLeafProc()
364 MF.verify(0, "After LeafProc Remapping"); in remapRegsForLeafProc()
368 void SparcFrameLowering::determineCalleeSaves(MachineFunction &MF, in determineCalleeSaves() argument
371 TargetFrameLowering::determineCalleeSaves(MF, SavedRegs, RS); in determineCalleeSaves()
372 if (!DisableLeafProc && isLeafProc(MF)) { in determineCalleeSaves()
373 SparcMachineFunctionInfo *MFI = MF.getInfo<SparcMachineFunctionInfo>(); in determineCalleeSaves()
376 remapRegsForLeafProc(MF); in determineCalleeSaves()