[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:15 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;
+ }
+ domainIt->second->replaceOperandWith(0, replacement);
}
// Convert the scope metadata node.
assert(domainIt->second && "Scope's domain should already be valid");
llvm::SmallVector<llvm::Metadata *, 3> operands;
- // Placeholder for self-reference.
+ // Placeholder for potential self-reference.
operands.push_back(dummy.get());
operands.push_back(domainIt->second);
if (StringAttr description = aliasScopeAttr.getDescription())
operands.push_back(llvm::MDString::get(ctx, description));
scopeIt->second = llvm::MDNode::get(ctx, operands);
// Self-reference for uniqueness.
- scopeIt->second->replaceOperandWith(0, scopeIt->second);
+ llvm::Metadata *replacement;
+ if (auto stringAttr = dyn_cast<StringAttr>(aliasScopeAttr.getId())) {
+ replacement = llvm::MDString::get(ctx, stringAttr.getValue());
+ } else {
+ replacement = scopeIt->second;
+ }
----------------
Dinistro wrote:
```suggestion
if (auto stringAttr = dyn_cast<StringAttr>(aliasScopeAttr.getId()))
replacement = llvm::MDString::get(ctx, stringAttr.getValue());
else
replacement = scopeIt->second;
```
https://github.com/llvm/llvm-project/pull/121987
More information about the Mlir-commits
mailing list