@@ -224,6 +224,100 @@ def LLVM_DIEmissionKind : I64EnumAttr<
224
224
let cppNamespace = "::mlir::LLVM";
225
225
}
226
226
227
+ //===----------------------------------------------------------------------===//
228
+ // DIFlags
229
+ //===----------------------------------------------------------------------===//
230
+
231
+ def LLVM_DIFlagZero : I32BitEnumAttrCaseNone<"Zero">;
232
+
233
+ // The first two bits are used for a visibility enum.
234
+ // * Private = 1
235
+ // * Protected = 2
236
+ // * Public = 3
237
+ def LLVM_DIFlagVisibilityBit0 : I32BitEnumAttrCaseBit<"Bit0", 0>;
238
+ def LLVM_DIFlagVisibilityBit1 : I32BitEnumAttrCaseBit<"Bit1", 1>;
239
+ def LLVM_DIFlagPrivate : I32BitEnumAttrCaseGroup<"Private",
240
+ [LLVM_DIFlagVisibilityBit0]
241
+ >;
242
+ def LLVM_DIFlagProtected : I32BitEnumAttrCaseGroup<"Protected",
243
+ [LLVM_DIFlagVisibilityBit1]
244
+ >;
245
+ def LLVM_DIFlagPublic : I32BitEnumAttrCaseGroup<"Public",
246
+ [LLVM_DIFlagVisibilityBit0, LLVM_DIFlagVisibilityBit1]
247
+ >;
248
+
249
+ // The remaining bits are used for the various flags.
250
+ def LLVM_DIFlagFwdDecl : I32BitEnumAttrCaseBit<"FwdDecl", 2>;
251
+ def LLVM_DIFlagAppleBlock : I32BitEnumAttrCaseBit<"AppleBlock", 3>;
252
+ def LLVM_DIFlagReservedBit4 : I32BitEnumAttrCaseBit<"ReservedBit4", 4>;
253
+ def LLVM_DIFlagVirtual : I32BitEnumAttrCaseBit<"Virtual", 5>;
254
+ def LLVM_DIFlagArtificial : I32BitEnumAttrCaseBit<"Artificial", 6>;
255
+ def LLVM_DIFlagExplicit : I32BitEnumAttrCaseBit<"Explicit", 7>;
256
+ def LLVM_DIFlagPrototyped : I32BitEnumAttrCaseBit<"Prototyped", 8>;
257
+ def LLVM_DIFlagObjcClassComplete : I32BitEnumAttrCaseBit<"ObjcClassComplete", 9>;
258
+ def LLVM_DIFlagObjectPointer : I32BitEnumAttrCaseBit<"ObjectPointer", 10>;
259
+ def LLVM_DIFlagVector : I32BitEnumAttrCaseBit<"Vector", 11>;
260
+ def LLVM_DIFlagStaticMember : I32BitEnumAttrCaseBit<"StaticMember", 12>;
261
+ def LLVM_DIFlagLValueReference : I32BitEnumAttrCaseBit<"LValueReference", 13>;
262
+ def LLVM_DIFlagRValueReference : I32BitEnumAttrCaseBit<"RValueReference", 14>;
263
+ def LLVM_DIFlagExportSymbols : I32BitEnumAttrCaseBit<"ExportSymbols", 15>;
264
+ def LLVM_DIFlagSingleInheritance : I32BitEnumAttrCaseBit<"SingleInheritance", 16>;
265
+ def LLVM_DIFlagMultipleInheritance : I32BitEnumAttrCaseBit<"MultipleInheritance", 16>;
266
+ def LLVM_DIFlagVirtualInheritance : I32BitEnumAttrCaseBit<"VirtualInheritance", 16>;
267
+ def LLVM_DIFlagIntroducedVirtual : I32BitEnumAttrCaseBit<"IntroducedVirtual", 18>;
268
+ def LLVM_DIFlagBitField : I32BitEnumAttrCaseBit<"BitField", 19>;
269
+ def LLVM_DIFlagNoReturn : I32BitEnumAttrCaseBit<"NoReturn", 20>;
270
+ def LLVM_DIFlagTypePassByValue : I32BitEnumAttrCaseBit<"TypePassByValue", 22>;
271
+ def LLVM_DIFlagTypePassByReference : I32BitEnumAttrCaseBit<"TypePassByReference", 23>;
272
+ def LLVM_DIFlagEnumClass : I32BitEnumAttrCaseBit<"EnumClass", 24>;
273
+ def LLVM_DIFlagThunk : I32BitEnumAttrCaseBit<"Thunk", 25>;
274
+ def LLVM_DIFlagNonTrivial : I32BitEnumAttrCaseBit<"NonTrivial", 26>;
275
+ def LLVM_DIFlagBigEndian : I32BitEnumAttrCaseBit<"BigEndian", 27>;
276
+ def LLVM_DIFlagLittleEndian : I32BitEnumAttrCaseBit<"LittleEndian", 28>;
277
+ def LLVM_DIFlagAllCallsDescribed : I32BitEnumAttrCaseBit<"AllCallsDescribed", 29>;
278
+
279
+ def DIFlags : I32BitEnumAttr<
280
+ "DIFlags",
281
+ "LLVM DI flags", [
282
+ LLVM_DIFlagZero,
283
+ LLVM_DIFlagVisibilityBit0,
284
+ LLVM_DIFlagVisibilityBit1,
285
+ LLVM_DIFlagPrivate,
286
+ LLVM_DIFlagProtected,
287
+ LLVM_DIFlagPublic,
288
+ LLVM_DIFlagFwdDecl,
289
+ LLVM_DIFlagAppleBlock,
290
+ LLVM_DIFlagReservedBit4,
291
+ LLVM_DIFlagVirtual,
292
+ LLVM_DIFlagArtificial,
293
+ LLVM_DIFlagExplicit,
294
+ LLVM_DIFlagPrototyped,
295
+ LLVM_DIFlagObjcClassComplete,
296
+ LLVM_DIFlagObjectPointer,
297
+ LLVM_DIFlagVector,
298
+ LLVM_DIFlagStaticMember,
299
+ LLVM_DIFlagLValueReference,
300
+ LLVM_DIFlagRValueReference,
301
+ LLVM_DIFlagExportSymbols,
302
+ LLVM_DIFlagSingleInheritance,
303
+ LLVM_DIFlagMultipleInheritance,
304
+ LLVM_DIFlagVirtualInheritance,
305
+ LLVM_DIFlagIntroducedVirtual,
306
+ LLVM_DIFlagBitField,
307
+ LLVM_DIFlagNoReturn,
308
+ LLVM_DIFlagTypePassByValue,
309
+ LLVM_DIFlagTypePassByReference,
310
+ LLVM_DIFlagEnumClass,
311
+ LLVM_DIFlagThunk,
312
+ LLVM_DIFlagNonTrivial,
313
+ LLVM_DIFlagBigEndian,
314
+ LLVM_DIFlagLittleEndian,
315
+ LLVM_DIFlagAllCallsDescribed
316
+ ]> {
317
+ let cppNamespace = "::mlir::LLVM";
318
+ let printBitEnumPrimaryGroups = 1;
319
+ }
320
+
227
321
//===----------------------------------------------------------------------===//
228
322
// DISubprogramFlags
229
323
//===----------------------------------------------------------------------===//
0 commit comments