[llvm-branch-commits] [mlir] [MLIR][OpenMP] Ensure -fopenmp-force-usm doesn't override requirements (PR #213649)

Sergio Afonso via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 6 03:47:23 PDT 2026


https://github.com/skatrak updated https://github.com/llvm/llvm-project/pull/213649

>From 4ef8c827c342fde75438857bab50544880080de1 Mon Sep 17 00:00:00 2001
From: Sergio Afonso <Sergio.AfonsoFumero at amd.com>
Date: Tue, 21 Jul 2026 15:05:46 +0100
Subject: [PATCH] [MLIR][OpenMP] Ensure -fopenmp-force-usm doesn't override
 requirements

The `mlir::omp::setOffloadModuleInterfaceAttributes` utility function
can currently override any pre-existing OpenMP `requires` clauses in the
module. This doesn't cause any problems at the moment because all calls to
this function happen before any other `requires` are processed. However,
it's safer to make sure it never deletes pre-existing flags in case the
same function is reused in a different context.
---
 mlir/lib/Dialect/OpenMP/Utils/Utils.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mlir/lib/Dialect/OpenMP/Utils/Utils.cpp b/mlir/lib/Dialect/OpenMP/Utils/Utils.cpp
index dca02584e32c6..481efdba89e1e 100644
--- a/mlir/lib/Dialect/OpenMP/Utils/Utils.cpp
+++ b/mlir/lib/Dialect/OpenMP/Utils/Utils.cpp
@@ -23,7 +23,8 @@ void mlir::omp::setOffloadModuleInterfaceAttributes(
     offloadMod.setIsTargetDevice(opts.isTargetDevice);
     offloadMod.setIsGPU(opts.isGPU);
     if (opts.forceUSM)
-      offloadMod.setRequires(ClauseRequires::unified_shared_memory);
+      offloadMod.setRequires(offloadMod.getRequires() |
+                             ClauseRequires::unified_shared_memory);
     offloadMod.setFlags(opts.targetDebugKind, opts.assumeTeamsOversubscription,
                         opts.assumeThreadsOversubscription,
                         opts.assumeNoThreadState,



More information about the llvm-branch-commits mailing list