public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Thomas Schwinge <thomas@codesourcery.com>
To: David Edelsohn <dje.gcc@gmail.com>
Cc: <gcc-patches@gcc.gnu.org>
Subject: Re: OpenACC 'kernels' testsuite failures
Date: Mon, 16 Nov 2020 17:46:36 +0100	[thread overview]
Message-ID: <87a6vhdzbn.fsf@euler.schwinge.homeip.net> (raw)
In-Reply-To: <CAGWvnykQgVu5Yup_rDynR_ZRKNVChAh_g2mf8CdjByAPj0sT8g@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4565 bytes --]

Hi David!

While you were writing your email, I've also been busy:

On 2020-11-16T11:32:46-0500, David Edelsohn <dje.gcc@gmail.com> wrote:
> On Mon, Nov 16, 2020 at 9:16 AM Thomas Schwinge <thomas@codesourcery.com> wrote:
>> On 2020-11-15T15:47:15-0500, David Edelsohn <dje.gcc@gmail.com> wrote:
>> > I am seeing a number of new failures on AIX related to the OpenACC
>> > kernels patches.
>> >
>> > c-c++-common/goacc/kernels-decompose-1.c
>> > c-c++-common/goacc/kernels-decompose-2.c
>> > gfortran.dg/goacc/kernels-decompose-1.f95
>> > gfortran.dg/goacc/kernels-decompose-2.f95
>> > libgomp.oacc-c++/../libgomp.oacc-c-c++-common/kernels-decompose-1.c
>> > libgomp.oacc-fortran/pr94358-1.f90
>>
>> I suppose what you're asking about is what appears in
>> <gcc-testresults@gcc.gnu.org> reports as:
>>
>>     ERROR: c-c++-common/goacc/kernels-decompose-1.c: can't read "c_loop_i": no such variable for " dg-line 24 l_loop_i[incr c_loop_i] "
>>     UNRESOLVED: c-c++-common/goacc/kernels-decompose-1.c: can't read "c_loop_i": no such variable for " dg-line 24 l_loop_i[incr c_loop_i] "
>>
>> Etc.

In the mean time, I did remember that weeks ago, I had noticed this
following "detail": on <https://www.tcl.tk/man/tcl8.5/TclCmd/incr.htm> we
read that "Starting with the Tcl 8.5 release, the variable 'varName'
passed to 'incr' may be unset, and in that case, it will be set to
[...]".  Tcl 8.5 has been released in 2007.

Per 'gcc/doc/install.texi' we require:

    @item DejaGnu 1.4.4
    @itemx Expect
    @itemx Tcl

    Necessary to run the GCC testsuite; [...]

DejaGnu has been released in 2004 (so cannot have required Tcl 8.5
released in 2007).

>> However, per the reports posted there, these really only (!) appear to
>> fail for your "Native configuration is powerpc-ibm-aix7.2.3.0" testing,
>> strange.  Which versions of DejaGnu and Tcl are used?
>
> For my internal tester DejaGNU reports the following:
>
> Expect version is 5.42.1
> Tcl version is 8.4
> Framework version is 1.5.3

There we go: you're on Tcl 8.4.  ;-D

>> On <https://cfarm.tetaneutral.net/machines/list/> I see there are AIX
>> systems gcc111, gcc119 -- maybe I'll have luck reproducing the issue
>> there.

On these, we've got:

    tschwinge@gcc111:[/home/tschwinge]/opt/freeware/bin/runtest --version
    WARNING: Couldn't find the global config file.
    Expect version is       5.45.4
    Tcl version is          8.6
    Framework version is    1.4.4

    tschwinge@gcc119:[/home/tschwinge]/opt/freeware/bin/runtest --version
    WARNING: Couldn't find the global config file.
    Expect version is       5.44.1.15
    Tcl version is          8.5
    Framework version is    1.5.3

..., so can't (easily) be used to reproduce the issue.  (... but it
wouldn't be specific to AIX, anyway.)

Before I spend time on building/verifying with Tcl 8.4: are you able to
give the attached patch "[testsuite] Avoid Tcl 8.5-specific behavior" a
try?


Grüße
 Thomas


>> Admittedly, using Tcl code inside DejaGnu directives is not most common,
>> but it does make sense conceptually (at least to me), and reportedly does
>> work with a large number of DejaGnu/Tcl versions combinations.
>>
>> > Looking at the testsuite logs I see:
>> >
>> > fatal error: GCC is not configured to support amdgcn-amdhsa as offload target
>>
>> That one's not actually related to the new OpenACC 'kernels' testcases:
>> it's just the testsuite harness checking whether GCN offloading is
>> configured.  (See <https://gcc.gnu.org/PR88920> "GCC is not configured to
>> support amdgcn-unknown-amdhsa as offload target"; this should one appear
>> once per testsuite.)
>>
>> > I don't know why this is different from the other OpenACC tests.
>>
>> It's not.  At least not intentionally.
>
> I don't see any obvious difference in the style of the additional
> options for the kernels testcases versus others, although it
> specifically is using an option for that test.  I only see the "GCC is
> not configured ... amdhsa" for those tests.
>
>>
>> > How
>> > should these tests be skipped or adjusted to not fail on other
>> > systems?
>>
>> They are expected to work fine on all systems; they're not specific to
>> actual code offloading.  So if something FAILs, we shall resolve it.
>
> Thanks, David


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-testsuite-Avoid-Tcl-8.5-specific-behavior.patch --]
[-- Type: text/x-diff, Size: 6025 bytes --]

From cde6156007fbf6376851d2343d8870a98998773d Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Mon, 16 Nov 2020 17:37:06 +0100
Subject: [PATCH] [testsuite] Avoid Tcl 8.5-specific behavior

---
 gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c    | 8 ++++++++
 gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c    | 8 ++++++++
 gcc/testsuite/gfortran.dg/goacc/kernels-decompose-1.f95   | 8 ++++++++
 gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95   | 8 ++++++++
 .../libgomp.oacc-c-c++-common/kernels-decompose-1.c       | 8 ++++++++
 libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90      | 8 ++++++++
 6 files changed, 48 insertions(+)

diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
index 92db33273eb..e906443cceb 100644
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
@@ -7,6 +7,14 @@
 
 /* See also '../../gfortran.dg/goacc/kernels-decompose-1.f95'.  */
 
+/* It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+   passed to 'incr' may be unset, and in that case, it will be set to [...]",
+   so to maintain compatibility with earlier Tcl releases, we manually
+   initialize counter variables:
+   { dg-line l_dummy[variable c_loop_i 0] }
+   { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+   "WARNING: dg-line var l_dummy defined, but not used".  */
+
 #define N 1024
 
 unsigned int a[N];
diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
index ec6c4af92aa..ec0f75c4a61 100644
--- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
+++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
@@ -6,6 +6,14 @@
 
 /* See also '../../gfortran.dg/goacc/kernels-decompose-2.f95'.  */
 
+/* It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+   passed to 'incr' may be unset, and in that case, it will be set to [...]",
+   so to maintain compatibility with earlier Tcl releases, we manually
+   initialize counter variables:
+   { dg-line l_dummy[variable c_loop_i 0 c_loop_j 0 c_loop_k 0 c_part 0] }
+   { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+   "WARNING: dg-line var l_dummy defined, but not used".  */
+
 #pragma acc routine gang
 extern int
 f_g (int);
diff --git a/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-1.f95 b/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-1.f95
index 95a78623ebf..7e513f84083 100644
--- a/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-1.f95
+++ b/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-1.f95
@@ -7,6 +7,14 @@
 
 ! See also '../../c-c++-common/goacc/kernels-decompose-1.c'.
 
+! It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+! passed to 'incr' may be unset, and in that case, it will be set to [...]",
+! so to maintain compatibility with earlier Tcl releases, we manually
+! initialize counter variables:
+! { dg-line l_dummy[variable c_loop_i 0] }
+! { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+! "WARNING: dg-line var l_dummy defined, but not used".
+
 program main
   implicit none
   integer, parameter         :: N = 1024
diff --git a/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95 b/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95
index 58d687d4a0c..22f65e5c694 100644
--- a/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95
+++ b/gcc/testsuite/gfortran.dg/goacc/kernels-decompose-2.f95
@@ -6,6 +6,14 @@
 
 ! See also '../../c-c++-common/goacc/kernels-decompose-2.c'.
 
+! It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+! passed to 'incr' may be unset, and in that case, it will be set to [...]",
+! so to maintain compatibility with earlier Tcl releases, we manually
+! initialize counter variables:
+! { dg-line l_dummy[variable c_loop_i 0 c_loop_j 0 c_loop_k 0 c_part 0] }
+! { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+! "WARNING: dg-line var l_dummy defined, but not used".
+
 program main
   implicit none
 
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c
index fa8ae6c79cd..e76e4099f3a 100644
--- a/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c
@@ -3,6 +3,14 @@
 /* { dg-additional-options "-fopt-info-omp-all" } */
 /* { dg-additional-options "-fopenacc-kernels=decompose" } */
 
+/* It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+   passed to 'incr' may be unset, and in that case, it will be set to [...]",
+   so to maintain compatibility with earlier Tcl releases, we manually
+   initialize counter variables:
+   { dg-line l_dummy[variable c_loop_i 0] }
+   { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+   "WARNING: dg-line var l_dummy defined, but not used".  */
+
 #undef NDEBUG
 #include <assert.h>
 
diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
index 82d8351f0e3..99a70418a4d 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
@@ -2,6 +2,14 @@
 ! { dg-additional-options "-fopt-info-omp-all" }
 ! { dg-additional-options "-fopenacc-kernels=decompose" }
 
+! It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
+! passed to 'incr' may be unset, and in that case, it will be set to [...]",
+! so to maintain compatibility with earlier Tcl releases, we manually
+! initialize counter variables:
+! { dg-line l_dummy[variable c_loop_i 0] }
+! { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
+! "WARNING: dg-line var l_dummy defined, but not used".
+
 subroutine kernel(lo, hi, a, b, c)
   implicit none
   integer :: lo, hi, i
-- 
2.17.1


  reply	other threads:[~2020-11-16 16:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15 20:47 David Edelsohn
2020-11-16 14:16 ` Thomas Schwinge
2020-11-16 16:32   ` David Edelsohn
2020-11-16 16:46     ` Thomas Schwinge [this message]
2020-11-17 15:03       ` David Edelsohn
2020-11-18  1:18         ` David Edelsohn
2020-11-21 15:50           ` David Edelsohn
2020-11-24 10:19             ` Thomas Schwinge
2020-11-24 20:29               ` David Edelsohn
2020-11-27 14:15                 ` Thomas Schwinge
2020-11-27 15:47                   ` David Edelsohn
2020-11-27 16:01                     ` Thomas Schwinge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a6vhdzbn.fsf@euler.schwinge.homeip.net \
    --to=thomas@codesourcery.com \
    --cc=dje.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).