LLVM: lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_LIB_TARGET_SPIRV_SPIRVSYMBOLICOPERANDS_H
16#define LLVM_LIB_TARGET_SPIRV_SPIRVSYMBOLICOPERANDS_H
17
21#include
22
23namespace llvm {
26#define GET_OperandCategory_DECL
27#include "SPIRVGenTables.inc"
28}
29
31#define GET_Extension_DECL
32#include "SPIRVGenTables.inc"
33}
34
36#define GET_Capability_DECL
37#include "SPIRVGenTables.inc"
38}
39
41#define GET_Environment_DECL
42#include "SPIRVGenTables.inc"
43}
44
46#define GET_SourceLanguage_DECL
47#include "SPIRVGenTables.inc"
48}
49
51#define GET_AddressingModel_DECL
52#include "SPIRVGenTables.inc"
53}
54
56#define GET_ExecutionModel_DECL
57#include "SPIRVGenTables.inc"
58}
59
61#define GET_MemoryModel_DECL
62#include "SPIRVGenTables.inc"
63}
64
66#define GET_MatrixMultiplyAccumulateOperands_DECL
67#include "SPIRVGenTables.inc"
68}
69
71#define GET_ExecutionMode_DECL
72#include "SPIRVGenTables.inc"
73}
74
76#define GET_StorageClass_DECL
77#include "SPIRVGenTables.inc"
78}
79
81#define GET_Dim_DECL
82#include "SPIRVGenTables.inc"
83}
84
86#define GET_SamplerAddressingMode_DECL
87#include "SPIRVGenTables.inc"
88}
89
91#define GET_SamplerFilterMode_DECL
92#include "SPIRVGenTables.inc"
93}
94
96#define GET_ImageFormat_DECL
97#include "SPIRVGenTables.inc"
98}
99
101#define GET_ImageChannelOrder_DECL
102#include "SPIRVGenTables.inc"
103}
104
106#define GET_ImageChannelDataType_DECL
107#include "SPIRVGenTables.inc"
108}
109
111#define GET_ImageOperand_DECL
112#include "SPIRVGenTables.inc"
113}
114
116#define GET_FPFastMathMode_DECL
117#include "SPIRVGenTables.inc"
118}
119
121#define GET_FPRoundingMode_DECL
122#include "SPIRVGenTables.inc"
123}
124
126#define GET_LinkageType_DECL
127#include "SPIRVGenTables.inc"
128}
129
131#define GET_AccessQualifier_DECL
132#include "SPIRVGenTables.inc"
133}
134
136#define GET_FunctionParameterAttribute_DECL
137#include "SPIRVGenTables.inc"
138}
139
141#define GET_Decoration_DECL
142#include "SPIRVGenTables.inc"
143}
144
146#define GET_BuiltIn_DECL
147#include "SPIRVGenTables.inc"
148}
149
151#define GET_SelectionControl_DECL
152#include "SPIRVGenTables.inc"
153}
154
156#define GET_LoopControl_DECL
157#include "SPIRVGenTables.inc"
158}
159
161#define GET_FunctionControl_DECL
162#include "SPIRVGenTables.inc"
163}
164
166#define GET_MemorySemantics_DECL
167#include "SPIRVGenTables.inc"
168}
169
171#define GET_MemoryOperand_DECL
172#include "SPIRVGenTables.inc"
173}
174
176#define GET_Scope_DECL
177#include "SPIRVGenTables.inc"
178}
179
181#define GET_GroupOperation_DECL
182#include "SPIRVGenTables.inc"
183}
184
186#define GET_KernelEnqueueFlags_DECL
187#include "SPIRVGenTables.inc"
188}
189
191#define GET_KernelProfilingInfo_DECL
192#include "SPIRVGenTables.inc"
193}
194
196#define GET_InstructionSet_DECL
197#include "SPIRVGenTables.inc"
198}
199
201#define GET_OpenCLExtInst_DECL
202#include "SPIRVGenTables.inc"
203}
204
206#define GET_GLSLExtInst_DECL
207#include "SPIRVGenTables.inc"
208}
209
211#define GET_NonSemanticExtInst_DECL
212#include "SPIRVGenTables.inc"
213}
214
216#define GET_Opcode_DECL
217#include "SPIRVGenTables.inc"
218}
219
221#define GET_CooperativeMatrixLayout_DECL
222#include "SPIRVGenTables.inc"
223}
224
226#define GET_CooperativeMatrixOperands_DECL
227#include "SPIRVGenTables.inc"
228}
229
231#define GET_SpecConstantOpOperands_DECL
232#include "SPIRVGenTables.inc"
233}
234
236#define GET_FPEncoding_DECL
237#include "SPIRVGenTables.inc"
238}
239
242 InstructionSet::InstructionSet Set;
244};
245
253}
254
258
259std::string
272 SPIRV::OperandCategory::OperandCategory Category, uint32_t Value);
279
281
282std::string getExtInstSetName(SPIRV::InstructionSet::InstructionSet Set);
283SPIRV::InstructionSet::InstructionSet
285std::string getExtInstName(SPIRV::InstructionSet::InstructionSet Set,
287
288
289
290template
292 std::string s;
293
294 const unsigned NumOps = MI.getNumOperands();
295 bool IsFinished = false;
296 for (unsigned i = StartIndex; i < NumOps && !IsFinished; ++i) {
297 const auto &Op = MI.getOperand(i);
298 if (.isImm())
299 break;
300 assert((Op.getImm() >> 32) == 0 && "Imm operand should be i32 word");
301 const uint32_t Imm = Op.getImm();
302 for (unsigned ShiftAmount = 0; ShiftAmount < 32; ShiftAmount += 8) {
303 char c = (Imm >> ShiftAmount) & 0xff;
304 if (c == 0) {
305 IsFinished = true;
306 break;
307 }
308 s += c;
309 }
310 }
311 return s;
312}
313}
314#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
const size_t AbstractManglingParser< Derived, Alloc >::NumOps
This file defines the SmallVector class.
Defines the llvm::VersionTuple class, which represents a version in the form major[....
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
Represents a version number in the form major[.minor[.subminor[.build]]].
Definition SPIRVBaseInfo.h:130
Definition SPIRVBaseInfo.h:50
Definition SPIRVBaseInfo.h:145
Definition SPIRVBaseInfo.h:35
Definition SPIRVBaseInfo.h:220
Definition SPIRVBaseInfo.h:225
Definition SPIRVBaseInfo.h:140
Definition SPIRVBaseInfo.h:80
Definition SPIRVBaseInfo.h:40
Definition SPIRVBaseInfo.h:70
Definition SPIRVBaseInfo.h:55
Definition SPIRVBaseInfo.h:30
Definition SPIRVBaseInfo.h:235
Definition SPIRVBaseInfo.h:115
Definition SPIRVBaseInfo.h:120
Definition SPIRVBaseInfo.h:160
Definition SPIRVBaseInfo.h:135
Definition SPIRVBaseInfo.h:205
Definition SPIRVBaseInfo.h:180
Definition SPIRVBaseInfo.h:105
Definition SPIRVBaseInfo.h:100
Definition SPIRVBaseInfo.h:95
Definition SPIRVBaseInfo.h:110
Definition SPIRVBaseInfo.h:195
Definition SPIRVBaseInfo.h:185
Definition SPIRVBaseInfo.h:190
Definition SPIRVBaseInfo.h:125
Definition SPIRVBaseInfo.h:155
Definition SPIRVBaseInfo.h:65
Definition SPIRVBaseInfo.h:60
Definition SPIRVBaseInfo.h:170
Definition SPIRVBaseInfo.h:165
Definition SPIRVBaseInfo.h:210
Definition SPIRVBaseInfo.h:215
Definition SPIRVBaseInfo.h:200
Definition SPIRVBaseInfo.h:25
Definition SPIRVBaseInfo.h:85
Definition SPIRVBaseInfo.h:90
Definition SPIRVBaseInfo.h:175
Definition SPIRVBaseInfo.h:150
Definition SPIRVBaseInfo.h:45
Definition SPIRVBaseInfo.h:230
Definition SPIRVBaseInfo.h:75
InstFlags
Definition SPIRVBaseInfo.h:246
@ INST_PRINTER_WIDTH64
Definition SPIRVBaseInfo.h:250
@ INST_PRINTER_WIDTH16
Definition SPIRVBaseInfo.h:248
This is an optimization pass for GlobalISel generic memory operations.
SmallVector< SPIRV::Environment::Environment, 8 > EnvironmentList
Definition SPIRVBaseInfo.h:257
ExtensionList getSymbolicOperandExtensions(SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
std::string getExtInstName(SPIRV::InstructionSet::InstructionSet Set, uint32_t InstructionNumber)
CapabilityList getSymbolicOperandCapabilities(SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
SmallVector< SPIRV::Extension::Extension, 8 > ExtensionList
Definition SPIRVBaseInfo.h:256
std::string getExtInstSetName(SPIRV::InstructionSet::InstructionSet Set)
bool getSpirvBuiltInIdByName(llvm::StringRef Name, SPIRV::BuiltIn::BuiltIn &BI)
VersionTuple getSymbolicOperandMaxVersion(SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
EnvironmentList getSymbolicOperandAllowedEnvironments(SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
std::string getSPIRVStringOperand(const InstType &MI, unsigned StartIndex)
Definition SPIRVBaseInfo.h:291
CapabilityList getCapabilitiesEnabledByExtension(SPIRV::Extension::Extension Extension)
SPIRV::InstructionSet::InstructionSet getExtInstSetFromString(std::string SetName)
std::string getSymbolicOperandMnemonic(SPIRV::OperandCategory::OperandCategory Category, int32_t Value)
DWARFExpression::Operation Op
VersionTuple getSymbolicOperandMinVersion(SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
SmallVector< SPIRV::Capability::Capability, 8 > CapabilityList
Definition SPIRVBaseInfo.h:255
std::string getLinkStringForBuiltIn(SPIRV::BuiltIn::BuiltIn BuiltInValue)
Definition SPIRVBaseInfo.h:240
uint32_t Number
Definition SPIRVBaseInfo.h:243
InstructionSet::InstructionSet Set
Definition SPIRVBaseInfo.h:242
StringRef Name
Definition SPIRVBaseInfo.h:241