/llvm-project/llvm/lib/Target/X86/ |
H A D | X86FrameLowering.h | 16 #include "llvm/CodeGen/MachineFunction.h" 57 void emitStackProbe(MachineFunction &MF, MachineBasicBlock &MBB, 60 std::optional<MachineFunction::DebugInstrOperandPair> 66 void inlineStackProbe(MachineFunction &MF, 78 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 79 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 81 void adjustForSegmentedStacks(MachineFunction &MF, 84 void adjustForHiPEPrologue(MachineFunction &MF, 87 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 91 assignCalleeSavedSpillSlots(MachineFunction [all...] |
H A D | X86RegisterInfo.h | 55 unsigned getNumSupportedRegs(const MachineFunction &MF) const override; 71 const MachineFunction &MF) const override; 81 getPointerRegClass(const MachineFunction &MF, 93 getGPRsForTailCall(const MachineFunction &MF) const; 96 MachineFunction &MF) const override; 101 getCalleeSavedRegs(const MachineFunction* MF) const override; 104 const MCPhysReg *getIPRACSRegs(const MachineFunction *MF) const override; 106 getCalleeSavedRegsViaCopy(const MachineFunction *MF) const; 107 const uint32_t *getCallPreservedMask(const MachineFunction &MF, 119 BitVector getReservedRegs(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/SystemZ/ |
H A D | SystemZFrameLowering.h | 32 const MachineFunction &MF) const override { in allocateScavengingFrameIndexesNearIncomingSP() 43 bool hasReservedCallFrame(const MachineFunction &MF) const override; 46 virtual unsigned getBackchainOffset(MachineFunction &MF) const = 0; 49 virtual int getReturnAddressOffset(MachineFunction &MF) const = 0; 52 virtual int getOrCreateFramePointerSaveIndex(MachineFunction &MF) const = 0; 69 assignCalleeSavedSpillSlots(MachineFunction &MF, 72 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 83 void processFunctionBeforeFrameFinalized(MachineFunction &MF, 85 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 86 void emitEpilogue(MachineFunction [all...] |
H A D | SystemZRegisterInfo.h | 63 getCalleeSavedRegs(const MachineFunction *MF) const = 0; 66 virtual const uint32_t *getCallPreservedMask(const MachineFunction &MF, 94 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const final; 96 const uint32_t *getCallPreservedMask(const MachineFunction &MF, 117 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const final; 119 const uint32_t *getCallPreservedMask(const MachineFunction &MF, 138 getPointerRegClass(const MachineFunction &MF, 151 const MachineFunction &MF, const VirtRegMap *VRM, 155 bool requiresRegisterScavenging(const MachineFunction &MF) const override { in requiresRegisterScavenging() 158 bool requiresFrameIndexScavenging(const MachineFunction in requiresRegisterScavenging() [all...] |
/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64RegisterInfo.h | 21 class MachineFunction; variable 37 bool isReservedReg(const MachineFunction &MF, MCRegister Reg) const; 38 bool isStrictlyReservedReg(const MachineFunction &MF, MCRegister Reg) const; 39 bool isAnyArgRegReserved(const MachineFunction &MF) const; 40 void emitReservedArgRegCallError(const MachineFunction &MF) const; 42 void UpdateCustomCalleeSavedRegs(MachineFunction &MF) const; 43 void UpdateCustomCallPreservedMask(MachineFunction &MF, 47 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; 48 const MCPhysReg *getDarwinCalleeSavedRegs(const MachineFunction *MF) const; 50 getCalleeSavedRegsViaCopy(const MachineFunction *M [all...] |
H A D | AArch64FrameLowering.h | 31 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 36 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 37 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 39 bool enableCFIFixup(MachineFunction &MF) const override; 43 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 45 StackOffset getFrameIndexReferenceFromSP(const MachineFunction &MF, 47 StackOffset resolveFrameIndexReference(const MachineFunction &MF, int FI, 50 StackOffset resolveFrameOffsetReference(const MachineFunction &MF, 66 bool canUseRedZone(const MachineFunction &MF) const; 68 bool hasReservedCallFrame(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/WebAssembly/ |
H A D | WebAssemblyFrameLowering.h | 37 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 41 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 42 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 44 bool hasReservedCallFrame(const MachineFunction &MF) const override; 46 DwarfFrameBase getDwarfFrameBase(const MachineFunction &MF) const override; 48 bool needsPrologForEH(const MachineFunction &MF) const; 51 void writeSPToGlobal(unsigned SrcReg, MachineFunction &MF, 58 static std::optional<unsigned> getLocalForStackObject(MachineFunction &MF, 61 static unsigned getSPReg(const MachineFunction &MF); 62 static unsigned getFPReg(const MachineFunction [all...] |
/llvm-project/llvm/include/llvm/CodeGen/ |
H A D | TargetFrameLowering.h | 25 class MachineFunction; 152 const MachineFunction &MF) const; 160 virtual bool assignCalleeSavedSpillSlots(MachineFunction &MF, in assignCalleeSavedSpillSlots() 169 assignCalleeSavedSpillSlots(MachineFunction &MF, in assignCalleeSavedSpillSlots() 198 virtual bool enableShrinkWrapping(const MachineFunction &MF) const { in enableShrinkWrapping() 205 virtual bool enableStackSlotScavenging(const MachineFunction &MF) const { in enableStackSlotScavenging() 211 virtual bool enableCalleeSaveSkip(const MachineFunction &MF) const; 215 virtual void emitPrologue(MachineFunction &MF, 217 virtual void emitEpilogue(MachineFunction &MF, 232 virtual bool enableCFIFixup(MachineFunction 24 class MachineFunction; global() variable [all...] |
H A D | TargetRegisterInfo.h | 38 class MachineFunction; variable 70 ArrayRef<MCPhysReg> (*OrderFunc)(const MachineFunction&); 196 /// The MachineFunction argument can be used to tune the allocatable 201 ArrayRef<MCPhysReg> getRawAllocationOrder(const MachineFunction &MF) const { 278 virtual unsigned getNumSupportedRegs(const MachineFunction &) const { 380 BitVector getAllocatableSet(const MachineFunction &MF, 385 ArrayRef<uint8_t> getRegisterCosts(const MachineFunction &MF) const { 501 getCalleeSavedRegs(const MachineFunction *MF) const = 0; 509 virtual const MCPhysReg *getIPRACSRegs(const MachineFunction *MF) const { 531 virtual const uint32_t *getCallPreservedMask(const MachineFunction 281 getNumSupportedRegs(const MachineFunction &) getNumSupportedRegs() argument 857 getLargestLegalSuperClass(const TargetRegisterClass * RC,const MachineFunction &) getLargestLegalSuperClass() argument [all...] |
H A D | MachinePassManager.h | 26 #include "llvm/CodeGen/MachineFunction.h" 34 class MachineFunction; variable 36 extern template class AnalysisManager<MachineFunction>; 37 using MachineFunctionAnalysisManager = AnalysisManager<MachineFunction>; 44 MFPropsModifier(const PassT &P_, MachineFunction &MF_) : P(P_), MF(MF_) { in MFPropsModifier() 75 MachineFunction &MF; 104 MFPropsModifier(PassT &P, MachineFunction &MF) -> MFPropsModifier<PassT>; 126 MachineFunction>; 129 OuterAnalysisManagerProxy<ModuleAnalysisManager, MachineFunction>; 167 bool invalidate(MachineFunction 183 run(MachineFunction &,MachineFunctionAnalysisManager &) run() argument [all...] |
/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMFrameLowering.h | 19 class MachineFunction; variable 30 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 31 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 44 bool keepFramePointer(const MachineFunction &MF) const; 46 bool enableCalleeSaveSkip(const MachineFunction &MF) const override; 48 bool isFPReserved(const MachineFunction &MF) const; 49 bool requiresAAPCSFrameRecord(const MachineFunction &MF) const; 50 bool hasReservedCallFrame(const MachineFunction &MF) const override; 51 bool canSimplifyCallFramePseudos(const MachineFunction &MF) const override; 52 StackOffset getFrameIndexReference(const MachineFunction [all...] |
H A D | ARMBaseRegisterInfo.h | 64 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; in isARMArea2Register() 66 getCalleeSavedRegsViaCopy(const MachineFunction *MF) const; in isARMArea2Register() 67 const uint32_t *getCallPreservedMask(const MachineFunction &MF, in isARMArea2Register() 70 const uint32_t *getTLSCallPreservedMask(const MachineFunction &MF) const; in isARMArea2Register() 71 const uint32_t *getSjLjDispatchPreservedMask(const MachineFunction &MF) const; in isARMArea2Register() 81 const uint32_t *getThisReturnPreservedMask(const MachineFunction &MF, in isSplitFPArea1Register() 85 getIntraCallClobberedRegs(const MachineFunction *MF) const override; in isSplitFPArea1Register() 87 BitVector getReservedRegs(const MachineFunction &MF) const override; in isSplitFPArea1Register() 88 bool isAsmClobberable(const MachineFunction &MF, 90 bool isInlineAsmReadOnlyReg(const MachineFunction in isSplitFPArea2Register() [all...] |
/llvm-project/llvm/lib/Target/AMDGPU/ |
H A D | SIFrameLowering.h | 24 void emitEntryFunctionPrologue(MachineFunction &MF, 26 void emitPrologue(MachineFunction &MF, 28 void emitEpilogue(MachineFunction &MF, 30 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 33 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 35 void determineCalleeSavesSGPR(MachineFunction &MF, BitVector &SavedRegs, 37 void determinePrologEpilogSGPRSaves(MachineFunction &MF, BitVector &SavedRegs, 39 void emitCSRSpillStores(MachineFunction &MF, MachineBasicBlock &MBB, 43 void emitCSRSpillRestores(MachineFunction &MF, MachineBasicBlock &MBB, 48 assignCalleeSavedSpillSlots(MachineFunction [all...] |
H A D | SIRegisterInfo.h | 77 MCRegister getAlignedHighSGPRForRC(const MachineFunction &MF, 83 MCRegister reservedPrivateSegmentBufferReg(const MachineFunction &MF) const; 88 getMaxNumVectorRegs(const MachineFunction &MF) const; 90 BitVector getReservedRegs(const MachineFunction &MF) const override; 91 bool isAsmClobberable(const MachineFunction &MF, 94 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; 95 const MCPhysReg *getCalleeSavedRegsViaCopy(const MachineFunction *MF) const; 96 const uint32_t *getCallPreservedMask(const MachineFunction &MF, 113 const MachineFunction &MF) const override; 115 Register getFrameRegister(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/Hexagon/ |
H A D | HexagonFrameLowering.h | 26 class MachineFunction; variable 39 orderFrameObjects(const MachineFunction &MF, 45 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const 47 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const in emitEpilogue() 50 bool enableCalleeSaveSkip(const MachineFunction &MF) const override; 67 bool hasReservedCallFrame(const MachineFunction &MF) const override { in hasReservedCallFrame() 72 bool canSimplifyCallFramePseudos(const MachineFunction &MF) const override { in canSimplifyCallFramePseudos() 79 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 81 void processFunctionBeforeFrameFinalized(MachineFunction &MF, 83 void determineCalleeSaves(MachineFunction [all...] |
/llvm-project/llvm/lib/Target/RISCV/ |
H A D | RISCVFrameLowering.h | 26 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 27 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 29 uint64_t getStackSizeWithRVVPadding(const MachineFunction &MF) const; 31 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 34 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 37 void processFunctionBeforeFrameFinalized(MachineFunction &MF, 40 bool hasBP(const MachineFunction &MF) const; 42 bool hasReservedCallFrame(const MachineFunction &MF) const override; 44 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 47 bool assignCalleeSavedSpillSlots(MachineFunction [all...] |
/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCFrameLowering.h | 83 bool stackUpdateCanBeMoved(MachineFunction &MF) const; 91 uint64_t determineFrameLayoutAndUpdate(MachineFunction &MF, 96 * The MachineFunction object can be const in this case as it is not 99 uint64_t determineFrameLayout(const MachineFunction &MF, 105 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 106 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 107 void inlineStackProbe(MachineFunction &MF, 110 bool needsFP(const MachineFunction &MF) const; 111 void replaceFPWithRealFP(MachineFunction &MF) const; 113 void determineCalleeSaves(MachineFunction [all...] |
H A D | PPCRegisterInfo.h | 76 getPointerRegClass(const MachineFunction &MF, unsigned Kind=0) const override; 79 MachineFunction &MF) const override; 83 const MachineFunction &MF) const override; 86 const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF) const override; 87 const uint32_t *getCallPreservedMask(const MachineFunction &MF, 93 BitVector getReservedRegs(const MachineFunction &MF) const override; 94 bool isAsmClobberable(const MachineFunction &MF, 97 const MachineFunction &MF) const override; 106 const MachineFunction &MF, const VirtRegMap *VRM, 110 bool requiresRegisterScavenging(const MachineFunction &MF) const override { in requiresRegisterScavenging() [all …]
|
/llvm-project/llvm/unittests/MI/ |
H A D | LiveIntervalTest.cpp | 5 #include "llvm/CodeGen/MachineFunction.h" 89 typedef std::function<void(MachineFunction&,AnalysisType&)> TestFx; 100 bool runOnMachineFunction(MachineFunction &MF) override { in runOnMachineFunction() 121 static MachineInstr &getMI(MachineFunction &MF, unsigned At, in getMI() 138 static void testHandleMove(MachineFunction &MF, LiveIntervals &LIS, in testHandleMove() 153 static void testHandleMoveIntoNewBundle(MachineFunction &MF, LiveIntervals &LIS, in testHandleMoveIntoNewBundle() 174 static void testSplitAt(MachineFunction &MF, LiveIntervals &LIS, in testSplitAt() 271 [](MachineFunction &MF, LiveIntervalsWrapperPass &LISWrapper) { in TEST() 283 [](MachineFunction &MF, LiveIntervalsWrapperPass &LIS) { in TEST() 296 [](MachineFunction in TEST() [all...] |
/llvm-project/llvm/lib/Target/VE/ |
H A D | VEFrameLowering.h | 29 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 30 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 31 void emitPrologueInsns(MachineFunction &MF, MachineBasicBlock &MBB, 34 void emitEpilogueInsns(MachineFunction &MF, MachineBasicBlock &MBB, 39 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 42 bool hasBP(const MachineFunction &MF) const; 43 bool hasGOT(const MachineFunction &MF) const; 47 bool hasReservedCallFrame(const MachineFunction &MF) const override { 50 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, in hasReservedCallFrame() 53 StackOffset getFrameIndexReference(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/LoongArch/ |
H A D | LoongArchFrameLowering.h | 31 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 32 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 34 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 37 void processFunctionBeforeFrameFinalized(MachineFunction &MF, 40 bool hasReservedCallFrame(const MachineFunction &MF) const override; 42 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 49 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 52 bool hasBP(const MachineFunction &MF) const; 54 uint64_t getFirstSPAdjustAmount(const MachineFunction &MF) const; 56 bool enableShrinkWrapping(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/Sparc/ |
H A D | SparcFrameLowering.h | 29 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 30 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 33 eliminateCallFramePseudoInstr(MachineFunction &MF, 37 bool hasReservedCallFrame(const MachineFunction &MF) const override; 38 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 41 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 50 bool hasFPImpl(const MachineFunction &MF) const override; 54 void remapRegsForLeafProc(MachineFunction &MF) const; 57 bool isLeafProc(MachineFunction &MF) const; 61 void emitSPAdjustment(MachineFunction [all...] |
/llvm-project/llvm/lib/CodeGen/ |
H A D | MachineFunction.cpp | 1 //===- MachineFunction.cpp ------------------------------------------------===// 15 #include "llvm/CodeGen/MachineFunction.h" 134 void MachineFunction::Delegate::anchor() {} in anchor() 147 // MachineFunction implementation 164 MachineFunction::MachineFunction(Function &F, const TargetMachine &Target, in MachineFunction() function in MachineFunction 172 void MachineFunction::handleInsertion(MachineInstr &MI) { in handleInsertion() 177 void MachineFunction::handleRemoval(MachineInstr &MI) { in handleRemoval() 182 void MachineFunction::handleChangeDesc(MachineInstr &MI, in handleChangeDesc() 188 void MachineFunction [all...] |
/llvm-project/llvm/lib/Target/M68k/ |
H A D | M68kFrameLowering.h | 43 uint64_t calculateMaxStackAlign(const MachineFunction &MF) const; 64 unsigned getPSPSlotOffsetFromSP(const MachineFunction &MF) const; 78 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 82 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 85 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 94 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 103 assignCalleeSavedSpillSlots(MachineFunction &MF, 129 bool hasReservedCallFrame(const MachineFunction &MF) const override; 135 bool canSimplifyCallFramePseudos(const MachineFunction &MF) const override; 144 bool needsFrameIndexResolution(const MachineFunction [all...] |
/llvm-project/llvm/lib/Target/CSKY/ |
H A D | CSKYFrameLowering.h | 24 void determineFrameLayout(MachineFunction &MF) const; 36 void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 37 void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; 39 StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, 42 void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, 46 MachineFunction &MF, const TargetRegisterInfo *TRI, in assignCalleeSavedSpillSlots() 64 bool hasBP(const MachineFunction &MF) const; 66 bool hasReservedCallFrame(const MachineFunction &MF) const override; 69 eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, 73 bool hasFPImpl(const MachineFunction [all...] |