diff options
| author | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2024-05-07 08:41:51 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-07 08:41:51 -0500 |
| commit | 41ca9104ac1e0bf248d4082f45c5ad03ddd55727 (patch) | |
| tree | 60565343107ec5893bf5530aaf5ff82311777930 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 1d87465a0a95cee9accc5dce7abdabbbc3f3c122 (diff) | |
[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
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
