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

Christian Ulmann llvmlistbot at llvm.org
Tue Jan 7 23:04:16 PST 2025


================
@@ -1724,25 +1724,38 @@ ModuleTranslation::getOrCreateAliasScope(AliasScopeAttr aliasScopeAttr) {
       aliasScopeAttr.getDomain(), nullptr);
   if (insertedDomain) {
     llvm::SmallVector<llvm::Metadata *, 2> operands;
-    // Placeholder for self-reference.
+    // Placeholder for potential self-reference.
     operands.push_back(dummy.get());
     if (StringAttr description = aliasScopeAttr.getDomain().getDescription())
       operands.push_back(llvm::MDString::get(ctx, description));
     domainIt->second = llvm::MDNode::get(ctx, operands);
     // Self-reference for uniqueness.
-    domainIt->second->replaceOperandWith(0, domainIt->second);
+    llvm::Metadata *replacement;
+    if (auto stringAttr =
+            dyn_cast<StringAttr>(aliasScopeAttr.getDomain().getId())) {
+      replacement = llvm::MDString::get(ctx, stringAttr.getValue());
+    } else {
+      replacement = domainIt->second;
+    }
----------------
Dinistro wrote:

```suggestion
    if (auto stringAttr =
            dyn_cast<StringAttr>(aliasScopeAttr.getDomain().getId()))
      replacement = llvm::MDString::get(ctx, stringAttr.getValue());
    else
      replacement = domainIt->second;
```

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


More information about the Mlir-commits mailing list