From 3148672485fa5dbe0c89475990d6730c47f45f2e Mon Sep 17 00:00:00 2001 From: Julian Brown Date: Thu, 25 Jun 2020 07:40:53 -0700 Subject: [PATCH] openacc: Fix race condition in Fortran loop collapse tests The gangs participating in a gang-partitioned loop are not all guaranteed to complete before some given gang continues to execute beyond that loop. This means that two existing test cases contain a race condition, because a loop that may be gang-partitioned is followed immediately by another loop. The fix is to place the loops in separate parallel regions. 2020-07-15 Julian Brown libgomp/ * testsuite/libgomp.oacc-fortran/collapse-1.f90: Fix race condition. * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise. --- libgomp/ChangeLog.omp | 5 +++++ libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 | 3 +++ libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f90 | 3 +++ 3 files changed, 11 insertions(+) diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp index 55ea30fb60a1..c5df8200935e 100644 --- a/libgomp/ChangeLog.omp +++ b/libgomp/ChangeLog.omp @@ -1,3 +1,8 @@ +2020-07-15 Julian Brown + + * testsuite/libgomp.oacc-fortran/collapse-1.f90: Fix race condition. + * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise. + 2020-07-15 Tobias Burnus Backport from mainline diff --git a/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 index 918c5d0d5b1c..4857752f1b0a 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 @@ -14,6 +14,9 @@ program collapse1 end do end do end do + !$acc end parallel + + !$acc parallel !$acc loop collapse(2) reduction(.or.:l) do i = 1, 3 do j = 4, 6 diff --git a/libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f90 index 98b6987750ec..0a543909127e 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f90 @@ -13,6 +13,9 @@ program collapse2 do 164 k = 5, 7 a(i, j, k) = i + j + k 164 end do + !$acc end parallel + + !$acc parallel !$acc loop collapse(2) reduction(.or.:l) firstdo: do i = 1, 3 do j = 4, 6 -- 2.47.2