[Mlir-commits] [mlir] 93e018a - [mlir][OpenMP] Model recursive memory effects of omp.master (#230190)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Oct 15 02:44:02 PDT 2026


Author: JRP-arm
Date: 2026-10-15T09:43:55Z
New Revision: 93e018a5ffef86ed239f11ee4cff055f190e42e0

URL: https://github.com/llvm/llvm-project/commit/93e018a5ffef86ed239f11ee4cff055f190e42e0
DIFF: https://github.com/llvm/llvm-project/commit/93e018a5ffef86ed239f11ee4cff055f190e42e0.diff

LOG: [mlir][OpenMP] Model recursive memory effects of omp.master (#230190)

Remove effect-free master regions while preserving nested memory
effects.

Assisted by: AI (ChatGPT)

---------

Co-authored-by: Jamie.Rowlinson-Patel at arm.com <jamrow01 at ip-10-252-16-38.eu-west-1.compute.internal>

Added: 
    

Modified: 
    mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    mlir/test/Dialect/OpenMP/memory-effects.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index 8c5b63a931b41..f578cc741cb09 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -1749,7 +1749,7 @@ def TargetOp : OpenMP_Op<"target", traits = [
 // 2.16 master Construct
 //===----------------------------------------------------------------------===//
 def MasterOp : OpenMP_Op<"master", traits = [
-    DeclareOpInterfaceMethods<ComposableOpInterface>
+    DeclareOpInterfaceMethods<ComposableOpInterface>, RecursiveMemoryEffects
   ], singleRegion = true> {
   let summary = "master construct";
   let description = [{

diff  --git a/mlir/test/Dialect/OpenMP/memory-effects.mlir b/mlir/test/Dialect/OpenMP/memory-effects.mlir
index bf65703e87544..1efa0acd23da0 100644
--- a/mlir/test/Dialect/OpenMP/memory-effects.mlir
+++ b/mlir/test/Dialect/OpenMP/memory-effects.mlir
@@ -5,6 +5,15 @@ func.func @masked_recursive_memory_effects() {
   // expected-remark at +1 {{recursive memory effects}}
   omp.masked {
     omp.terminator
-  } {test_recursive_memory_effects}
+  }
+  return
+}
+
+// Check the trait on omp.master itself, independently of its body.
+func.func @master_recursive_memory_effects() {
+  // expected-remark at +1 {{recursive memory effects}}
+  omp.master {
+    omp.terminator
+  }
   return
 }
\ No newline at end of file


        


More information about the Mlir-commits mailing list