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

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Aug 3 04:34:29 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir

Author: Sergio Afonso (skatrak)

<details>
<summary>Changes</summary>

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.

---
Full diff: https://github.com/llvm/llvm-project/pull/213649.diff


1 Files Affected:

- (modified) mlir/lib/Dialect/OpenMP/Utils/Utils.cpp (+2-1) 


``````````diff
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,

``````````

</details>


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


More information about the llvm-branch-commits mailing list