[Openmp-commits] [PATCH] D77609: [OpenMP][WIP] Added the support for unshackled task in RTL

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue Aug 25 13:16:45 PDT 2020

tianshilei1992 added inline comments.

Comment at: openmp/runtime/src/kmp_tasking.cpp:965
       __kmp_release_deps(gtid, taskdata);
     } else if (task_team && task_team->tt.tt_found_proxy_tasks) {
adurang wrote:
> Calling release_deps from the unshackle thread will result in the tasks being released from the graph to be queued in the unshackle thread and not the original team which is wrong. You'd need to use here the original gtid but I'm not sure of the consequences of 'impersonating' a thread in that code ptah.
I see the problem here. Will figure out a way to fix it.

Comment at: openmp/runtime/src/kmp_tasking.cpp:3771
+  if (task_team)
+    while (KMP_ATOMIC_LD_ACQ(&task_team->tt.tt_unfinished_unshackled_tasks))
+      ;
adurang wrote:
> It seems to me that this is forcing any taskwait (and possibly taskgroup) to wait for any outstanding "async target" that exist on the team irrespectively of being a part of that synchronization domain or not. 
Not any async target. Only those created in the team.

  rG LLVM Github Monorepo



More information about the Openmp-commits mailing list