llvm-project/llvm/lib/Target/Foot/FootFrameLowering.h
2026-03-31 13:37:16 -04:00

32 lines
1009 B
C++

#ifndef LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H
#define LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H
#include "llvm/CodeGen/TargetFrameLowering.h"
namespace llvm {
class FootSubtarget;
class FootFrameLowering : public TargetFrameLowering {
protected:
bool hasFPImpl(const MachineFunction &MF) const override;
public:
FootFrameLowering(const FootSubtarget &Sti)
: TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(8), 0) {}
void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override;
MachineBasicBlock::iterator
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
MachineBasicBlock::iterator MI) const override;
void determineCalleeSaves(MachineFunction &MF, BitVector &SavedRegs,
RegScavenger *RS) const override;
};
} // namespace llvm
#endif // LLVM_LIB_TARGET_FOOT_FOOTFRAMELOWERING_H