LLVM: lib/Target/CSKY/CSKYSubtarget.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
16
17using namespace llvm;
18
19#define DEBUG_TYPE "csky-subtarget"
20#define GET_SUBTARGETINFO_TARGET_DESC
21#define GET_SUBTARGETINFO_CTOR
22#include "CSKYGenSubtargetInfo.inc"
23
24void CSKYSubtarget::anchor() {}
25
28
29 if (CPUName.empty())
30 CPUName = "generic";
31 if (TuneCPUName.empty())
32 TuneCPUName = CPUName;
33
34 UseHardFloat = false;
35 UseHardFloatABI = false;
36 HasFPUv2SingleFloat = false;
37 HasFPUv2DoubleFloat = false;
38 HasFPUv3HalfWord = false;
39 HasFPUv3HalfFloat = false;
40 HasFPUv3SingleFloat = false;
41 HasFPUv3DoubleFloat = false;
42 HasFdivdu = false;
43 HasFLOATE1 = false;
44 HasFLOAT1E2 = false;
45 HasFLOAT1E3 = false;
46 HasFLOAT3E4 = false;
47 HasFLOAT7E60 = false;
48 HasExtendLrw = false;
49 HasBTST16 = false;
50 HasTrust = false;
51 HasJAVA = false;
52 HasCache = false;
53 HasNVIC = false;
54 HasDSP = false;
55 HasDSP1E2 = false;
56 HasDSPE60 = false;
57 HasDSPV2 = false;
58 HasDSP_Silan = false;
59 HasDoloop = false;
60 HasHardwareDivide = false;
61 HasHighRegisters = false;
62 HasVDSPV2 = false;
63 HasVDSP2E3 = false;
64 HasVDSP2E60F = false;
65 ReadTPHard = false;
66 HasVDSPV1_128 = false;
67 UseCCRT = false;
68 DumpConstPool = false;
69 EnableInterruptAttribute = false;
70 HasPushPop = false;
71 HasSTM = false;
72 SmartMode = false;
73 EnableStackSize = false;
74
75 HasE1 = false;
76 HasE2 = false;
77 Has2E3 = false;
78 HasMP = false;
79 Has3E3r1 = false;
80 Has3r1E3r2 = false;
81 Has3r2E3r3 = false;
82 Has3E7 = false;
83 HasMP1E2 = false;
84 Has7E10 = false;
85 Has10E60 = false;
86
88 return *this;
89}
90
95 InstrInfo(*this, RegInfo), TLInfo(TM, *this) {
96 TSInfo = std::make_unique();
97}
98
100
102 return TSInfo.get();
103}
104
107
109 return UseHardFloatABI;
110 else
112}
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...
Definition CSKYSubtarget.cpp:26
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
bool useHardFloatABI() const
Definition CSKYSubtarget.cpp:105
CSKYSubtarget(const Triple &TT, StringRef CPU, StringRef TuneCPU, StringRef FS, const TargetMachine &TM)
Definition CSKYSubtarget.cpp:91
~CSKYSubtarget() override
const CSKYTargetLowering * getTargetLowering() const override
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
Definition CSKYSubtarget.cpp:101
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
StringRef - Represent a constant reference to a string, i.e.
constexpr bool empty() const
empty - Check if the string is empty.
const TargetMachine & getTargetMachine() const
Primary interface to the complete machine description for the target machine.
FloatABI::ABIType FloatABIType
FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line.
Triple - Helper class for working with autoconf configuration names.
This is an optimization pass for GlobalISel generic memory operations.