aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2020-06-25 07:40:53 -0700
committerJulian Brown <julian@codesourcery.com>2020-09-08 13:26:42 -0700
commitd6d9be7c6be1b88f844a49d51302d34efd919a23 (patch)
treeaf52281e8e9175a64c4e7fdaff85048d49bf407d /libgomp
parent488e33339e6dea3262a11307592e9aad87a97c8d (diff)
downloadgcc-d6d9be7c6be1b88f844a49d51302d34efd919a23.zip
gcc-d6d9be7c6be1b88f844a49d51302d34efd919a23.tar.gz
gcc-d6d9be7c6be1b88f844a49d51302d34efd919a23.tar.bz2
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-09-08 Julian Brown <julian@codesourcery.com> libgomp/ * testsuite/libgomp.oacc-fortran/collapse-1.f90: Fix race condition. * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f903
-rw-r--r--libgomp/testsuite/libgomp.oacc-fortran/collapse-2.f903
2 files changed, 6 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/collapse-1.f90
index 918c5d0..4857752 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 98b6987..0a54390 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