@@ -159,6 +159,11 @@ MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag,
159
159
unwrap (ctx), tag, cast<StringAttr>(unwrap (name)), sizeInBits, encoding));
160
160
}
161
161
162
+ MlirAttribute mlirLLVMDICompositeTypeAttrGetSelfRec (MlirAttribute recId) {
163
+ return wrap (
164
+ DICompositeTypeAttr::getRecSelf (cast<DistinctAttr>(unwrap (recId))));
165
+ }
166
+
162
167
MlirAttribute mlirLLVMDICompositeTypeAttrGet (
163
168
MlirContext ctx, unsigned int tag, MlirAttribute recId, MlirAttribute name,
164
169
MlirAttribute file, uint32_t line, MlirAttribute scope,
@@ -289,16 +294,21 @@ MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx,
289
294
[](Attribute a) { return cast<DITypeAttr>(a); })));
290
295
}
291
296
297
+ MlirAttribute mlirLLVMDISubprogramAttrGetSelfRec (MlirAttribute recId) {
298
+ return wrap (DISubprogramAttr::getRecSelf (cast<DistinctAttr>(unwrap (recId))));
299
+ }
300
+
292
301
MlirAttribute mlirLLVMDISubprogramAttrGet (
293
- MlirContext ctx, MlirAttribute id, MlirAttribute compileUnit ,
294
- MlirAttribute scope , MlirAttribute name , MlirAttribute linkageName ,
295
- MlirAttribute file, unsigned int line , unsigned int scopeLine ,
296
- uint64_t subprogramFlags, MlirAttribute type, intptr_t nRetainedNodes ,
297
- MlirAttribute const *retainedNodes) {
302
+ MlirContext ctx, MlirAttribute id, MlirAttribute recId ,
303
+ MlirAttribute compileUnit , MlirAttribute scope , MlirAttribute name ,
304
+ MlirAttribute linkageName, MlirAttribute file , unsigned int line ,
305
+ unsigned int scopeLine, uint64_t subprogramFlags, MlirAttribute type,
306
+ intptr_t nRetainedNodes, MlirAttribute const *retainedNodes) {
298
307
SmallVector<Attribute> nodesStorage;
299
308
nodesStorage.reserve (nRetainedNodes);
300
309
return wrap (DISubprogramAttr::get (
301
310
unwrap (ctx), cast<DistinctAttr>(unwrap (id)),
311
+ cast<DistinctAttr>(unwrap (recId)),
302
312
cast<DICompileUnitAttr>(unwrap (compileUnit)),
303
313
cast<DIScopeAttr>(unwrap (scope)), cast<StringAttr>(unwrap (name)),
304
314
cast<StringAttr>(unwrap (linkageName)), cast<DIFileAttr>(unwrap (file)),
@@ -353,14 +363,15 @@ MlirAttribute mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule) {
353
363
}
354
364
355
365
MlirAttribute mlirLLVMDIImportedEntityAttrGet (
356
- MlirContext ctx, unsigned int tag, MlirAttribute entity, MlirAttribute file ,
357
- unsigned int line , MlirAttribute name, intptr_t nElements ,
358
- MlirAttribute const *elements) {
366
+ MlirContext ctx, unsigned int tag, MlirAttribute scope ,
367
+ MlirAttribute entity , MlirAttribute file, unsigned int line ,
368
+ MlirAttribute name, intptr_t nElements, MlirAttribute const *elements) {
359
369
SmallVector<Attribute> elementsStorage;
360
370
elementsStorage.reserve (nElements);
361
371
return wrap (DIImportedEntityAttr::get (
362
- unwrap (ctx), tag, cast<DINodeAttr>(unwrap (entity)),
363
- cast<DIFileAttr>(unwrap (file)), line, cast<StringAttr>(unwrap (name)),
372
+ unwrap (ctx), tag, cast<DIScopeAttr>(unwrap (scope)),
373
+ cast<DINodeAttr>(unwrap (entity)), cast<DIFileAttr>(unwrap (file)), line,
374
+ cast<StringAttr>(unwrap (name)),
364
375
llvm::map_to_vector (unwrapList (nElements, elements, elementsStorage),
365
376
[](Attribute a) { return cast<DINodeAttr>(a); })));
366
377
}
0 commit comments