diff options
| author | Zahira Ammarguellat <zahira.ammarguellat@intel.com> | 2025-11-21 08:19:20 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-21 08:19:20 -0500 |
| commit | d36e2b621fd9e3354cef00135ad0cb8923ae4269 (patch) | |
| tree | f8114e3f2356aa92254dff6db73f8abd34623bff /openmp | |
| parent | 347512ff38748ac6ebfacbfda172edb5cf1edbe2 (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.h | 6 |
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) */ |
