@@ -159,9 +159,14 @@ MlirAttribute mlirLLVMDIBasicTypeAttrGet(MlirContext ctx, unsigned int tag,
159159 unwrap (ctx), tag, cast<StringAttr>(unwrap (name)), sizeInBits, encoding));
160160}
161161
162+ MlirAttribute mlirLLVMDICompositeTypeAttrGetRecSelf (MlirAttribute recId) {
163+ return wrap (
164+ DICompositeTypeAttr::getRecSelf (cast<DistinctAttr>(unwrap (recId))));
165+ }
166+
162167MlirAttribute mlirLLVMDICompositeTypeAttrGet (
163- MlirContext ctx, unsigned int tag, MlirAttribute recId, MlirAttribute name ,
164- MlirAttribute file, uint32_t line, MlirAttribute scope,
168+ MlirContext ctx, MlirAttribute recId, bool isRecSelf, unsigned int tag ,
169+ MlirAttribute name, MlirAttribute file, uint32_t line, MlirAttribute scope,
165170 MlirAttribute baseType, int64_t flags, uint64_t sizeInBits,
166171 uint64_t alignInBits, intptr_t nElements, MlirAttribute const *elements,
167172 MlirAttribute dataLocation, MlirAttribute rank, MlirAttribute allocated,
@@ -170,7 +175,7 @@ MlirAttribute mlirLLVMDICompositeTypeAttrGet(
170175 elementsStorage.reserve (nElements);
171176
172177 return wrap (DICompositeTypeAttr::get (
173- unwrap (ctx), tag, cast<DistinctAttr>(unwrap (recId)),
178+ unwrap (ctx), cast<DistinctAttr>(unwrap (recId)), isRecSelf, tag ,
174179 cast<StringAttr>(unwrap (name)), cast<DIFileAttr>(unwrap (file)), line,
175180 cast<DIScopeAttr>(unwrap (scope)), cast<DITypeAttr>(unwrap (baseType)),
176181 DIFlags (flags), sizeInBits, alignInBits,
@@ -289,16 +294,21 @@ MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx,
289294 [](Attribute a) { return cast<DITypeAttr>(a); })));
290295}
291296
297+ MlirAttribute mlirLLVMDISubprogramAttrGetRecSelf (MlirAttribute recId) {
298+ return wrap (DISubprogramAttr::getRecSelf (cast<DistinctAttr>(unwrap (recId))));
299+ }
300+
292301MlirAttribute 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 recId, bool isRecSelf, MlirAttribute id ,
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) {
298307 SmallVector<Attribute> nodesStorage;
299308 nodesStorage.reserve (nRetainedNodes);
300309 return wrap (DISubprogramAttr::get (
301- unwrap (ctx), cast<DistinctAttr>(unwrap (id)),
310+ unwrap (ctx), cast<DistinctAttr>(unwrap (recId)), isRecSelf,
311+ cast<DistinctAttr>(unwrap (id)),
302312 cast<DICompileUnitAttr>(unwrap (compileUnit)),
303313 cast<DIScopeAttr>(unwrap (scope)), cast<StringAttr>(unwrap (name)),
304314 cast<StringAttr>(unwrap (linkageName)), cast<DIFileAttr>(unwrap (file)),
@@ -353,14 +363,15 @@ MlirAttribute mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule) {
353363}
354364
355365MlirAttribute 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) {
359369 SmallVector<Attribute> elementsStorage;
360370 elementsStorage.reserve (nElements);
361371 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)),
364375 llvm::map_to_vector (unwrapList (nElements, elements, elementsStorage),
365376 [](Attribute a) { return cast<DINodeAttr>(a); })));
366377}
0 commit comments