Hi! On Thu, 21 Jan 2016 22:54:26 +0100, I wrote: > Committed to gomp-4_0-branch in r232709: > > commit 41a76d233e714fd7b79dc1f40823f607c38306ba > Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> > Date: Thu Jan 21 21:52:50 2016 +0000 > > Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid > offloading"
> +! The warning is only triggered for -O2 and higher. > +! { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" > } } > +!$ACC KERNELS /* { dg-warning "OpenACC kernels construct will be executed > sequentially; will by default avoid offloading to prevent data copy penalty" > "" { target openacc_nvidia_accel_selected } } */ That can actually be done in a better way, so that we match up exactly when and where the diagnostic appears, and where not; pushed the attached to openacc-gcc-8-branch in commit dfae8e0dab1edfc8d8207eafd1b694c4e1fcd680 'Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading": better method for XFAILing specific cases'. Grüße Thomas
>From dfae8e0dab1edfc8d8207eafd1b694c4e1fcd680 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 29 Jan 2019 20:42:13 +0100 Subject: [PATCH] Un-parallelized OpenACC kernels constructs with nvptx offloading: "avoid offloading": better method for XFAILing specific cases gcc/testsuite/ * lib/target-supports.exp (check_effective_target_opt_levels_2_plus) (check_effective_target_opt_levels_size): New. libgomp/ * testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c: Update. * testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c: Likewise. * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/avoid-offloading-1.f: Likewise. * testsuite/libgomp.oacc-fortran/avoid-offloading-2.f: Likewise. * testsuite/libgomp.oacc-fortran/deviceptr-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95: Likewise. * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise. --- gcc/testsuite/ChangeLog.openacc | 6 ++++ gcc/testsuite/lib/target-supports.exp | 10 ++++++ libgomp/ChangeLog.openacc | 31 +++++++++++++++++++ .../avoid-offloading-1.c | 5 +-- .../avoid-offloading-2.c | 5 +-- .../combined-directives-1.c | 10 +++--- .../kernels-parallel-loop-data-enter-exit.c | 8 ++--- .../libgomp.oacc-fortran/asyncwait-1.f90 | 9 ++---- .../libgomp.oacc-fortran/avoid-offloading-1.f | 4 +-- .../libgomp.oacc-fortran/avoid-offloading-2.f | 4 +-- .../libgomp.oacc-fortran/deviceptr-1.f90 | 7 ++--- .../initialize_kernels_loops.f90 | 5 +-- .../libgomp.oacc-fortran/kernels-loop-2.f95 | 9 ++---- .../kernels-loop-data-2.f95 | 9 ++---- .../kernels-loop-data-enter-exit-2.f95 | 9 ++---- .../kernels-loop-data-enter-exit.f95 | 9 ++---- .../kernels-loop-data-update.f95 | 7 ++--- .../kernels-loop-data.f95 | 9 ++---- .../libgomp.oacc-fortran/kernels-loop.f95 | 5 +-- .../kernels-parallel-loop-data-enter-exit.f95 | 7 ++--- .../libgomp.oacc-fortran/non-scalar-data.f90 | 7 ++--- 21 files changed, 86 insertions(+), 89 deletions(-) diff --git a/gcc/testsuite/ChangeLog.openacc b/gcc/testsuite/ChangeLog.openacc index 41913f7fa02..2479367dce4 100644 --- a/gcc/testsuite/ChangeLog.openacc +++ b/gcc/testsuite/ChangeLog.openacc @@ -1,3 +1,9 @@ +2019-01-31 Thomas Schwinge <tho...@codesourcery.com> + + * lib/target-supports.exp + (check_effective_target_opt_levels_2_plus) + (check_effective_target_opt_levels_size): New. + 2019-01-31 Julian Brown <jul...@codesourcery.com> * c-c++-common/goacc/deep-copy-arrayofstruct.c: New test. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index cfc22a22975..206bb2a2b11 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -9326,3 +9326,13 @@ proc check_effective_target_cet { } { } } "-O2" ] } + +# Return 1 if we have optimization level -O2 or higher. +proc check_effective_target_opt_levels_2_plus { } { + return [check-flags [list "" { *-*-* } { "-O*" } { "-O0" "-Og" "-O" "-O1" }]]; +} + +# Return 1 if we have optimization level -Os. +proc check_effective_target_opt_levels_size { } { + return [check-flags [list "" { *-*-* } { "-Os" } { "" }]]; +} diff --git a/libgomp/ChangeLog.openacc b/libgomp/ChangeLog.openacc index e638c259cba..d558f0df97b 100644 --- a/libgomp/ChangeLog.openacc +++ b/libgomp/ChangeLog.openacc @@ -1,3 +1,34 @@ +2019-01-31 Thomas Schwinge <tho...@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c: + Update. + * testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c: + Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/avoid-offloading-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/avoid-offloading-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/deviceptr-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise. + * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise. + 2019-01-31 Julian Brown <jul...@codesourcery.com> * testsuite/libgomp.oacc-c++/deep-copy-12.C: New test. diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c index d5fff2d7d8a..72b9ce0ce02 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-1.c @@ -1,8 +1,5 @@ /* Test that the compiler decides to "avoid offloading". */ -/* The warning is only triggered for -O2 and higher. - { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } */ - #include <openacc.h> int main(void) @@ -10,7 +7,7 @@ int main(void) int x, y; #pragma acc data copyout(x, y) -#pragma acc kernels /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target openacc_nvidia_accel_selected } } */ +#pragma acc kernels /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target { openacc_nvidia_accel_selected && opt_levels_2_plus } } } */ *((volatile int *) &x) = 33, y = acc_on_device (acc_device_host); if (x != 33) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c index 41bd6d55f26..9e05d84d792 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/avoid-offloading-2.c @@ -1,9 +1,6 @@ /* Test that a user can override the compiler's "avoid offloading" decision. */ -/* The warning is only triggered for -O2 and higher. - { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } */ - #include <openacc.h> int main(void) @@ -22,7 +19,7 @@ int main(void) int x, y; #pragma acc data copyout(x, y) -#pragma acc kernels /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target openacc_nvidia_accel_selected } } */ +#pragma acc kernels /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target { openacc_nvidia_accel_selected && opt_levels_2_plus } } } */ *((volatile int *) &x) = 33, y = acc_on_device (acc_device_host); if (x != 33) diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c index c6abc1d724a..a54ade363a6 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c @@ -1,11 +1,6 @@ /* This test exercises combined directives. */ -/* This test falls back to host execution because struct alias - analysis is deactivated on OpenACC parallel regions. Consequently, - parloops can no longer disambiguate arrays a and b. */ - /* { dg-do run } */ -/* { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O2" } { "" } } */ #include <stdlib.h> @@ -38,7 +33,10 @@ main (int argc, char **argv) abort (); } -#pragma acc kernels loop copy (a[0:N]) copy (b[0:N]) +#pragma acc kernels loop copy (a[0:N]) copy (b[0:N]) /* { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "TODO" { xfail { openacc_nvidia_accel_selected && opt_levels_2_plus } } } + This runs into "avoid offloading" because struct alias analysis is + deactivated on OpenACC parallel regions. Consequently, parloops can no + longer disambiguate arrays a and b. */ for (i = 0; i < N; i++) { b[i] = 3.0; diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c index 8cafbc974c9..374014a1e86 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c @@ -1,7 +1,3 @@ -/* FIXME: OpenACC kernels stopped working with the firstprivate subarray - changes. */ -/* { dg-prune-output "OpenACC kernels construct will be executed sequentially" } */ - #include <stdlib.h> #define N (1024 * 512) @@ -33,7 +29,9 @@ main (void) b[i] = i * 4; } -#pragma acc kernels present (a[0:N], b[0:N], c[0:N]) +#pragma acc kernels present (a[0:N], b[0:N], c[0:N]) /* { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "TODO" { xfail { openacc_nvidia_accel_selected && opt_levels_2_plus } } } + FIXME: OpenACC kernels stopped working with the firstprivate subarray + changes. */ { for (COUNTERTYPE ii = 0; ii < N; ii++) c[ii] = a[ii] + b[ii]; diff --git a/libgomp/testsuite/libgomp.oacc-fortran/asyncwait-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/asyncwait-1.f90 index f024c1cbe51..ba6809dba7d 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/asyncwait-1.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/asyncwait-1.f90 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program asyncwait integer, parameter :: N = 64 @@ -183,13 +180,13 @@ program asyncwait !$acc data copy (a(1:N)) copy (b(1:N)) copy (c(1:N)) copy (d(1:N)) - !$acc kernels async (1) + !$acc kernels async (1) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, N b(i) = (a(i) * a(i) * a(i)) / a(i) end do !$acc end kernels - !$acc kernels async (1) + !$acc kernels async (1) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, N c(i) = (a(i) * 4) / a(i) end do @@ -220,7 +217,7 @@ program asyncwait !$acc data copy (a(1:N), b(1:N), c(1:N), d(1:N), e(1:N)) - !$acc kernels async (1) + !$acc kernels async (1) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, N b(i) = (a(i) * a(i) * a(i)) / a(i) end do diff --git a/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-1.f b/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-1.f index da89b93fd54..fb14be19d8d 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-1.f +++ b/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-1.f @@ -2,8 +2,6 @@ ! { dg-do run } ! { dg-additional-options "-cpp" } -! The warning is only triggered for -O2 and higher. -! { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } ! As __OPTIMIZE__ is defined for -O1 and higher, we don't have an (easy) way to ! distinguish -O1 (where we will offload) from -O2 (where we won't offload), so ! for -O1 testing, we expect to abort. @@ -16,7 +14,7 @@ LOGICAL :: Y !$ACC DATA COPYOUT(X, Y) -!$ACC KERNELS /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target openacc_nvidia_accel_selected } } */ +!$ACC KERNELS ! { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target { openacc_nvidia_accel_selected && opt_levels_2_plus } } } X = 33 Y = ACC_ON_DEVICE (ACC_DEVICE_HOST); !$ACC END KERNELS diff --git a/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-2.f b/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-2.f index db72602fb1e..5a064618e51 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-2.f +++ b/libgomp/testsuite/libgomp.oacc-fortran/avoid-offloading-2.f @@ -2,8 +2,6 @@ ! { dg-do run } ! { dg-additional-options "-cpp" } -! The warning is only triggered for -O2 and higher. -! { dg-xfail-if "n/a" { openacc_nvidia_accel_selected } { "-O0" "-O1" } { "" } } IMPLICIT NONE INCLUDE "openacc_lib.h" @@ -23,7 +21,7 @@ CALL ACC_INIT (D) !$ACC DATA COPYOUT(X, Y) -!$ACC KERNELS /* { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target openacc_nvidia_accel_selected } } */ +!$ACC KERNELS ! { dg-warning "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "" { target { openacc_nvidia_accel_selected && opt_levels_2_plus } } } X = 33 Y = ACC_ON_DEVICE (ACC_DEVICE_HOST) !$ACC END KERNELS diff --git a/libgomp/testsuite/libgomp.oacc-fortran/deviceptr-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/deviceptr-1.f90 index 73838510ea4..418bceac3b9 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/deviceptr-1.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/deviceptr-1.f90 @@ -3,9 +3,6 @@ ! the deviceptr variable is implied. ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } subroutine subr1 (a, b) implicit none @@ -52,7 +49,7 @@ subroutine subr3 (a, b) integer :: b(N) integer :: i = 0 - !$acc kernels copy (b) + !$acc kernels copy (b) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, N a(i) = i * 8 b(i) = a(i) @@ -84,7 +81,7 @@ subroutine subr5 (a, b) integer :: b(N) integer :: i = 0 - !$acc kernels deviceptr (a) copy (b) + !$acc kernels deviceptr (a) copy (b) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, N a(i) = i * 32 b(i) = a(i) diff --git a/libgomp/testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90 b/libgomp/testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90 index 6d1713157b7..8eb02b88d25 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/initialize_kernels_loops.f90 @@ -1,14 +1,11 @@ ! { dg-do run } -!TODO -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "*" } { "-O0" "-O1" } } subroutine kernel(lo, hi, a, b, c) implicit none integer :: lo, hi, i real, dimension(lo:hi) :: a, b, c -!$acc kernels +!$acc kernels ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "TODO" { xfail { openacc_nvidia_accel_selected && opt_levels_2_plus } } } !$acc loop independent do i = lo, hi b(i) = a(i) diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-2.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-2.f95 index af491d053e6..8becc159dd1 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-2.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-2.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -11,7 +8,7 @@ program main ! Parallelism dimensions: compiler/runtime decides. !$acc kernels copyout (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels @@ -20,7 +17,7 @@ program main !$acc kernels copyout (b(0:n-1)) & !$acc num_gangs (3 + a(3)) num_workers (5 + a(5)) vector_length (7 + a(7)) ! { dg-prune-output "using vector_length \\(32\\), ignoring runtime setting" } - do i = 0, n -1 + do i = 0, n -1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } b(i) = i * 4 end do !$acc end kernels @@ -29,7 +26,7 @@ program main !$acc kernels copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) & !$acc num_gangs (3) num_workers (5) vector_length (7) ! { dg-prune-output "using vector_length \\(32\\), ignoring 7" } - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95 index ca1ac70cd9e..2191ebedee3 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -11,7 +8,7 @@ program main !$acc data copyout (a(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels @@ -19,7 +16,7 @@ program main !$acc data copyout (b(0:n-1)) !$acc kernels present (b(0:n-1)) - do i = 0, n -1 + do i = 0, n -1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } b(i) = i * 4 end do !$acc end kernels @@ -27,7 +24,7 @@ program main !$acc data copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95 index 5103f3ede04..75fb8a32beb 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -11,7 +8,7 @@ program main !$acc enter data create (a(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels @@ -19,7 +16,7 @@ program main !$acc enter data create (b(0:n-1)) !$acc kernels present (b(0:n-1)) - do i = 0, n -1 + do i = 0, n -1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } b(i) = i * 4 end do !$acc end kernels @@ -27,7 +24,7 @@ program main !$acc enter data copyin (a(0:n-1), b(0:n-1)) create (c(0:n-1)) !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95 index 5c1fd52c956..8ea34bf7bf8 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -12,19 +9,19 @@ program main !$acc enter data create (a(0:n-1), b(0:n-1), c(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels !$acc kernels present (b(0:n-1)) - do i = 0, n -1 + do i = 0, n -1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } b(i) = i * 4 end do !$acc end kernels !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95 index 3f889a41a0f..710068a707a 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -12,7 +9,7 @@ program main !$acc enter data create (a(0:n-1), b(0:n-1), c(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels @@ -24,7 +21,7 @@ program main !$acc update device (b(0:n-1)) !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data.f95 index e495663a72e..c1dec2c89c5 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop-data.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -12,19 +9,19 @@ program main !$acc data copyout (a(0:n-1), b(0:n-1), c(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels !$acc kernels present (b(0:n-1)) - do i = 0, n -1 + do i = 0, n -1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } b(i) = i * 4 end do !$acc end kernels !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop.f95 index 7377ed8780a..c9d3c4adc95 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-loop.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -18,7 +15,7 @@ program main end do !$acc kernels copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95 b/libgomp/testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95 index 8685275046b..99300ec88b1 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95 +++ b/libgomp/testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95 @@ -1,7 +1,4 @@ ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -12,7 +9,7 @@ program main !$acc enter data create (a(0:n-1), b(0:n-1), c(0:n-1)) !$acc kernels present (a(0:n-1)) - do i = 0, n - 1 + do i = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } a(i) = i * 2 end do !$acc end kernels @@ -25,7 +22,7 @@ program main !$acc end parallel !$acc kernels present (a(0:n-1), b(0:n-1), c(0:n-1)) - do ii = 0, n - 1 + do ii = 0, n - 1 ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } c(ii) = a(ii) + b(ii) end do !$acc end kernels diff --git a/libgomp/testsuite/libgomp.oacc-fortran/non-scalar-data.f90 b/libgomp/testsuite/libgomp.oacc-fortran/non-scalar-data.f90 index 99bd69207b6..f037b9ac9fd 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/non-scalar-data.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/non-scalar-data.f90 @@ -3,9 +3,6 @@ ! present. ! { dg-do run } -! TODO, <https://gcc.gnu.org/PR80995>. -! warning: OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty -! { dg-xfail-if "TODO" { openacc_nvidia_accel_selected } { "-Os" } { "" } } program main implicit none @@ -54,7 +51,7 @@ subroutine kernels (array, n) integer, dimension (n) :: array integer :: n, i - !$acc kernels + !$acc kernels ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, n array(i) = i end do @@ -65,7 +62,7 @@ subroutine kernels_default_present (array, n) integer, dimension (n) :: array integer :: n, i - !$acc kernels default(present) + !$acc kernels default(present) ! { dg-bogus "OpenACC kernels construct will be executed sequentially; will by default avoid offloading to prevent data copy penalty" "PR80995" { xfail { openacc_nvidia_accel_selected && opt_levels_size } } } do i = 1, n array(i) = i+1 end do -- 2.17.1