[Openmp-commits] [PATCH] D31071: GOMP compatibility: add missing OMP4.0 taskdeps handling code
Paul Osmialowski via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Thu Mar 23 08:15:43 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL298605: GOMP compatibility: add missing OpenMP4.0 task deps handling code (authored by pawosm01).
Changed prior to commit:
https://reviews.llvm.org/D31071?vs=92784&id=92800#toc
Repository:
rL LLVM
https://reviews.llvm.org/D31071
Files:
openmp/trunk/runtime/src/kmp_gsupport.cpp
Index: openmp/trunk/runtime/src/kmp_gsupport.cpp
===================================================================
--- openmp/trunk/runtime/src/kmp_gsupport.cpp
+++ openmp/trunk/runtime/src/kmp_gsupport.cpp
@@ -918,7 +918,11 @@
void
xexpand(KMP_API_NAME_GOMP_TASK)(void (*func)(void *), void *data, void (*copy_func)(void *, void *),
- long arg_size, long arg_align, bool if_cond, unsigned gomp_flags)
+ long arg_size, long arg_align, bool if_cond, unsigned gomp_flags
+#if OMP_40_ENABLED
+ , void **depend
+#endif
+)
{
MKLOC(loc, "GOMP_task");
int gtid = __kmp_entry_gtid();
@@ -962,6 +966,23 @@
}
if (if_cond) {
+#if OMP_40_ENABLED
+ if (gomp_flags & 8) {
+ KMP_ASSERT(depend);
+ const size_t ndeps = (kmp_intptr_t)depend[0];
+ const size_t nout = (kmp_intptr_t)depend[1];
+ kmp_depend_info_t dep_list[ndeps];
+
+ for (size_t i = 0U; i < ndeps; i++) {
+ dep_list[i].base_addr = (kmp_intptr_t)depend[2U + i];
+ dep_list[i].len = 0U;
+ dep_list[i].flags.in = 1;
+ dep_list[i].flags.out = (i < nout);
+ }
+ __kmpc_omp_task_with_deps(&loc, gtid, task, ndeps, dep_list, 0, NULL);
+ }
+ else
+#endif
__kmpc_omp_task(&loc, gtid, task);
}
else {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31071.92800.patch
Type: text/x-patch
Size: 1349 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20170323/4dfb1916/attachment.bin>
More information about the Openmp-commits
mailing list