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 (Op.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