aboutsummaryrefslogtreecommitdiff
path: root/libgomp/fortran.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2022-10-12 18:39:20 +0200
committerJakub Jelinek <jakub@redhat.com>2022-10-12 18:39:20 +0200
commit0ec4e93fb9fa5e9d2424683c5fab1310c8ae2f76 (patch)
treefc09141e665147810f3e29e784bf0d1cb5f61fdc /libgomp/fortran.c
parenta58a965eb73253759f6a3e1c7380392557da89c8 (diff)
libgomp: Add omp_in_explicit_task support
This is pretty straightforward, if gomp_thread ()->task is NULL, it can't be explicit task, otherwise if gomp_thread ()->task->kind == GOMP_TASK_IMPLICIT, it is an implicit task, otherwise explicit task. 2022-10-12 Jakub Jelinek <jakub@redhat.com> * omp.h.in (omp_in_explicit_task): Declare. * omp_lib.h.in (omp_in_explicit_task): Likewise. * omp_lib.f90.in (omp_in_explicit_task): New interface. * libgomp.map (OMP_5.2): New symbol version, export omp_in_explicit_task and omp_in_explicit_task_. * task.c (omp_in_explicit_task): New function. * fortran.c (omp_in_explicit_task): Add ialias_redirect. (omp_in_explicit_task_): New function. * libgomp.texi (OpenMP 5.2): Mark omp_in_explicit_task as implemented. * testsuite/libgomp.c-c++-common/task-in-explicit-1.c: New test. * testsuite/libgomp.c-c++-common/task-in-explicit-2.c: New test. * testsuite/libgomp.c-c++-common/task-in-explicit-3.c: New test.
Diffstat (limited to 'libgomp/fortran.c')
-rw-r--r--libgomp/fortran.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libgomp/fortran.c b/libgomp/fortran.c
index d984ce5c6f8..72784ec5dad 100644
--- a/libgomp/fortran.c
+++ b/libgomp/fortran.c
@@ -76,6 +76,7 @@ ialias_redirect (omp_get_ancestor_thread_num)
ialias_redirect (omp_get_team_size)
ialias_redirect (omp_get_active_level)
ialias_redirect (omp_in_final)
+ialias_redirect (omp_in_explicit_task)
ialias_redirect (omp_get_cancellation)
ialias_redirect (omp_get_proc_bind)
ialias_redirect (omp_get_num_places)
@@ -482,6 +483,12 @@ omp_in_final_ (void)
return omp_in_final ();
}
+int32_t
+omp_in_explicit_task_ (void)
+{
+ return omp_in_explicit_task ();
+}
+
void
omp_set_num_teams_ (const int32_t *num_teams)
{