[Openmp-commits] [openmp] [OpenMP] OpenMP ThreadSet clause - basic runtime (PR #144409)
via Openmp-commits
openmp-commits at lists.llvm.org
Tue Jun 17 11:01:29 PDT 2025
================
@@ -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
----------------
jprotze wrote:
```
/* Compiler flags */ /* Total compiler flags must be 16 bits */
unsigned tiedness : 1; /* 0: task is either tied (1) or untied (0) */
unsigned final : 1; /* 1: task is final(1) so execute immediately */
unsigned merged_if0 : 1; /* 2: no __kmpc_task_{begin/complete}_if0 calls in if0
code path */
unsigned destructors_thunk : 1; /* 3: set if the compiler creates a thunk to
invoke destructors from the runtime */
unsigned proxy : 1; /* 4:task is a proxy task (it will be executed outside the
context of the RTL) */
unsigned priority_specified : 1; /* 5: set if the compiler provides priority
setting for the task */
unsigned detachable : 1; /* 6: 1 == can detach */
unsigned free_agent_eligible : 1; /* 7: 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) */
unsigned task_serial : 1; // task is executed immediately (1) or deferred (0)
unsigned tasking_ser : 1; // all tasks in team are either executed immediately
// (1) or may be deferred (0)
unsigned team_serial : 1; // entire team is serial (1) [1 thread] or parallel
// (0) [>= 2 threads]
/* If either team_serial or tasking_ser is set, task team may be NULL */
/* Task State Flags: */
unsigned started : 1; /* 1==started, 0==not started */
unsigned executing : 1; /* 1==executing, 0==not executing */
unsigned complete : 1; /* 1==complete, 0==not complete */
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 : 4; /* reserved for library use */
#else
unsigned reserved31 : 5; /* reserved for library use */
#endif```
https://github.com/llvm/llvm-project/pull/144409
More information about the Openmp-commits
mailing list