On 2019/1/7 10:15 AM, Thomas Schwinge wrote:
Well, the "Properly handle wait clause with no arguments" changes still
need to be completed and go in first (to avoid introducing regressions),
and then I will have to see your whole set of changes that you intend to
commit: the bits you've incrementally posted still don't include several
of the changes I suggested and provided patches for (again, to avoid
introducing regressions).

I'll look at that state again.

But GCC now is in "regression and documentation fixes mode", so I fear
that it's too late now?

Maybe...I don't know.

--- oacc-async.c        (revision 267507)
+++ oacc-async.c        (working copy)
@@ -62,12 +158,10 @@ acc_wait (int async)
+  goacc_aq aq = lookup_goacc_asyncqueue (thr, true, async);
+  thr->dev->openacc.async.synchronize_func (aq);
Have to check the result here?  Like you're doing here, for example:

  acc_wait_async (int async1, int async2)
  {
+  if (!thr->dev->openacc.async.synchronize_func (aq1))
+    gomp_fatal ("wait on %d failed", async1);
+  if (!thr->dev->openacc.async.serialize_func (aq1, aq2))
+    gomp_fatal ("ordering of async ids %d and %d failed", async1, async2);
--- oacc-parallel.c     (revision 267507)
+++ oacc-parallel.c     (working copy)
@@ -521,17 +500,22 @@ goacc_wait (int async, int num_waits, va_list *ap)
        if (async == acc_async_sync)
-       acc_wait (qid);
+       acc_dev->openacc.async.synchronize_func (aq);
Likewise?

Oh okay, I forgot about those sites.


Also, I had to apply additional changes as attached, to make this build.


Oh I had those changes, but forgot to update the other patches. I'll resend 
those later too.

Thanks,
Chung-Lin

Reply via email to