[Mlir-commits] [mlir] [mlir][ROCDL] Remove rocdl.ignore_denormal_mode (PR #231424)
Christian Sigg
llvmlistbot at llvm.org
Fri Oct 16 05:48:09 PDT 2026
https://github.com/chsigg updated https://github.com/llvm/llvm-project/pull/231424
>From f003316d95a73ab1346460bf5836c50bfdb8752a Mon Sep 17 00:00:00 2001
From: Christian Sigg <csigg at google.com>
Date: Mon, 12 Oct 2026 08:32:22 +0200
Subject: [PATCH] [mlir][ROCDL] Deprecate rocdl.ignore_denormal_mode
The `rocdl.ignore_denormal_mode` discardable attribute is deprecated in favor of the `ignore_denormal_mode` unit attribute on `llvm.atomicrmw`, which translates to the same `!atomic.ignore.denormal.mode` metadata. Translation of `rocdl.ignore_denormal_mode` now emits a deprecation warning.
---
mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td | 1 +
.../LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp | 2 ++
mlir/test/Target/LLVMIR/rocdl-invalid.mlir | 8 ++++++++
3 files changed, 11 insertions(+)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
index d0102b190896c7..5b8eb601f72049 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.td
@@ -170,6 +170,7 @@ def ROCDL_Dialect : Dialect {
"::mlir::UnitAttr":$last_use,
"::mlir::UnitAttr":$no_remote_memory,
"::mlir::UnitAttr":$no_fine_grained_memory,
+ // Deprecated: use `ignore_denormal_mode` on `llvm.atomicrmw` instead.
"::mlir::UnitAttr":$ignore_denormal_mode
);
diff --git a/mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
index 5f3c086d747155..303a27b879cecb 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
@@ -262,6 +262,8 @@ class ROCDLDialectLLVMIRTranslationInterface
}
if (dialect->getIgnoreDenormalModeAttrHelper().getName() ==
attribute.getName()) {
+ op->emitWarning("rocdl.ignore_denormal_mode is deprecated; use "
+ "ignore_denormal_mode on llvm.atomicrmw instead");
for (llvm::Instruction *i : instructions)
i->setMetadata(llvm::LLVMContext::MD_atomic_ignore_denormal_mode,
llvm::MDNode::get(llvmContext, {}));
diff --git a/mlir/test/Target/LLVMIR/rocdl-invalid.mlir b/mlir/test/Target/LLVMIR/rocdl-invalid.mlir
index 3a3cff5f6226a7..16ceef76d419f2 100644
--- a/mlir/test/Target/LLVMIR/rocdl-invalid.mlir
+++ b/mlir/test/Target/LLVMIR/rocdl-invalid.mlir
@@ -17,3 +17,11 @@ llvm.func @reqd_work_group_size_max_flat_work_group_size_mismatch()
rocdl.reqd_work_group_size = array<i32: 32, 2, 1>} {
llvm.return
}
+
+// -----
+
+llvm.func @rocdl_deprecated_ignore_denormal_mode(%ptr: !llvm.ptr<1>, %data: f32) {
+ // expected-warning @below {{rocdl.ignore_denormal_mode is deprecated; use ignore_denormal_mode on llvm.atomicrmw instead}}
+ llvm.atomicrmw fadd %ptr, %data monotonic {rocdl.ignore_denormal_mode} : !llvm.ptr<1>, f32
+ llvm.return
+}
More information about the Mlir-commits
mailing list