diff options
author | Guilherme Valarini <guilherme.a.valarini@gmail.com> | 2022-12-14 13:46:23 -0300 |
---|---|---|
committer | Guilherme Valarini <guilherme.a.valarini@gmail.com> | 2022-12-14 14:03:32 -0300 |
commit | 89c82c83949b2bea26ea574c88c1ceada399d7d8 (patch) | |
tree | e9433eb8136c978175ad48352202fd47d410ebf0 /llvm/lib/FileCheck/FileCheck.cpp | |
parent | 2afc90a2de37d4d6eefedf813ac0e26a492f58ad (diff) | |
download | llvm-89c82c83949b2bea26ea574c88c1ceada399d7d8.zip llvm-89c82c83949b2bea26ea574c88c1ceada399d7d8.tar.gz llvm-89c82c83949b2bea26ea574c88c1ceada399d7d8.tar.bz2 |
[OpenMP] Add non-blocking support for target nowait regions
This patch better integrates the target nowait functions with the tasking runtime. It splits the nowait execution into two stages: a dispatch stage, which triggers all the necessary asynchronous device operations and stores a set of post-processing procedures that must be executed after said ops; and a synchronization stage, responsible for synchronizing the previous operations in a non-blocking manner and running the appropriate post-processing functions. Suppose during the synchronization stage the operations are not completed. In that case, the attached hidden helper task is re-enqueued to any hidden helper thread to be later synchronized, allowing other target nowait regions to be concurrently dispatched.
Reviewed By: jdoerfert, tianshilei1992
Differential Revision: https://reviews.llvm.org/D132005
Diffstat (limited to 'llvm/lib/FileCheck/FileCheck.cpp')
0 files changed, 0 insertions, 0 deletions