Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
Show All 28 Lines | explicit LoongArchFrameLowering(const LoongArchSubtarget &STI) | ||||
STI(STI) {} | STI(STI) {} | ||||
void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | ||||
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | ||||
void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, | void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs, | ||||
RegScavenger *RS) const override; | RegScavenger *RS) const override; | ||||
bool hasReservedCallFrame(const MachineFunction &MF) const override; | |||||
MachineBasicBlock::iterator | MachineBasicBlock::iterator | ||||
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, | eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, | ||||
MachineBasicBlock::iterator MI) const override { | MachineBasicBlock::iterator MI) const override; | ||||
return MBB.erase(MI); | |||||
} | |||||
StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, | StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, | ||||
Register &FrameReg) const override; | Register &FrameReg) const override; | ||||
bool hasFP(const MachineFunction &MF) const override; | bool hasFP(const MachineFunction &MF) const override; | ||||
bool hasBP(const MachineFunction &MF) const; | bool hasBP(const MachineFunction &MF) const; | ||||
private: | private: | ||||
void determineFrameLayout(MachineFunction &MF) const; | void determineFrameLayout(MachineFunction &MF) const; | ||||
void adjustReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, | void adjustReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, | ||||
const DebugLoc &DL, Register DestReg, Register SrcReg, | const DebugLoc &DL, Register DestReg, Register SrcReg, | ||||
int64_t Val, MachineInstr::MIFlag Flag) const; | int64_t Val, MachineInstr::MIFlag Flag) const; | ||||
}; | }; | ||||
} // namespace llvm | } // namespace llvm | ||||
#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHFRAMELOWERING_H | #endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHFRAMELOWERING_H |