[Openmp-commits] [openmp] d36e2b6 - [OpenMP][libomp] Add transparent task flag bit to kmp_tasking_flags (#168873)

via Openmp-commits openmp-commits at lists.llvm.org
Fri Nov 21 05:19:25 PST 2025


Author: Zahira Ammarguellat
Date: 2025-11-21T08:19:20-05:00
New Revision: d36e2b621fd9e3354cef00135ad0cb8923ae4269

URL: https://github.com/llvm/llvm-project/commit/d36e2b621fd9e3354cef00135ad0cb8923ae4269
DIFF: https://github.com/llvm/llvm-project/commit/d36e2b621fd9e3354cef00135ad0cb8923ae4269.diff

LOG: [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.

Added: 
    

Modified: 
    openmp/runtime/src/kmp.h

Removed: 
    


################################################################################
diff  --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index 3ffec41a7f679..36c40abaf1ef4 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) */


        


More information about the Openmp-commits mailing list