[Openmp-commits] [openmp] [OpenMP] OpenMP ThreadSet clause - basic runtime (PR #144409)
via Openmp-commits
openmp-commits at lists.llvm.org
Sun Jun 29 07:26:31 PDT 2025
https://github.com/Ritanya-B-Bharadwaj updated https://github.com/llvm/llvm-project/pull/144409
>From 4553bd26281ff00e1c1ad1bf6e6b68af45819de8 Mon Sep 17 00:00:00 2001
From: Ritanya B Bharadwaj <ritanya.b.bharadwaj at gmail.com>
Date: Mon, 16 Jun 2025 13:25:29 -0500
Subject: [PATCH 1/2] [clang][OpenMP] OpenMP ThreadSet clause - basic runtime
---
openmp/runtime/src/kmp.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index a2cacc8792b15..7a17b9f8550e9 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -2740,7 +2740,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 free_agent_eligible : 1;
+ unsigned reserved : 7;
unsigned hidden_helper : 1;
unsigned detachable : 1;
unsigned priority_specified : 1;
@@ -2763,7 +2764,9 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
setting for the task */
unsigned detachable : 1; /* 1 == can detach */
unsigned hidden_helper : 1; /* 1 == hidden helper task */
- unsigned reserved : 8; /* reserved for compiler use */
+ unsigned reserved : 7; /* reserved for compiler use */
+ unsigned free_agent_eligible : 1; /* set if task can be executed by a
+ free-agent thread */
/* Library flags */ /* Total library flags must be 16 bits */
unsigned tasktype : 1; /* task is either explicit(1) or implicit (0) */
>From b40dd81949a9649a5a85d700e04645182c2e6817 Mon Sep 17 00:00:00 2001
From: Ritanya B Bharadwaj <ritanya.b.bharadwaj at gmail.com>
Date: Sun, 29 Jun 2025 09:25:23 -0500
Subject: [PATCH 2/2] Reordering the flags in kmp.h based on review comments
---
openmp/runtime/src/kmp.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index 7a17b9f8550e9..f62cabee6ea84 100644
--- a/openmp/runtime/src/kmp.h
+++ b/openmp/runtime/src/kmp.h
@@ -2725,11 +2725,12 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
/* Same fields as in the #else branch, but in reverse order */
#if OMPX_TASKGRAPH
- unsigned reserved31 : 5;
+ unsigned reserved31 : 4;
unsigned onced : 1;
#else
- unsigned reserved31 : 6;
+ unsigned reserved31 : 5;
#endif
+ unsigned hidden_helper : 1;
unsigned target : 1;
unsigned native : 1;
unsigned freed : 1;
@@ -2740,9 +2741,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 free_agent_eligible : 1;
- unsigned reserved : 7;
- unsigned hidden_helper : 1;
unsigned detachable : 1;
unsigned priority_specified : 1;
unsigned proxy : 1;
@@ -2763,10 +2763,9 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
unsigned priority_specified : 1; /* set if the compiler provides priority
setting for the task */
unsigned detachable : 1; /* 1 == can detach */
- unsigned hidden_helper : 1; /* 1 == hidden helper task */
- unsigned reserved : 7; /* reserved for compiler use */
unsigned free_agent_eligible : 1; /* set if task can be executed by a
free-agent thread */
+ unsigned reserved : 8; /* reserved for compiler use */
/* Library flags */ /* Total library flags must be 16 bits */
unsigned tasktype : 1; /* task is either explicit(1) or implicit (0) */
@@ -2783,11 +2782,12 @@ typedef struct kmp_tasking_flags { /* Total struct must be exactly 32 bits */
unsigned freed : 1; /* 1==freed, 0==allocated */
unsigned native : 1; /* 1==gcc-compiled task, 0==intel */
unsigned target : 1;
+ unsigned hidden_helper : 1; /* 1 == hidden helper task */
#if OMPX_TASKGRAPH
unsigned onced : 1; /* 1==ran once already, 0==never ran, record & replay purposes */
- unsigned reserved31 : 5; /* reserved for library use */
+ unsigned reserved31 : 4; /* reserved for library use */
#else
- unsigned reserved31 : 6; /* reserved for library use */
+ unsigned reserved31 : 5; /* reserved for library use */
#endif
#endif
} kmp_tasking_flags_t;
More information about the Openmp-commits
mailing list