summaryrefslogtreecommitdiff
path: root/openmp
diff options
context:
space:
mode:
authorZahira Ammarguellat <zahira.ammarguellat@intel.com>2025-11-21 08:19:20 -0500
committerGitHub <noreply@github.com>2025-11-21 08:19:20 -0500
commitd36e2b621fd9e3354cef00135ad0cb8923ae4269 (patch)
treef8114e3f2356aa92254dff6db73f8abd34623bff /openmp
parent347512ff38748ac6ebfacbfda172edb5cf1edbe2 (diff)
[OpenMP][libomp] Add transparent task flag bit to kmp_tasking_flags (#168873)
Clang is adding support for the new `OpenMP transparent` clause on `task` and `taskloop` directives. The parsing and semantic handling for this clause is introduced in https://github.com/llvm/llvm-project/pull/166810 . To allow the compiler to communicate this clause to the `OpenMP` runtime, a dedicated bit in `kmp_tasking_flags` is required. This patch adds a new compiler-reserved bit `transparent` to the` kmp_tasking_flags` structure.
Diffstat (limited to 'openmp')
-rw-r--r--openmp/runtime/src/kmp.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index 3ffec41a7f67..36c40abaf1ef 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -2707,7 +2707,8 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
unsigned tasking_ser : 1;
unsigned task_serial : 1;
unsigned tasktype : 1;
- unsigned reserved : 8;
+ unsigned reserved : 7;
+ unsigned transparent : 1;
unsigned free_agent_eligible : 1;
unsigned detachable : 1;
unsigned priority_specified : 1;
@@ -2731,7 +2732,8 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
unsigned detachable : 1; /* 1 == can detach */
unsigned free_agent_eligible : 1; /* set if task can be executed by a
free-agent thread */
- unsigned reserved : 8; /* reserved for compiler use */
+ unsigned transparent : 1; /* transparent task support (compiler uses this) */
+ unsigned reserved : 7; /* reserved for compiler use */
/* Library flags */ /* Total library flags must be 16 bits */
unsigned tasktype : 1; /* task is either explicit(1) or implicit (0) */