Message ID | 561D2801.1070004@mentor.com |
---|---|
State | New |
Headers | show |
Hi Tom! On Tue, 13 Oct 2015 17:49:21 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote: > On 12/10/15 14:52, Tom de Vries wrote: > > On 12/10/15 12:49, Thomas Schwinge wrote: > >> On Sat, 10 Oct 2015 12:49:01 +0200, Tom de > >> Vries<Tom_deVries@mentor.com> wrote: > >>> >--- /dev/null > >>> >+++ b/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c > >>> >@@ -0,0 +1,39 @@ > >>> >+/* { dg-additional-options "-O2" } */ > >>> >+ > >>> >+#include <openacc.h> > > > > Hi Thomas, > > > >> That doesn't work (at least in build-tree testing), as gcc/testsuite/ is > >> not set up to look for header files in [target]/libgomp/: > >> > >> [...]/source-gcc/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c:3:21: > >> fatal error: openacc.h: No such file or directory > >> compilation terminated. > >> compiler exited with status 1 > As a follow-up patch, I've factored the code into a mockup openacc.h, > now shared by several test-cases. > Factor out goacc/openacc.h > > 2015-10-13 Tom de Vries <tom@codesourcery.com> > > * c-c++-common/goacc/openacc.h: New header file, factored out of ... > * c-c++-common/goacc/kernels-acc-on-device.c: ... here. > * c-c++-common/goacc/acc_on_device-2-off.c: Use openacc.h. > * c-c++-common/goacc/acc_on_device-2.c: Same. As a clean-up, and to move acc_on_device testing to where that OpenACC Runtime Library routine is actually defined (libgomp's openacc.h), Nathan has just removed this stub openacc.h header file, and also the test files listed just above, plus the gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device-2.c that you added later, see: <http://news.gmane.org/find-root.php?message_id=%3C56327E51.1090507%40acm.org%3E> (gomp-4_0-branch), <http://news.gmane.org/find-root.php?message_id=%3C5632B856.4050509%40acm.org%3E> (trunk). If the kernels tests are still important (they tested ICEs, as far as I remember), you'll have to re-instantiate these in libgomp/testsuite/, or using __builtin_acc_on_device in gcc/testsuite/. Grüße Thomas
Factor out goacc/openacc.h 2015-10-13 Tom de Vries <tom@codesourcery.com> * c-c++-common/goacc/openacc.h: New header file, factored out of ... * c-c++-common/goacc/kernels-acc-on-device.c: ... here. * c-c++-common/goacc/acc_on_device-2-off.c: Use openacc.h. * c-c++-common/goacc/acc_on_device-2.c: Same. --- .../c-c++-common/goacc/acc_on_device-2-off.c | 11 +---------- gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c | 13 +------------ .../c-c++-common/goacc/kernels-acc-on-device.c | 19 +------------------ gcc/testsuite/c-c++-common/goacc/openacc.h | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+), 40 deletions(-) create mode 100644 gcc/testsuite/c-c++-common/goacc/openacc.h diff --git a/gcc/testsuite/c-c++-common/goacc/acc_on_device-2-off.c b/gcc/testsuite/c-c++-common/goacc/acc_on_device-2-off.c index 71abe11..cce58de 100644 --- a/gcc/testsuite/c-c++-common/goacc/acc_on_device-2-off.c +++ b/gcc/testsuite/c-c++-common/goacc/acc_on_device-2-off.c @@ -3,16 +3,7 @@ /* Duplicate parts of libgomp/openacc.h, because we can't include it here. */ -#if __cplusplus -extern "C" { -#endif - -typedef enum acc_device_t { acc_device_X = 123 } acc_device_t; -extern int acc_on_device (int); - -#if __cplusplus -} -#endif +#include "openacc.h" int f (void) diff --git a/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c b/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c index 243e562..19a5bd3 100644 --- a/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c +++ b/gcc/testsuite/c-c++-common/goacc/acc_on_device-2.c @@ -1,18 +1,7 @@ /* Have to enable optimizations, as otherwise builtins won't be expanded. */ /* { dg-additional-options "-O -fdump-rtl-expand" } */ -/* Duplicate parts of libgomp/openacc.h, because we can't include it here. */ - -#if __cplusplus -extern "C" { -#endif - -typedef enum acc_device_t { acc_device_X = 123 } acc_device_t; -extern int acc_on_device (int); - -#if __cplusplus -} -#endif +#include "openacc.h" int f (void) diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c b/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c index 784c66a..958b65b 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-acc-on-device.c @@ -1,23 +1,6 @@ /* { dg-additional-options "-O2" } */ -#if __cplusplus -extern "C" { -#endif - -#if __cplusplus >= 201103 -# define __GOACC_NOTHROW noexcept -#elif __cplusplus -# define __GOACC_NOTHROW throw () -#else /* Not C++ */ -# define __GOACC_NOTHROW __attribute__ ((__nothrow__)) -#endif - -typedef enum acc_device_t { acc_device_X = 123 } acc_device_t; -int acc_on_device (int) __GOACC_NOTHROW; - -#if __cplusplus -} -#endif +#include "openacc.h" #define N 32 diff --git a/gcc/testsuite/c-c++-common/goacc/openacc.h b/gcc/testsuite/c-c++-common/goacc/openacc.h new file mode 100644 index 0000000..a74a482 --- /dev/null +++ b/gcc/testsuite/c-c++-common/goacc/openacc.h @@ -0,0 +1,18 @@ +#if __cplusplus +extern "C" { +#endif + +#if __cplusplus >= 201103 +# define __GOACC_NOTHROW noexcept +#elif __cplusplus +# define __GOACC_NOTHROW throw () +#else /* Not C++ */ +# define __GOACC_NOTHROW __attribute__ ((__nothrow__)) +#endif + +typedef enum acc_device_t { acc_device_X = 123 } acc_device_t; +int acc_on_device (int) __GOACC_NOTHROW; + +#if __cplusplus +} +#endif -- 1.9.1