LLVM: lib/Target/Xtensa/XtensaSubtarget.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H
14#define LLVM_LIB_TARGET_XTENSA_XTENSASUBTARGET_H
15
23
24#define GET_SUBTARGETINFO_HEADER
25#include "XtensaGenSubtargetInfo.inc"
26
27namespace llvm {
28class StringRef;
29
31private:
32
33#define GET_SUBTARGETINFO_MACRO(ATTRIBUTE, DEFAULT, GETTER) \
34 bool ATTRIBUTE = DEFAULT;
35#include "XtensaGenSubtargetInfo.inc"
36
37 const Triple &TargetTriple;
38 XtensaInstrInfo InstrInfo;
39 XtensaTargetLowering TLInfo;
40 std::unique_ptr TSInfo;
41 XtensaFrameLowering FrameLowering;
42
43 XtensaSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);
44
45public:
46 XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS,
47 const TargetMachine &TM);
48
50
52
54 return &FrameLowering;
55 }
58 return &InstrInfo.getRegisterInfo();
59 }
60
64
66
67 bool hasDensity() const { return HasDensity; }
68 bool hasMAC16() const { return HasMAC16; }
70 bool hasBoolean() const { return HasBoolean; }
71 bool hasLoop() const { return HasLoop; }
72 bool hasSEXT() const { return HasSEXT; }
73 bool hasCLAMPS() const { return HasCLAMPS; }
74 bool hasNSA() const { return HasNSA; }
75 bool hasMINMAX() const { return HasMINMAX; }
76 bool hasMul16() const { return HasMul16; }
77 bool hasMul32() const { return HasMul32; }
79 bool hasDiv32() const { return HasDiv32; }
80 bool hasS32C1I() const { return HasS32C1I; }
85 bool hasMiscSR() const { return HasMiscSR; }
98
99
101};
102}
103
104#endif
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
StringRef - Represent a constant reference to a string, i.e.
Information about stack frame layout on the target.
Triple - Helper class for working with autoconf configuration names.
bool hasException() const
Definition XtensaSubtarget.h:95
const Triple & getTargetTriple() const
Definition XtensaSubtarget.h:51
bool hasMINMAX() const
Definition XtensaSubtarget.h:75
XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS, const TargetMachine &TM)
~XtensaSubtarget() override
bool hasMul16() const
Definition XtensaSubtarget.h:76
const XtensaInstrInfo * getInstrInfo() const override
Definition XtensaSubtarget.h:56
bool hasHighPriInterruptsLevel6() const
Definition XtensaSubtarget.h:92
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
bool hasMAC16() const
Definition XtensaSubtarget.h:68
bool isWindowedABI() const
Definition XtensaSubtarget.h:97
bool hasS32C1I() const
Definition XtensaSubtarget.h:80
bool hasMiscSR() const
Definition XtensaSubtarget.h:85
bool hasInterrupt() const
Definition XtensaSubtarget.h:94
bool hasMul32() const
Definition XtensaSubtarget.h:77
bool hasCLAMPS() const
Definition XtensaSubtarget.h:73
bool hasTHREADPTR() const
Definition XtensaSubtarget.h:96
bool hasHighPriInterruptsLevel7() const
Definition XtensaSubtarget.h:93
bool hasDataCache() const
Definition XtensaSubtarget.h:87
bool hasHighPriInterrupts() const
Definition XtensaSubtarget.h:88
bool hasDiv32() const
Definition XtensaSubtarget.h:79
bool hasForcedAtomics() const
Definition XtensaSubtarget.h:81
bool hasHighPriInterruptsLevel3() const
Definition XtensaSubtarget.h:89
bool hasHighPriInterruptsLevel5() const
Definition XtensaSubtarget.h:91
bool hasHighPriInterruptsLevel4() const
Definition XtensaSubtarget.h:90
bool hasWindowed() const
Definition XtensaSubtarget.h:69
const XtensaRegisterInfo * getRegisterInfo() const override
Definition XtensaSubtarget.h:57
bool hasSEXT() const
Definition XtensaSubtarget.h:72
bool hasSingleFloat() const
Definition XtensaSubtarget.h:82
bool hasNSA() const
Definition XtensaSubtarget.h:74
bool hasLoop() const
Definition XtensaSubtarget.h:71
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
bool hasBoolean() const
Definition XtensaSubtarget.h:70
bool hasExtendedL32R() const
Definition XtensaSubtarget.h:86
bool hasMul32High() const
Definition XtensaSubtarget.h:78
bool hasRelocatableVector() const
Definition XtensaSubtarget.h:84
const XtensaTargetLowering * getTargetLowering() const override
Definition XtensaSubtarget.h:61
bool hasRegionProtection() const
Definition XtensaSubtarget.h:83
const TargetFrameLowering * getFrameLowering() const override
Definition XtensaSubtarget.h:53
bool hasDensity() const
Definition XtensaSubtarget.h:67
This is an optimization pass for GlobalISel generic memory operations.