diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:15:55 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2025-01-09 18:15:55 +0900 |
commit | bdcf47e4bcb92889665825654bb80a8bbe30379e (patch) | |
tree | 4de1d6b4ddc69f4f32daabb11ad5c71ab0cf895e /mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | |
parent | e7fd5cd25334048980ea207a9eff72698724721a (diff) | |
parent | fea7da1b00cc97d742faede2df96c7d327950f49 (diff) | |
download | llvm-users/chapuni/cov/single/base.zip llvm-users/chapuni/cov/single/base.tar.gz llvm-users/chapuni/cov/single/base.tar.bz2 |
Merge branch 'users/chapuni/cov/single/nextcount' into users/chapuni/cov/single/baseusers/chapuni/cov/single/base
Diffstat (limited to 'mlir/lib/Target/LLVMIR/ModuleTranslation.cpp')
-rw-r--r-- | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp index ad62ae0..4367100 100644 --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -1724,25 +1724,36 @@ 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; + scopeIt->second->replaceOperandWith(0, replacement); return scopeIt->second; } |