[Openmp-commits] [openmp] [clang][OpenMP] OpenMP ThreadSet clause - basic runtime (PR #144409)

via Openmp-commits openmp-commits at lists.llvm.org
Mon Jun 16 11:31:44 PDT 2025


https://github.com/Ritanya-B-Bharadwaj created https://github.com/llvm/llvm-project/pull/144409

Initial runtime support for threadset clause in task and taskloop directives [Section 14.8 in in OpenMP 6.0 spec]

Frontend PR- https://github.com/llvm/llvm-project/pull/135807

>From 54f386034649669310100c834dbf9c1e66d1b95f 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] [clang][OpenMP] OpenMP ThreadSet clause - basic runtime

---
 openmp/runtime/src/kmp.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h
index a2cacc8792b15..88462486c8dd0 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 reserved : 7;
+  unsigned free_agent_eligible : 1;
   unsigned hidden_helper : 1;
   unsigned detachable : 1;
   unsigned priority_specified : 1;
@@ -2763,7 +2764,8 @@ 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 free_agent_eligible : 1; /* set if task can be executed by a free-agent thread */
+  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