[flang-commits] [flang] [flang][OpenMP] Add TODOs for target [teams|parallel] private (PR #143706)
Kajetan Puchalski via flang-commits
flang-commits at lists.llvm.org
Wed Jun 11 06:51:09 PDT 2025
https://github.com/mrkajetanp created https://github.com/llvm/llvm-project/pull/143706
Using the private clause on `target teams` or `target parallel` is not currently implemented and causes crashes during lowering. Add appropriate TODOs.
Resolves https://github.com/llvm/llvm-project/issues/116428.
>From 37380fa2510853f6ff1145cba20d872c83ca2182 Mon Sep 17 00:00:00 2001
From: Kajetan Puchalski <kajetan.puchalski at arm.com>
Date: Wed, 11 Jun 2025 13:46:47 +0000
Subject: [PATCH] [flang][OpenMP] Add TODOs for target [teams|parallel] private
Using the private clause on `target teams` or `target parallel` is
not currently implemented and causes crashes during lowering.
Add appropriate TODOs.
Signed-off-by: Kajetan Puchalski <kajetan.puchalski at arm.com>
---
flang/lib/Lower/OpenMP/OpenMP.cpp | 7 +++++++
.../Lower/OpenMP/Todo/target-parallel-private.f90 | 13 +++++++++++++
.../test/Lower/OpenMP/Todo/target-teams-private.f90 | 13 +++++++++++++
3 files changed, 33 insertions(+)
create mode 100644 flang/test/Lower/OpenMP/Todo/target-parallel-private.f90
create mode 100644 flang/test/Lower/OpenMP/Todo/target-teams-private.f90
diff --git a/flang/lib/Lower/OpenMP/OpenMP.cpp b/flang/lib/Lower/OpenMP/OpenMP.cpp
index 6892e571e62a3..7fde4f842c5a5 100644
--- a/flang/lib/Lower/OpenMP/OpenMP.cpp
+++ b/flang/lib/Lower/OpenMP/OpenMP.cpp
@@ -4317,6 +4317,13 @@ static void genOMP(lower::AbstractConverter &converter, lower::SymMap &symTable,
parser::ToUpperCaseLetters(llvm::omp::getOpenMPClauseName(clause.id));
TODO(clauseLocation, name + " clause is not implemented yet");
}
+
+ if (std::holds_alternative<clause::Private>(clause.u) &&
+ origDirective == llvm::omp::Directive::OMPD_target_teams)
+ TODO(clauseLocation, "TARGET TEAMS PRIVATE is not implemented yet");
+ if (std::holds_alternative<clause::Private>(clause.u) &&
+ origDirective == llvm::omp::Directive::OMPD_target_parallel)
+ TODO(clauseLocation, "TARGET PARALLEL PRIVATE is not implemented yet");
}
llvm::omp::Directive directive =
diff --git a/flang/test/Lower/OpenMP/Todo/target-parallel-private.f90 b/flang/test/Lower/OpenMP/Todo/target-parallel-private.f90
new file mode 100644
index 0000000000000..e820143021f9a
--- /dev/null
+++ b/flang/test/Lower/OpenMP/Todo/target-parallel-private.f90
@@ -0,0 +1,13 @@
+! RUN: %not_todo_cmd bbc -emit-fir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
+! RUN: %not_todo_cmd %flang_fc1 -emit-fir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
+
+!===============================================================================
+! `private` clause on `target parallel`
+!===============================================================================
+
+! CHECK: not yet implemented: TARGET PARALLEL PRIVATE is not implemented yet
+subroutine target_teams_private()
+integer, dimension(3) :: i
+!$omp target parallel private(i)
+!$omp end target parallel
+end subroutine
diff --git a/flang/test/Lower/OpenMP/Todo/target-teams-private.f90 b/flang/test/Lower/OpenMP/Todo/target-teams-private.f90
new file mode 100644
index 0000000000000..c8d998a5cbf94
--- /dev/null
+++ b/flang/test/Lower/OpenMP/Todo/target-teams-private.f90
@@ -0,0 +1,13 @@
+! RUN: %not_todo_cmd bbc -emit-fir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
+! RUN: %not_todo_cmd %flang_fc1 -emit-fir -fopenmp -fopenmp-version=50 -o - %s 2>&1 | FileCheck %s
+
+!===============================================================================
+! `private` clause on `target teams`
+!===============================================================================
+
+! CHECK: not yet implemented: TARGET TEAMS PRIVATE is not implemented yet
+subroutine target_teams_private()
+integer, dimension(3) :: i
+!$omp target teams private(i)
+!$omp end target teams
+end subroutine
More information about the flang-commits
mailing list