Lines Matching refs:MFI
76 SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in getVGPRSpillLaneOrTempRegister() local
98 MFI->allocateSGPRSpillToVGPRLane(MF, FI, /*SpillToPhysVGPRLane=*/true, in getVGPRSpillLaneOrTempRegister()
102 MFI->addToPrologEpilogSGPRSpills( in getVGPRSpillLaneOrTempRegister()
106 LLVM_DEBUG(auto Spill = MFI->getSGPRSpillToPhysicalVGPRLanes(FI).front(); in getVGPRSpillLaneOrTempRegister()
115 MFI->addToPrologEpilogSGPRSpills( in getVGPRSpillLaneOrTempRegister()
122 MFI->addToPrologEpilogSGPRSpills( in getVGPRSpillLaneOrTempRegister()
181 const SIMachineFunctionInfo *MFI = MF->getInfo<SIMachineFunctionInfo>(); in buildGitPtr() local
187 if (MFI->getGITPtrHigh() != 0xffffffff) { in buildGitPtr()
189 .addImm(MFI->getGITPtrHigh()) in buildGitPtr()
195 Register GitPtrLo = MFI->getGITPtrLoReg(*MF); in buildGitPtr()
229 MachineFrameInfo &MFI; member in llvm::PrologEpilogSGPRSpillBuilder
244 assert(!MFI.isDeadObjectIndex(FI)); in saveToMemory()
267 assert(!MFI.isDeadObjectIndex(FI)); in saveToVGPRLane()
269 assert(MFI.getStackID(FI) == TargetStackID::SGPRSpill); in saveToVGPRLane()
315 assert(MFI.getStackID(FI) == TargetStackID::SGPRSpill); in restoreFromVGPRLane()
345 ST(MF.getSubtarget<GCNSubtarget>()), MFI(MF.getFrameInfo()), in PrologEpilogSGPRSpillBuilder()
388 const SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in emitEntryFunctionFlatScratchInit() local
413 unsigned NumPreloaded = (MFI->getNumPreloadedSGPRs() + 1) / 2; in emitEntryFunctionFlatScratchInit()
416 Register GITPtrLoReg = MFI->getGITPtrLoReg(MF); in emitEntryFunctionFlatScratchInit()
458 MFI->getPreloadedReg(AMDGPUFunctionArgInfo::FLAT_SCRATCH_INIT); in emitEntryFunctionFlatScratchInit()
526 static bool allStackObjectsAreDead(const MachineFrameInfo &MFI) { in allStackObjectsAreDead() argument
527 for (int I = MFI.getObjectIndexBegin(), E = MFI.getObjectIndexEnd(); in allStackObjectsAreDead()
529 if (!MFI.isDeadObjectIndex(I)) in allStackObjectsAreDead()
544 SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in getEntryFunctionReservedScratchRsrcReg() local
546 assert(MFI->isEntryFunction()); in getEntryFunctionReservedScratchRsrcReg()
548 Register ScratchRsrcReg = MFI->getScratchRSrcReg(); in getEntryFunctionReservedScratchRsrcReg()
567 unsigned NumPreloaded = (MFI->getNumPreloadedSGPRs() + 3) / 4; in getEntryFunctionReservedScratchRsrcReg()
573 Register GITPtrLoReg = MFI->getGITPtrLoReg(MF); in getEntryFunctionReservedScratchRsrcReg()
581 MFI->setScratchRSrcReg(Reg); in getEntryFunctionReservedScratchRsrcReg()
609 SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in emitEntryFunctionPrologue() local
617 assert(MFI->isEntryFunction()); in emitEntryFunctionPrologue()
619 Register PreloadedScratchWaveOffsetReg = MFI->getPreloadedReg( in emitEntryFunctionPrologue()
646 MFI->getPreloadedReg(AMDGPUFunctionArgInfo::PRIVATE_SEGMENT_BUFFER); in emitEntryFunctionPrologue()
669 unsigned NumPreloaded = MFI->getNumPreloadedSGPRs(); in emitEntryFunctionPrologue()
672 Register GITPtrLoReg = MFI->getGITPtrLoReg(MF); in emitEntryFunctionPrologue()
694 Register FPReg = MFI->getFrameOffsetReg(); in emitEntryFunctionPrologue()
700 Register SPReg = MFI->getStackPtrOffsetReg(); in emitEntryFunctionPrologue()
707 MFI->getUserSGPRInfo().hasFlatScratchInit() && in emitEntryFunctionPrologue()
737 const SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in emitEntryFunctionScratchRsrcRegSetup() local
790 if (MFI->getUserSGPRInfo().hasImplicitBufferPtr()) { in emitEntryFunctionScratchRsrcRegSetup()
797 .addReg(MFI->getImplicitBufferPtrUserSGPR()) in emitEntryFunctionScratchRsrcRegSetup()
809 .addReg(MFI->getImplicitBufferPtrUserSGPR()) in emitEntryFunctionScratchRsrcRegSetup()
815 MF.getRegInfo().addLiveIn(MFI->getImplicitBufferPtrUserSGPR()); in emitEntryFunctionScratchRsrcRegSetup()
816 MBB.addLiveIn(MFI->getImplicitBufferPtrUserSGPR()); in emitEntryFunctionScratchRsrcRegSetup()
1083 MachineFrameInfo &MFI = MF.getFrameInfo(); in emitPrologue() local
1108 .addImm(MFI.getStackSize() * getScratchScaleFactor(ST)); in emitPrologue()
1114 uint32_t NumBytes = MFI.getStackSize(); in emitPrologue()
1157 const unsigned Alignment = MFI.getMaxAlign().value(); in emitPrologue()
1250 const MachineFrameInfo &MFI = MF.getFrameInfo(); in emitEpilogue() local
1251 uint32_t NumBytes = MFI.getStackSize(); in emitEpilogue()
1253 ? NumBytes + MFI.getMaxAlign().value() in emitEpilogue()
1309 const MachineFrameInfo &MFI = MF.getFrameInfo(); in allSGPRSpillsAreDead() local
1311 for (int I = MFI.getObjectIndexBegin(), E = MFI.getObjectIndexEnd(); in allSGPRSpillsAreDead()
1313 if (!MFI.isDeadObjectIndex(I) && in allSGPRSpillsAreDead()
1314 MFI.getStackID(I) == TargetStackID::SGPRSpill && in allSGPRSpillsAreDead()
1336 MachineFrameInfo &MFI = MF.getFrameInfo(); in processFunctionBeforeFrameFinalized() local
1362 BitVector SpillFIs(MFI.getObjectIndexEnd(), false); in processFunctionBeforeFrameFinalized()
1363 BitVector NonVGPRSpillFIs(MFI.getObjectIndexEnd(), false); in processFunctionBeforeFrameFinalized()
1392 if (!MFI.isFixedObjectIndex(FrameIndex)) in processFunctionBeforeFrameFinalized()
1418 !MFI.isFixedObjectIndex(MI.getOperand(0).getIndex()) && in processFunctionBeforeFrameFinalized()
1431 FuncInfo->removeDeadFrameIndices(MFI, /*ResetSGPRSpillStackIDs*/ true); in processFunctionBeforeFrameFinalized()
1438 if (!allStackObjectsAreDead(MFI)) { in processFunctionBeforeFrameFinalized()
1442 RS->addScavengingFrameIndex(FuncInfo->getScavengeFI(MFI, *TRI)); in processFunctionBeforeFrameFinalized()
1448 RS->addScavengingFrameIndex(MFI.CreateStackObject(4, Align(4), false)); in processFunctionBeforeFrameFinalized()
1500 SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in determinePrologEpilogSGPRSaves() local
1513 Register ReservedRegForExecCopy = MFI->getSGPRForEXECCopy(); in determinePrologEpilogSGPRSaves()
1522 MFI->setSGPRForEXECCopy(UnusedScratchReg); in determinePrologEpilogSGPRSaves()
1527 assert(!MFI->hasPrologEpilogSGPRSpillEntry(ReservedRegForExecCopy) && in determinePrologEpilogSGPRSaves()
1535 MFI->setSGPRForEXECCopy(AMDGPU::NoRegister); in determinePrologEpilogSGPRSaves()
1551 Register FramePtrReg = MFI->getFrameOffsetReg(); in determinePrologEpilogSGPRSaves()
1552 assert(!MFI->hasPrologEpilogSGPRSpillEntry(FramePtrReg) && in determinePrologEpilogSGPRSaves()
1559 assert(!MFI->hasPrologEpilogSGPRSpillEntry(BasePtrReg) && in determinePrologEpilogSGPRSaves()
1569 SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in determineCalleeSaves() local
1574 if (MFI->isChainFunction() && !MF.getFrameInfo().hasTailCall()) in determineCalleeSaves()
1577 MFI->shiftSpillPhysVGPRsToLowestRange(MF); in determineCalleeSaves()
1580 if (MFI->isEntryFunction()) in determineCalleeSaves()
1600 MFI->allocateWWMSpill(MF, MI.getOperand(0).getReg()); in determineCalleeSaves()
1602 MFI->allocateWWMSpill(MF, MI.getOperand(1).getReg()); in determineCalleeSaves()
1607 (MFI->isChainFunction() && in determineCalleeSaves()
1640 for (auto &Reg : MFI->getWWMSpills()) in determineCalleeSaves()
1645 for (auto &Reg : MFI->getWWMSpills()) in determineCalleeSaves()
1656 const SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in determineCalleeSavesSGPR() local
1657 if (MFI->isEntryFunction()) in determineCalleeSavesSGPR()
1664 SavedRegs.reset(MFI->getStackPtrOffsetReg()); in determineCalleeSavesSGPR()
1676 FrameInfo.hasCalls() && (AllSavedRegs.any() || MFI->hasSpilledSGPRs()); in determineCalleeSavesSGPR()
1680 SavedRegs.reset(MFI->getFrameOffsetReg()); in determineCalleeSavesSGPR()
1690 if (!MFI->isEntryFunction() && in determineCalleeSavesSGPR()
1741 const MachineFrameInfo &MFI = MF.getFrameInfo(); in allocateScavengingFrameIndexesNearIncomingSP() local
1743 uint64_t EstStackSize = MFI.estimateStackSize(MF); in allocateScavengingFrameIndexesNearIncomingSP()
1783 const SIMachineFunctionInfo *MFI = MF.getInfo<SIMachineFunctionInfo>(); in eliminateCallFramePseudoInstr() local
1784 Register SPReg = MFI->getStackPtrOffsetReg(); in eliminateCallFramePseudoInstr()
1807 static bool frameTriviallyRequiresSP(const MachineFrameInfo &MFI) { in frameTriviallyRequiresSP() argument
1808 return MFI.hasVarSizedObjects() || MFI.hasStackMap() || MFI.hasPatchPoint(); in frameTriviallyRequiresSP()
1815 const MachineFrameInfo &MFI = MF.getFrameInfo(); in hasFP() local
1819 if (MFI.hasCalls() && in hasFP()
1827 return MFI.getStackSize() != 0; in hasFP()
1830 return frameTriviallyRequiresSP(MFI) || MFI.isFrameAddressTaken() || in hasFP()
1850 const MachineFrameInfo &MFI = MF.getFrameInfo(); in requiresStackPointerReference() local
1855 if (MFI.hasCalls()) in requiresStackPointerReference()
1860 return frameTriviallyRequiresSP(MFI); in requiresStackPointerReference()