[Mlir-commits] [mlir] [mlir][debug] Make DICompileUnitAttr recursive. (PR #190808)

Tobias Gysi llvmlistbot at llvm.org
Tue Apr 7 12:58:48 PDT 2026


================
@@ -342,16 +342,26 @@ MlirAttribute mlirLLVMDIFileAttrGet(MlirContext ctx, MlirAttribute name,
 
 MlirStringRef mlirLLVMDIFileAttrGetName(void) { return wrap(DIFileAttr::name); }
 
+MlirAttribute mlirLLVMDICompileUnitAttrGetRecSelf(MlirAttribute recId) {
+  return wrap(DICompileUnitAttr::getRecSelf(cast<DistinctAttr>(unwrap(recId))));
+}
+
 MlirAttribute mlirLLVMDICompileUnitAttrGet(
-    MlirContext ctx, MlirAttribute id, unsigned int sourceLanguage,
-    MlirAttribute file, MlirAttribute producer, bool isOptimized,
-    MlirLLVMDIEmissionKind emissionKind, bool isDebugInfoForProfiling,
-    MlirLLVMDINameTableKind nameTableKind, MlirAttribute splitDebugFilename,
-    intptr_t nImportedEntities, MlirAttribute const *importedEntities) {
+    MlirContext ctx, MlirAttribute recId, bool isRecSelf, MlirAttribute id,
+    unsigned int sourceLanguage, MlirAttribute file, MlirAttribute producer,
+    bool isOptimized, MlirLLVMDIEmissionKind emissionKind,
+    bool isDebugInfoForProfiling, MlirLLVMDINameTableKind nameTableKind,
+    MlirAttribute splitDebugFilename, intptr_t nImportedEntities,
+    MlirAttribute const *importedEntities) {
   SmallVector<Attribute> importsStorage;
   importsStorage.reserve(nImportedEntities);
+  DistinctAttr recIdAttr = mlirAttributeIsNull(recId)
+                               ? DistinctAttr{}
+                               : cast<DistinctAttr>(unwrap(recId));
----------------
gysit wrote:

Could we use dyn_cast_or_null?

I wonder if the idea with the CAPI is that the attributes are always non-null (none of the functions seems to handle the null case?)

https://github.com/llvm/llvm-project/pull/190808


More information about the Mlir-commits mailing list