[Mlir-commits] [mlir] [MLIR] Enable import of non self referential alias scopes (PR #121987)

Tobias Gysi llvmlistbot at llvm.org
Tue Jan 7 12:08:23 PST 2025


================
@@ -438,8 +438,14 @@ ModuleImport::processAliasScopeMetadata(const llvm::MDNode *node) {
     if (aliasDomain->getNumOperands() >= 2)
       if (auto *operand = dyn_cast<llvm::MDString>(aliasDomain->getOperand(1)))
         description = builder.getStringAttr(operand->getString());
-    return builder.getAttr<AliasScopeDomainAttr>(
-        DistinctAttr::create(builder.getUnitAttr()), description);
+    if (verifySelfRef(aliasDomain))
+      return builder.getAttr<AliasScopeDomainAttr>(
+          DistinctAttr::create(builder.getUnitAttr()), description);
+    else {
+      auto Name = cast<llvm::MDString>(aliasDomain->getOperand(0));
+      return builder.getAttr<AliasScopeDomainAttr>(
+          builder.getStringAttr(Name->getString()), description);
+    }
----------------
gysit wrote:

```suggestion
    Attribute id;
    if (auto stringId = dyn_cast<llvm::MDString>(aliasDomain->getOperand(0))
      id = builder.getStringAttr(stringId->getString());
    else
      id = DistinctAttr::create(builder.getUnitAttr())   
    return builder.getAttr<AliasScopeDomainAttr>(id, description);
```
I would probably use verifySelfRef for verification only see my comment below.

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


More information about the Mlir-commits mailing list