| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[OpenMP] Fix task state and taskteams for serial teams (#86859) * Serial teams now use a stack (similar to dispatch buffers) * Serial teams always use t_task_team[0] as the task team and the second pointer is a next pointer for the stack t_task_team[1] is interpreted as a stack of task teams where each level is a nested level inner serial team outer serial team [ t_task_team[0] ] -> (task_team) [ t_task_team[0] ] -> (task_team) [ next ] ----------------> [ next ] -> ... * Remove the task state memo stack from thread structure. * Instead of a thread-private stack, use team structure to store th_task_state of the primary thread. When coming out of a parallel, restore the primary thread's task state. The new field in the team structure doesn't cause sizeof(team) to change and is in the cache line which is only read/written by the primary thread. Fixes: #50602 Fixes: #69368 Fixes: #69733 Fixes: #79416 | 2 年前 | |
[OpenMP] [test] Fix target_thread_limit.cpp to not assume 4 or more cores Previously, the test ran a section with #pragma omp target thread_limit(4) and expected it to execute exactly 4 times, even though it would in practice execute min(cores, 4) times. Increment a counter and check that it executed 1-4 times. Differential Revision: https://reviews.llvm.org/D159311 | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 |