[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