Go to the documentation of this file.
13 #ifndef LLVM_LIB_TARGET_CSKY_CSKYSUBTARGET_H
14 #define LLVM_LIB_TARGET_CSKY_CSKYSUBTARGET_H
24 #define GET_SUBTARGETINFO_HEADER
25 #include "CSKYGenSubtargetInfo.inc"
31 virtual void anchor();
39 enum CSKYProcFamilyEnum {
56 CSKYProcFamilyEnum CSKYProcFamily = Others;
60 bool HasFPUv2SingleFloat;
61 bool HasFPUv2DoubleFloat;
62 bool HasFPUv3HalfWord;
63 bool HasFPUv3HalfFloat;
64 bool HasFPUv3SingleFloat;
65 bool HasFPUv3DoubleFloat;
84 bool HasHardwareDivide;
85 bool HasHighRegisters;
93 bool EnableInterruptAttribute;
116 return &FrameLowering;
141 bool hasFPUv2()
const {
return HasFPUv2SingleFloat || HasFPUv2DoubleFloat; }
147 return HasFPUv3HalfFloat || HasFPUv3SingleFloat || HasFPUv3DoubleFloat;
172 return HasVDSPV2 && UseHardFloat && HasFPUv3HalfFloat;
186 bool hasE1()
const {
return HasE1; }
187 bool hasE2()
const {
return HasE2; }
193 bool hasMP()
const {
return HasMP; }
198 bool isCK801()
const {
return CSKYProcFamily == CK801; }
199 bool isCK802()
const {
return CSKYProcFamily == CK802; }
200 bool isCK803()
const {
return CSKYProcFamily == CK803; }
201 bool isCK803S()
const {
return CSKYProcFamily == CK803S; }
202 bool isCK804()
const {
return CSKYProcFamily == CK804; }
203 bool isCK805()
const {
return CSKYProcFamily == CK805; }
204 bool isCK807()
const {
return CSKYProcFamily == CK807; }
205 bool isCK810()
const {
return CSKYProcFamily == CK810; }
206 bool isCK810V()
const {
return CSKYProcFamily == CK810V; }
207 bool isCK860()
const {
return CSKYProcFamily == CK860; }
208 bool isCK860V()
const {
return CSKYProcFamily == CK860V; }
212 #endif // LLVM_LIB_TARGET_CSKY_CSKYSUBTARGET_H
This is an optimization pass for GlobalISel generic memory operations.
bool hasVDSPV2_HALF() const
Triple - Helper class for working with autoconf configuration names.
bool hasFLOAT7E60() const
CSKYSubtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS, const TargetMachine &TM)
bool hasVDSPV1_128() const
bool hasFPUv3HalfWord() const
bool hasDSP_Silan() const
const CSKYTargetLowering * getTargetLowering() const override
bool hasFPUv2SingleFloat() const
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
const CSKYRegisterInfo * getRegisterInfo() const override
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
const CSKYInstrInfo * getInstrInfo() const override
bool enableInterruptAttribute() const
bool dumpConstPool() const
bool hasVDSPV2_FLOAT() const
bool useHardFloat() const
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
Primary interface to the complete machine description for the target machine.
bool hasVDSP2E60F() const
CSKYSubtarget & initializeSubtargetDependencies(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS)
Initializes using the passed in CPU and feature strings so that we can use initializer lists for subt...
bool useHardFloatABI() const
bool hasAnyFloatExt() const
StringRef - Represent a constant reference to a string, i.e.
bool hasFPUv3SingleFloat() const
bool hasFPUv2DoubleFloat() const
bool hasFPUv3DoubleFloat() const
const char LLVMTargetMachineRef TM
bool enableStackSize() const
bool hasHighRegisters() const
bool hasFPUv3HalfFloat() const
bool hasExtendLrw() const
const CSKYFrameLowering * getFrameLowering() const override