[Mlir-commits] [mlir] [mlir][OpenMP] Model memory effects of omp.critical (PR #230455)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Oct 9 04:26:57 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: JRP-arm
<details>
<summary>Changes</summary>
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)
---
Full diff: https://github.com/llvm/llvm-project/pull/230455.diff
2 Files Affected:
- (modified) mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td (+3-1)
- (added) mlir/test/Dialect/OpenMP/memory-effects-critical.mlir (+10)
``````````diff
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index 6bc99cf7656992..d1a86859c0825c 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -1777,7 +1777,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 00000000000000..cbac8beb7b4495
--- /dev/null
+++ b/mlir/test/Dialect/OpenMP/memory-effects-critical.mlir
@@ -0,0 +1,10 @@
+// RUN: mlir-opt %s --test-side-effects --verify-diagnostics
+
+func.func @critical_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
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/230455
More information about the Mlir-commits
mailing list