[flang-commits] [flang] 4268360 - [Flang] [OpenMP] Allow any type as argument to the FlushOp (#143844)
via flang-commits
flang-commits at lists.llvm.org
Thu Jun 12 21:05:53 PDT 2025
Author: Thirumalai Shaktivel
Date: 2025-06-13T09:35:48+05:30
New Revision: 4268360003e2dc6721469aa5ccab7efbb29dcbfd
URL: https://github.com/llvm/llvm-project/commit/4268360003e2dc6721469aa5ccab7efbb29dcbfd
DIFF: https://github.com/llvm/llvm-project/commit/4268360003e2dc6721469aa5ccab7efbb29dcbfd.diff
LOG: [Flang] [OpenMP] Allow any type as argument to the FlushOp (#143844)
Fixes: #143842
Added:
flang/test/Lower/OpenMP/flush02.f90
Modified:
mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
Removed:
################################################################################
diff --git a/flang/test/Lower/OpenMP/flush02.f90 b/flang/test/Lower/OpenMP/flush02.f90
new file mode 100644
index 0000000000000..b372e700e1a1d
--- /dev/null
+++ b/flang/test/Lower/OpenMP/flush02.f90
@@ -0,0 +1,32 @@
+! This test checks lowering of OpenMP Flush Directive.
+
+!RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s
+
+module flush02_mod
+ type t1
+ integer(kind=4) :: x = 4
+ end type t1
+
+ type :: t2
+ type(t1) :: y = t1(2)
+ end type t2
+
+
+contains
+
+ subroutine sub01(pt)
+ class(t1), intent(inout) :: pt
+ type(t2) :: dt
+ integer, allocatable :: a(:)
+ integer, pointer :: b(:)
+
+ ! CHECK: omp.flush({{.*}} : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>)
+ ! CHECK: omp.flush({{.*}} : !fir.ref<f32>)
+ ! CHECK: omp.flush({{.*}} : !fir.ref<!fir.type<_QMflush02_modTt2{y:!fir.type<_QMflush02_modTt1{x:i32}>}>>)
+ ! CHECK: omp.flush({{.*}} : !fir.class<!fir.type<_QMflush02_modTt1{x:i32}>>)
+ !$omp flush(a)
+ !$omp flush(p)
+ !$omp flush(dt)
+ !$omp flush(pt)
+ end subroutine
+end module flush02_mod
diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
index 036c6a6e350a8..ac80926053a2d 100644
--- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
@@ -889,7 +889,7 @@ def FlushOp : OpenMP_Op<"flush", clauses = [
specified or implied.
}] # clausesDescription;
- let arguments = !con((ins Variadic<OpenMP_PointerLikeType>:$varList),
+ let arguments = !con((ins Variadic<AnyType>:$varList),
clausesArgs);
// Override inherited assembly format to include `varList`.
More information about the flang-commits
mailing list