Lines Matching refs:MF
51 void calculateSaveRestoreBlocks(MachineFunction &MF);
52 bool spillCalleeSavedRegs(MachineFunction &MF);
54 bool runOnMachineFunction(MachineFunction &MF) override;
79 MachineFunction &MF = *SaveBlock.getParent(); in insertCSRSaves() local
80 const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); in insertCSRSaves()
81 const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); in insertCSRSaves()
82 const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo(); in insertCSRSaves()
86 const MachineRegisterInfo &MRI = MF.getRegInfo(); in insertCSRSaves()
119 MachineFunction &MF = *RestoreBlock.getParent(); in insertCSRRestores() local
120 const TargetInstrInfo &TII = *MF.getSubtarget().getInstrInfo(); in insertCSRRestores()
121 const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); in insertCSRRestores()
122 const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo(); in insertCSRRestores()
152 void SILowerSGPRSpills::calculateSaveRestoreBlocks(MachineFunction &MF) { in calculateSaveRestoreBlocks() argument
153 const MachineFrameInfo &MFI = MF.getFrameInfo(); in calculateSaveRestoreBlocks()
173 SaveBlocks.push_back(&MF.front()); in calculateSaveRestoreBlocks()
174 for (MachineBasicBlock &MBB : MF) { in calculateSaveRestoreBlocks()
184 static void updateLiveness(MachineFunction &MF, ArrayRef<CalleeSavedInfo> CSI) { in updateLiveness() argument
185 MachineBasicBlock &EntryBB = MF.front(); in updateLiveness()
192 bool SILowerSGPRSpills::spillCalleeSavedRegs(MachineFunction &MF) { in spillCalleeSavedRegs() argument
193 MachineRegisterInfo &MRI = MF.getRegInfo(); in spillCalleeSavedRegs()
194 const Function &F = MF.getFunction(); in spillCalleeSavedRegs()
195 const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>(); in spillCalleeSavedRegs()
197 MachineFrameInfo &MFI = MF.getFrameInfo(); in spillCalleeSavedRegs()
202 TFI->determineCalleeSavesSGPR(MF, SavedRegs, RS); in spillCalleeSavedRegs()
232 updateLiveness(MF, CSI); in spillCalleeSavedRegs()
244 static bool lowerShiftReservedVGPR(MachineFunction &MF, in lowerShiftReservedVGPR() argument
246 SIMachineFunctionInfo *FuncInfo = MF.getInfo<SIMachineFunctionInfo>(); in lowerShiftReservedVGPR()
256 TRI->findUnusedRegister(MF.getRegInfo(), &AMDGPU::VGPR_32RegClass, MF); in lowerShiftReservedVGPR()
260 MachineFrameInfo &FrameInfo = MF.getFrameInfo(); in lowerShiftReservedVGPR()
278 for (MachineBasicBlock &MBB : MF) { in lowerShiftReservedVGPR()
287 bool SILowerSGPRSpills::runOnMachineFunction(MachineFunction &MF) { in runOnMachineFunction() argument
288 const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>(); in runOnMachineFunction()
299 calculateSaveRestoreBlocks(MF); in runOnMachineFunction()
300 bool HasCSRs = spillCalleeSavedRegs(MF); in runOnMachineFunction()
302 MachineFrameInfo &MFI = MF.getFrameInfo(); in runOnMachineFunction()
303 MachineRegisterInfo &MRI = MF.getRegInfo(); in runOnMachineFunction()
304 SIMachineFunctionInfo *FuncInfo = MF.getInfo<SIMachineFunctionInfo>(); in runOnMachineFunction()
311 FuncInfo->removeVGPRForSGPRSpill(FuncInfo->VGPRReservedForSGPRSpill, MF); in runOnMachineFunction()
312 MRI.freezeReservedRegs(MF); in runOnMachineFunction()
331 lowerShiftReservedVGPR(MF, ST); in runOnMachineFunction()
336 for (MachineBasicBlock &MBB : MF) { in runOnMachineFunction()
347 if (FuncInfo->allocateSGPRSpillToVGPR(MF, FI)) { in runOnMachineFunction()
359 for (MachineBasicBlock &MBB : MF) { in runOnMachineFunction()
379 FuncInfo->removeVGPRForSGPRSpill(FuncInfo->VGPRReservedForSGPRSpill, MF); in runOnMachineFunction()
387 MRI.freezeReservedRegs(MF); in runOnMachineFunction()