[Mlir-commits] [mlir] da7efb3 - [mlir][OpenMP] Model memory effects of omp.critical (#230455)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Oct 15 04:01:27 PDT 2026


Author: JRP-arm
Date: 2026-10-15T12:01:20+01:00
New Revision: da7efb30f3121fa9dba401803c1d9a6f4fb9341e

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

LOG: [mlir][OpenMP] Model memory effects of omp.critical (#230455)

Model synchronisation as reads and writes of unspecified memory and
expose recursive effects. Test the read and write effects of an empty
critical region.

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: 
    mlir/test/Dialect/OpenMP/memory-effects-critical.mlir

Modified: 
    mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index f578cc741cb09..4cfafef8a32c9 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -1780,7 +1780,9 @@ def CriticalDeclareOp : OpenMP_Op<"critical.declare", clauses = [
 
 
 def CriticalOp : OpenMP_Op<"critical", [
-    DeclareOpInterfaceMethods<SymbolUserOpInterface>
+    DeclareOpInterfaceMethods<SymbolUserOpInterface>,
+    MemoryEffects<[MemRead, MemWrite]>,
+    RecursiveMemoryEffects
   ], singleRegion = 1> {
   let summary = "critical construct";
   let description = [{

diff  --git a/mlir/test/Dialect/OpenMP/memory-effects-critical.mlir b/mlir/test/Dialect/OpenMP/memory-effects-critical.mlir
new file mode 100644
index 0000000000000..611d295c2b3fb
--- /dev/null
+++ b/mlir/test/Dialect/OpenMP/memory-effects-critical.mlir
@@ -0,0 +1,11 @@
+// RUN: mlir-opt %s --test-side-effects --verify-diagnostics
+
+func.func @critical_effects() {
+  // expected-remark at +3 {{recursive memory effects}}
+  // expected-remark at +2 {{found an instance of 'read' on resource '<Default>'}}
+  // expected-remark at +1 {{found an instance of 'write' on resource '<Default>'}}
+  omp.critical {
+    omp.terminator
+  }
+  return
+}


        


More information about the Mlir-commits mailing list