llvm-project/llvm/lib/Target/Foot/FootSubtarget.h
2025-10-16 12:26:11 -04:00

59 lines
1.4 KiB
C++

#ifndef LLVM_LIB_TARGET_FOOT_FOOTSUBTARGET_H
#define LLVM_LIB_TARGET_FOOT_FOOTSUBTARGET_H
#include "FootFrameLowering.h"
#include "FootISelLowering.h"
#include "FootInstrInfo.h"
#include "FootRegisterInfo.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#define GET_SUBTARGETINFO_HEADER
#include "FootGenSubtargetInfo.inc"
namespace llvm {
class TargetMachine;
class Triple;
class FootSubtarget : public FootGenSubtargetInfo {
virtual void anchor();
FootFrameLowering FrameLowering;
FootInstrInfo InstrInfo;
FootRegisterInfo RegisterInfo;
FootTargetLowering TLInfo;
SelectionDAGTargetInfo SDTgtInfo;
public:
FootSubtarget(const Triple &TT, StringRef CPU, StringRef FS,
const TargetMachine &TM);
const FootInstrInfo *getInstrInfo() const override {
return &InstrInfo;
}
const FootFrameLowering *getFrameLowering() const override {
return &FrameLowering;
}
const FootRegisterInfo *getRegisterInfo() const override {
return &RegisterInfo;
}
const FootTargetLowering *getTargetLowering() const override {
return &TLInfo;
}
const SelectionDAGTargetInfo *getSelectionDAGInfo() const override {
return &SDTgtInfo;
}
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS);
};
} // namespace llvm
#endif // LLVM_LIB_TARGET_FOOT_FOOTSUBTARGET_H