[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
Mon Aug 3 04:23:52 PDT 2026
https://github.com/skatrak created https://github.com/llvm/llvm-project/pull/213649
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.
>From 1d4a8525abf14faa98781fde371238092a969740 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