Message ID | 20181219142839.GA5247@delia |
---|---|
State | New |
Headers | show |
Series | [committed,nvptx,libgomp] Move rtl-dump test-cases to libgomp | expand |
Hi! On Wed, 19 Dec 2018 15:28:41 +0100, Tom de Vries <tdevries@suse.de> wrote: > The goacc.exp test-cases nvptx-merged-loop.c and nvptx-sese-1.c are failing > during linking due to missing libgomp.spec. Right; see also <http://mid.mail-archive.com/87bnalrwdl.fsf@kepler.schwinge.homeip.net>, from three years ago. ;-) > Move them to the libgomp testsuite. > > Build and reg-tested on x86_64 with nvptx accelerator. > > Committed to trunk. ACK, thanks. > diff --git a/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c > similarity index 59% > rename from gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c > rename to libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c > index 3ff537c1d97..8a2117e1624 100644 > --- a/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c > +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c > @@ -1,6 +1,6 @@ > -/* { dg-do link } */ > -/* { dg-require-effective-target offload_nvptx } */ > -/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-merged-loop.c\\ -Wa,--no-verify" } */ > +/* { dg-do run { target openacc_nvidia_accel_selected } } */ > +/* { dg-options "-foffload=-fdump-rtl-mach" } */ > +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ > [...] > -/* { dg-final { scan-rtl-dump "Merging loop .* into " "mach" } } */ > +/* { dg-final { scan-offload-rtl-dump "Merging loop .* into " "mach" } } */ There is however still a problem here: if you have more than one offload compiler configured, all of them will react to '-foffload=-fdump-rtl-mach', and will overwrite their dump files, or if different compiler passes configured, that may produce more than one "mach" dump file, all this resulting in "funny" testing FAILs/ERRORs. But: we can't just use '-foffload=[nvptx]=-fdump-rtl-mach', because '[nvptx]' can be 'nvptx', or 'nvptx-none', etc. Similar problem for a lot of other test cases that you've recently added (... but thanks for all these, of course!). And, "dg-require-effective-target offload_nvptx" is now obsolete, and should be removed. All this I'm addressing in the commits I've just done, see attached: - r269106 "[libgomp] In OpenACC offloading testing, be more explicit in what is supported, and what is not, or why not" - r269107 "[libgomp] Clarify difference between offload target, offload plugin, and OpenACC device type" - r269108 "[libgomp] In OpenACC testing, cycle though all offload targets" - r269109 "[libgomp] In OpenACC testing, by default only build for the offload target that we're actually going to test" - r269110 "Remove unused check_effective_target_offload_nvptx" These libgomp changes improves testing time, as discussed before, and clean up the test log as follows: UNSUPPORTED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-merged-loop.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-merged-loop.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-merged-loop.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test [-ERROR:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-merged-loop.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 [-: error executing dg-final: couldn't open "nvptx-merged-loop.o.304r.mach nvptx-merged-loop.o.307r.mach": no such file or directory-]{+scan-offload-rtl-dump mach "Merging loop .* into "+} UNSUPPORTED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test [-ERROR:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/nvptx-sese-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 [-: error executing dg-final: couldn't open "nvptx-sese-1.o.307r.mach nvptx-sese-1.o.304r.mach": no such file or directory-]{+scan-offload-rtl-dump mach "SESE regions:.* [0-9]+{[0-9]+->[0-9]+(\\.[0-9]+)+}"+} UNSUPPORTED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-assembler-times bar.sync 2 UNSUPPORTED: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/pr85381-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-assembler-times bar.sync 4 PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-1.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-2.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 32\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-3.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 1, 32\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 2, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-4.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 2, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 2, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-5.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 2, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 0, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-6.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 0, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O0 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 0, 128\\)" PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 (test for excess errors) PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 execution test PASS: libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 output pattern test [-FAIL:-]{+PASS:+} libgomp.oacc-c/../libgomp.oacc-c-c++-common/vector-length-128-7.c -DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 {+-foffload=nvptx-none+} -O2 scan-offload-tree-dump oaccdevlow "__attribute__\\(\\(oacc function \\(1, 0, 128\\)" Same for 'libgomp.oacc-c++'. Grüße Thomas From e03c3144d02850737551a071b6525f13efcde7c0 Mon Sep 17 00:00:00 2001 From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri, 22 Feb 2019 10:50:49 +0000 Subject: [PATCH 5/9] [libgomp] In OpenACC offloading testing, be more explicit in what is supported, and what is not, or why not libgomp/ * testsuite/lib/libgomp.exp: Error out for unknown offload target. * testsuite/libgomp.oacc-c++/c++.exp: Likewise. Report if "offloading: supported, but hardware not accessible". * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269106 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgomp/ChangeLog | 8 ++++++++ libgomp/testsuite/lib/libgomp.exp | 7 +++++-- libgomp/testsuite/libgomp.oacc-c++/c++.exp | 4 ++-- libgomp/testsuite/libgomp.oacc-c/c.exp | 4 ++-- libgomp/testsuite/libgomp.oacc-fortran/fortran.exp | 4 ++-- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index f310c2f6c24..32bc21f50fd 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,11 @@ +2019-02-22 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/lib/libgomp.exp: Error out for unknown offload target. + * testsuite/libgomp.oacc-c++/c++.exp: Likewise. Report if + "offloading: supported, but hardware not accessible". + * testsuite/libgomp.oacc-c/c.exp: Likewise. + * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. + 2019-02-19 Chung-Lin Tang <cltang@codesourcery.com> PR c/87924 diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index 04738a9ce82..2392642c7d6 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -58,6 +58,9 @@ foreach offload_target_openacc $offload_targets_s { hsa { continue } + default { + error "Unknown offload target: $offload_target_openacc" + } } lappend offload_targets_s_openacc "$offload_target_openacc" } @@ -375,7 +378,7 @@ proc check_effective_target_openacc_nvidia_accel_configured { } { return [is-effective-target lp64] } -# Return 1 if at least one nvidia board is present. +# Return 1 if at least one Nvidia GPU is accessible. proc check_effective_target_openacc_nvidia_accel_present { } { return [check_runtime openacc_nvidia_accel_present { @@ -386,7 +389,7 @@ proc check_effective_target_openacc_nvidia_accel_present { } { } "" ] } -# Return 1 if at least one nvidia board is present, and the nvidia device type +# Return 1 if at least one Nvidia GPU is accessible, and the nvidia device type # is selected by default by means of setting the environment variable # ACC_DEVICE_TYPE. diff --git a/libgomp/testsuite/libgomp.oacc-c++/c++.exp b/libgomp/testsuite/libgomp.oacc-c++/c++.exp index 9beadd6fc1e..d0e5f42b88b 100644 --- a/libgomp/testsuite/libgomp.oacc-c++/c++.exp +++ b/libgomp/testsuite/libgomp.oacc-c++/c++.exp @@ -88,7 +88,7 @@ if { $lang_test_file_found } { nvidia { if { ![check_effective_target_openacc_nvidia_accel_present] } { # Don't bother; execution testing is going to FAIL. - untested "$subdir $offload_target_openacc offloading" + untested "$subdir $offload_target_openacc offloading: supported, but hardware not accessible" continue } @@ -101,7 +101,7 @@ if { $lang_test_file_found } { set acc_mem_shared 0 } default { - set acc_mem_shared 0 + error "Unknown OpenACC device type: $offload_target_openacc" } } set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared" diff --git a/libgomp/testsuite/libgomp.oacc-c/c.exp b/libgomp/testsuite/libgomp.oacc-c/c.exp index 4475bf5341f..77e852efaef 100644 --- a/libgomp/testsuite/libgomp.oacc-c/c.exp +++ b/libgomp/testsuite/libgomp.oacc-c/c.exp @@ -51,7 +51,7 @@ foreach offload_target_openacc $offload_targets_s_openacc { nvidia { if { ![check_effective_target_openacc_nvidia_accel_present] } { # Don't bother; execution testing is going to FAIL. - untested "$subdir $offload_target_openacc offloading" + untested "$subdir $offload_target_openacc offloading: supported, but hardware not accessible" continue } @@ -64,7 +64,7 @@ foreach offload_target_openacc $offload_targets_s_openacc { set acc_mem_shared 0 } default { - set acc_mem_shared 0 + error "Unknown OpenACC device type: $offload_target_openacc" } } set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared" diff --git a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp index 663c9323b72..a262a8a2c97 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp +++ b/libgomp/testsuite/libgomp.oacc-fortran/fortran.exp @@ -76,14 +76,14 @@ if { $lang_test_file_found } { nvidia { if { ![check_effective_target_openacc_nvidia_accel_present] } { # Don't bother; execution testing is going to FAIL. - untested "$subdir $offload_target_openacc offloading" + untested "$subdir $offload_target_openacc offloading: supported, but hardware not accessible" continue } set acc_mem_shared 0 } default { - set acc_mem_shared 0 + error "Unknown OpenACC device type: $offload_target_openacc" } } set tagopt "$tagopt -DACC_MEM_SHARED=$acc_mem_shared"
On 22-02-19 12:09, Thomas Schwinge wrote: > There is however still a problem here: if you have more than one offload > compiler configured, Ah, right, that's a configuration I'm not testing, evidently. > all of them will react to > '-foffload=-fdump-rtl-mach', and will overwrite their dump files, or if > different compiler passes configured, that may produce more than one > "mach" dump file, all this resulting in "funny" testing FAILs/ERRORs. > But: we can't just use '-foffload=[nvptx]=-fdump-rtl-mach', because > '[nvptx]' can be 'nvptx', or 'nvptx-none', etc. > > Similar problem for a lot of other test cases that you've recently added > (... but thanks for all these, of course!). > > And, "dg-require-effective-target offload_nvptx" is now obsolete, and > should be removed. > > All this I'm addressing in the commits I've just done, see attached: Thanks for fixing that. - Tom
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index c41b3e6dc18..04738a9ce82 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -31,6 +31,7 @@ load_gcc_lib scanrtl.exp load_gcc_lib scantree.exp load_gcc_lib scanltranstree.exp load_gcc_lib scanoffloadtree.exp +load_gcc_lib scanoffloadrtl.exp load_gcc_lib scanipa.exp load_gcc_lib scanwpaipa.exp load_gcc_lib timeout-dg.exp diff --git a/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c similarity index 59% rename from gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c rename to libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c index 3ff537c1d97..8a2117e1624 100644 --- a/gcc/testsuite/gcc.dg/goacc/nvptx-merged-loop.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c @@ -1,6 +1,6 @@ -/* { dg-do link } */ -/* { dg-require-effective-target offload_nvptx } */ -/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-merged-loop.c\\ -Wa,--no-verify" } */ +/* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-options "-foffload=-fdump-rtl-mach" } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ #define N (32*32*32+17) void __attribute__ ((noinline)) Foo (int *ary) @@ -27,4 +27,4 @@ int main () return 0; } -/* { dg-final { scan-rtl-dump "Merging loop .* into " "mach" } } */ +/* { dg-final { scan-offload-rtl-dump "Merging loop .* into " "mach" } } */ diff --git a/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c similarity index 63% rename from gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c rename to libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c index 7e67fe78f06..9583265c775 100644 --- a/gcc/testsuite/gcc.dg/goacc/nvptx-sese-1.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c @@ -1,6 +1,6 @@ -/* { dg-do link } */ -/* { dg-require-effective-target offload_nvptx } */ -/* { dg-options "-fopenacc -O2 -foffload=-fdump-rtl-mach\\ -dumpbase\\ nvptx-sese-1.c\\ -Wa,--no-verify" } */ +/* { dg-do run { target openacc_nvidia_accel_selected } } */ +/* { dg-options "-foffload=-fdump-rtl-mach" } */ +/* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ #pragma acc routine seq int __attribute__((noinline)) foo (int x) @@ -32,4 +32,4 @@ int main () } /* Match {N->N(.N)+} */ -/* { dg-final { scan-rtl-dump "SESE regions:.* \[0-9\]+{\[0-9\]+->\[0-9\]+(\\.\[0-9\]+)+}" "mach" } } */ +/* { dg-final { scan-offload-rtl-dump "SESE regions:.* \[0-9\]+{\[0-9\]+->\[0-9\]+(\\.\[0-9\]+)+}" "mach" } } */