]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
OpenACC: Fix pattern in dg-bogus in Fortran testcases again
authorTobias Burnus <tobias@codesourcery.com>
Mon, 26 Apr 2021 20:59:21 +0000 (22:59 +0200)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Mon, 10 May 2021 17:12:23 +0000 (10:12 -0700)
It turned out that a compiler built without offloading support
and one with can produce slightly different diagnostic.

Offloading support implies ENABLE_OFFLOAD which implies that
g->have_offload is set when offloading is actually needed.
In cgraphunit.c, the latter causes flag_generate_offload = 1,
which in turn affects tree.c's free_lang_data.

The result is that the front-end specific diagnostic gets reset
('tree_diagnostics_defaults (global_dc)'), which affects in this
case 'Warning' vs. 'warning' via the Fortran frontend.

Result: 'Warning:' vs. 'warning:'.
Side note: Other FE also override the diagnostic, leading to
similar differences, e.g. the C++ FE outputs mangled function
names differently, cf. patch thread.

libgomp/ChangeLog:

* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f:
Use [Ww]arning in dg-bogus as FE diagnostic and default
diagnostic differ and the result depends on ENABLE_OFFLOAD.
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-dims.f90: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.

gcc/testsuite/ChangeLog:

* gfortran.dg/goacc/classify-serial.f95:
Use [Ww]arning in dg-bogus as FE diagnostic and default
diagnostic differ and the result depends on ENABLE_OFFLOAD.
* gfortran.dg/goacc/kernels-decompose-2.f95: Likewise.
* gfortran.dg/goacc/routine-module-mod-1.f90: Likewise.

(cherry picked from commit bd7ebe9da745a62184052dd1b15f4dd10fbdc9f4)

gcc/testsuite/ChangeLog.omp
gcc/testsuite/gfortran.dg/goacc/classify-serial.f95
gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95
gcc/testsuite/gfortran.dg/goacc/routine-module-mod-1.f90
libgomp/ChangeLog.omp
libgomp/testsuite/libgomp.oacc-fortran/par-reduction-2-1.f
libgomp/testsuite/libgomp.oacc-fortran/par-reduction-2-2.f
libgomp/testsuite/libgomp.oacc-fortran/parallel-dims.f90
libgomp/testsuite/libgomp.oacc-fortran/parallel-reduction.f90

index c9dcd3f76fabd746af7cf7d7588344fbea0f99e9..58cf2f225c6dc73bdcc3f4e4480a6b7460ed3a10 100644 (file)
@@ -1,3 +1,14 @@
+2021-04-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       Backport from mainline
+       2021-04-26  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.dg/goacc/classify-serial.f95:
+       Use [Ww]arning in dg-bogus as FE diagnostic and default
+       diagnostic differ and the result depends on ENABLE_OFFLOAD.
+       * gfortran.dg/goacc/kernels-decompose-2.f95: Likewise.
+       * gfortran.dg/goacc/routine-module-mod-1.f90: Likewise.
+
 2021-04-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
        Backport from mainline
index 87c00cf19eac63424bdf020ac273bdc65e11d755..946f4a80c012cc67d6ea114270b054bdbb70c1dd 100644 (file)
@@ -18,9 +18,9 @@ program main
   call setup(a, b)
 
   !$acc serial loop copyin (a(0:n-1), b(0:n-1)) copyout (c(0:n-1)) ! { dg-message "optimized: assigned OpenACC gang vector loop parallelism" }
-  ! { dg-bogus "Warning: region contains gang partitioned code but is not gang partitioned" "TODO 'serial'" { xfail *-*-* } .-1 }
-  ! { dg-bogus "Warning: region contains worker partitioned code but is not worker partitioned" "" { target *-*-* } .-2 }
-  ! { dg-bogus "Warning: region contains vector partitioned code but is not vector partitioned" "TODO 'serial'" { xfail *-*-* } .-3 }
+  ! { dg-bogus "\[Ww\]arning: region contains gang partitioned code but is not gang partitioned" "TODO 'serial'" { xfail *-*-* } .-1 }
+  ! { dg-bogus "\[Ww\]arning: region contains worker partitioned code but is not worker partitioned" "" { target *-*-* } .-2 }
+  ! { dg-bogus "\[Ww\]arning: region contains vector partitioned code but is not vector partitioned" "TODO 'serial'" { xfail *-*-* } .-3 }
   do i = 0, n - 1
      c(i) = a(i) + b(i)
   end do
index 13bf99ecbde541a6c825f1573f4b19d4170062f1..c3e00283428b04d4b02dd2385e66eba44643a416 100644 (file)
@@ -121,7 +121,7 @@ program main
   !$acc end kernels
 
   !$acc kernels
-  ! { dg-bogus "Warning: region contains gang partitioned code but is not gang partitioned" "TODO 'kernels'" { xfail *-*-* } .-1 }
+  ! { dg-bogus "\[Ww\]arning: region contains gang partitioned code but is not gang partitioned" "TODO 'kernels'" { xfail *-*-* } .-1 }
   y = f_g (a(5)) ! { dg-line l_part[incr c_part] }
   !TODO If such a construct is placed in its own part (like it is, here), can't this actually use gang paralelism, instead of "gang-single"?
   ! { dg-message "note: beginning 'gang-single' part in OpenACC 'kernels' region" "" { target *-*-* } l_part$c_part }
index 351f618f479e9724df93f1544a0f1cd7d9312730..d773e8046b52fdd0b9584af6756843f37937a378 100644 (file)
@@ -56,7 +56,7 @@ contains
   subroutine g_1 ! { dg-warning "region is worker partitioned but does not contain worker partitioned code" }
     implicit none
     !$acc routine gang
-    ! { dg-bogus "Warning: region is worker partitioned but does not contain worker partitioned code" "TODO default 'gang' 'vector'" { xfail *-*-* } .-3 }
+    ! { dg-bogus "\[Ww\]arning: region is worker partitioned but does not contain worker partitioned code" "TODO default 'gang' 'vector'" { xfail *-*-* } .-3 }
 
     integer :: i
 
index df8a5d0ccbd69635d76babfd8d0c66a98cb9583b..b605e4b8fe7b4a918306b89b38dc9b8bbdd39755 100644 (file)
@@ -1,3 +1,15 @@
+2021-04-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       Backport from mainline
+       2021-04-26  Tobias Burnus  <tobias@codesourcery.com>
+
+       * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f:
+       Use [Ww]arning in dg-bogus as FE diagnostic and default
+       diagnostic differ and the result depends on ENABLE_OFFLOAD.
+       * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
+       * testsuite/libgomp.oacc-fortran/parallel-dims.f90: Likewise.
+       * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
+
 2021-04-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
        Backport from mainline
index baa472b3e87999173e2e8a3c2724e3113a8b5c33..1fe1b4711077b652849fc14a484b390850155ef0 100644 (file)
@@ -18,7 +18,7 @@
 
 !$ACC PARALLEL NUM_GANGS(256) NUM_WORKERS(32) VECTOR_LENGTH(32)
 !$ACC& REDUCTION(+:RES1) COPY(RES1, RES2) ASYNC(1)
-!     { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
+!     { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
 !     { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-2 }
 !     { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-3 }
       res1 = res1 + 5
@@ -43,7 +43,7 @@
 
 !$ACC PARALLEL NUM_GANGS(8) NUM_WORKERS(32) VECTOR_LENGTH(32)
 !$ACC& REDUCTION(*:RES1) COPY(RES1, RES2) ASYNC(1)
-!     { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
+!     { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
 !     { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-2 }
 !     { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-3 }
       res1 = res1 * 5
index 4ebab6c7b189eadde9c7c332c12e0b34326afcd1..0221ab812815fc86759354765b12e74e81e0a9d7 100644 (file)
@@ -18,7 +18,7 @@
 
 !$ACC PARALLEL NUM_GANGS(256) NUM_WORKERS(32) VECTOR_LENGTH(32)
 !$ACC& REDUCTION(+:RES1) COPY(RES1, RES2) ASYNC(1)
-!     { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
+!     { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
 !     { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-2 }
 !     { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-3 }
       res1 = res1 + 5
@@ -43,7 +43,7 @@
 
 !$ACC PARALLEL NUM_GANGS(8) NUM_WORKERS(32) VECTOR_LENGTH(32)
 !$ACC& REDUCTION(*:RES1) COPY(RES1, RES2) ASYNC(1)
-!     { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
+!     { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction', 'atomic'" { xfail *-*-* } .-1 }
 !     { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-2 }
 !     { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-3 }
       res1 = res1 * 5
index d98479693699aec0b376753d43b7d3039fa12eed..f69ab5a66429cf49b93a4312f2d1be8187944399 100644 (file)
@@ -87,9 +87,9 @@ program main
   vectors_max = -huge(gangs_max) - 1 ! INT_MIN
   !$acc serial copy (vectors_actual) &
   !$acc   copy (gangs_min, gangs_max, workers_min, workers_max, vectors_min, vectors_max) ! { dg-warning "using vector_length \\(32\\), ignoring 1" "" { target openacc_nvidia_accel_selected } }
-  ! { dg-bogus "Warning: region contains gang partitioned code but is not gang partitioned" "TODO 'serial'" { xfail *-*-* } .-1 }
-  ! { dg-bogus "Warning: region contains worker partitioned code but is not worker partitioned" "TODO 'serial'" { xfail *-*-* } .-2 }
-  ! { dg-bogus "Warning: region contains vector partitioned code but is not vector partitioned" "TODO 'serial'" { xfail *-*-* } .-3 }
+  ! { dg-bogus "\[Ww\]arning: region contains gang partitioned code but is not gang partitioned" "TODO 'serial'" { xfail *-*-* } .-1 }
+  ! { dg-bogus "\[Ww\]arning: region contains worker partitioned code but is not worker partitioned" "TODO 'serial'" { xfail *-*-* } .-2 }
+  ! { dg-bogus "\[Ww\]arning: region contains vector partitioned code but is not vector partitioned" "TODO 'serial'" { xfail *-*-* } .-3 }
   if (acc_on_device (acc_device_nvidia)) then
      ! The GCC nvptx back end enforces vector_length (32).
      ! It's unclear if that's actually permissible here;
index af25f0dac9b414ff32ad9e90a4ec59e4d6225a9d..99b1441136d6f1bde8f8131ecd2441789a3c1d9d 100644 (file)
@@ -13,7 +13,7 @@ program reduction
   s2 = 0
 
   !$acc parallel reduction(+:s1,s2) num_gangs (n) copy(s1)
-  ! { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-1 }
+  ! { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-1 }
   s1 = s1 + 1
   s2 = s2 + 1
   !$acc end parallel
@@ -44,7 +44,7 @@ subroutine redsub(s1, s2, n)
   integer :: s1, s2, n
 
   !$acc parallel reduction(+:s1,s2) num_gangs (10)  copy(s1)
-  ! { dg-bogus "Warning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-1 }
+  ! { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-1 }
   s1 = s1 + 1
   s2 = s2 + 1
   !$acc end parallel