diff --git a/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp b/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp index 6ea7c71cd40d4..2995ad33e57fa 100644 --- a/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp +++ b/mlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp @@ -1018,7 +1018,7 @@ void Importer::processFunctionAttributes(llvm::Function *func, auto addNamedUnitAttr = [&](StringRef name) { return funcOp->setAttr(name, UnitAttr::get(context)); }; - if (func->hasFnAttribute(llvm::Attribute::ReadNone)) + if (func->doesNotAccessMemory()) addNamedUnitAttr(LLVMDialect::getReadnoneAttrName()); } diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp index 26bc99f53a568..e409b665c30d9 100644 --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -984,7 +984,7 @@ LogicalResult ModuleTranslation::convertFunctionSignatures() { addRuntimePreemptionSpecifier(function.getDsoLocal(), llvmFunc); if (function->getAttrOfType(LLVMDialect::getReadnoneAttrName())) - llvmFunc->addFnAttr(llvm::Attribute::ReadNone); + llvmFunc->setDoesNotAccessMemory(); // Forward the pass-through attributes to LLVM. if (failed(forwardPassthroughAttributes(