diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2015-10-30 00:13:22 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2015-10-30 00:13:22 +0000 |
commit | a0e701d8a2d31d3fcbaad4de67639aadca7a1681 (patch) | |
tree | dd2241361205d8674dc6b7d973e1d78df3ddc6d4 /libgomp | |
parent | e7c6980e55d974035a4d85b3551eca47181d1bfc (diff) | |
download | gcc-a0e701d8a2d31d3fcbaad4de67639aadca7a1681.zip gcc-a0e701d8a2d31d3fcbaad4de67639aadca7a1681.tar.gz gcc-a0e701d8a2d31d3fcbaad4de67639aadca7a1681.tar.bz2 |
openacc.h (enum acc_device_t): Reformat.
gcc/
* openacc.h (enum acc_device_t): Reformat. Ensure layout
compatibility.
(enum acc_async_t): Reformat.
(acc_on_device): Declare compatible with builtin and provide C++
wrapper.
* testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
gcc/testsuite/
* c-c++-common/goacc/acc_on_device-2-off.c: Delete.
* c-c++-common/goacc/acc_on_device-2.c: Delete.
From-SVN: r229562
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 9 | ||||
-rw-r--r-- | libgomp/openacc.h | 50 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.oacc-c-c++-common/acc-on-device.c | 11 |
3 files changed, 51 insertions, 19 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index c78881b..4d19066 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,12 @@ +2015-10-29 Nathan Sidwell <nathan@codesourcery.com> + + * openacc.h (enum acc_device_t): Reformat. Ensure layout + compatibility. + (enum acc_async_t): Reformat. + (acc_on_device): Declare compatible with builtin and provide C++ + wrapper. + * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New. + 2015-10-29 Thomas Schwinge <thomas@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> diff --git a/libgomp/openacc.h b/libgomp/openacc.h index fc353e1..30b18db 100644 --- a/libgomp/openacc.h +++ b/libgomp/openacc.h @@ -47,24 +47,25 @@ extern "C" { #endif /* Types */ -typedef enum acc_device_t - { - /* Keep in sync with include/gomp-constants.h. */ - acc_device_none = 0, - acc_device_default = 1, - acc_device_host = 2, - /* acc_device_host_nonshm = 3 removed. */ - acc_device_not_host = 4, - acc_device_nvidia = 5, - _ACC_device_hwm - } acc_device_t; - -typedef enum acc_async_t - { - /* Keep in sync with include/gomp-constants.h. */ - acc_async_noval = -1, - acc_async_sync = -2 - } acc_async_t; +typedef enum acc_device_t { + /* Keep in sync with include/gomp-constants.h. */ + acc_device_none = 0, + acc_device_default = 1, + acc_device_host = 2, + /* acc_device_host_nonshm = 3 removed. */ + acc_device_not_host = 4, + acc_device_nvidia = 5, + _ACC_device_hwm, + /* Ensure enumeration is layout compatible with int. */ + _ACC_highest = __INT_MAX__, + _ACC_neg = -1 +} acc_device_t; + +typedef enum acc_async_t { + /* Keep in sync with include/gomp-constants.h. */ + acc_async_noval = -1, + acc_async_sync = -2 +} acc_async_t; int acc_get_num_devices (acc_device_t) __GOACC_NOTHROW; void acc_set_device_type (acc_device_t) __GOACC_NOTHROW; @@ -79,7 +80,11 @@ void acc_wait_all (void) __GOACC_NOTHROW; void acc_wait_all_async (int) __GOACC_NOTHROW; void acc_init (acc_device_t) __GOACC_NOTHROW; void acc_shutdown (acc_device_t) __GOACC_NOTHROW; -int acc_on_device (acc_device_t) __GOACC_NOTHROW; +#ifdef __cplusplus +int acc_on_device (int __arg) __GOACC_NOTHROW; +#else +int acc_on_device (acc_device_t __arg) __GOACC_NOTHROW; +#endif void *acc_malloc (size_t) __GOACC_NOTHROW; void acc_free (void *) __GOACC_NOTHROW; /* Some of these would be more correct with const qualifiers, but @@ -113,6 +118,13 @@ int acc_set_cuda_stream (int, void *) __GOACC_NOTHROW; #ifdef __cplusplus } + +/* Forwarding function with correctly typed arg. */ + +inline int acc_on_device (acc_device_t __arg) __GOACC_NOTHROW +{ + return acc_on_device ((int) __arg); +} #endif #endif /* _OPENACC_H */ diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/acc-on-device.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/acc-on-device.c new file mode 100644 index 0000000..88c000e --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/acc-on-device.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-O2" } */ + +#include <openacc.h> + +int Foo (acc_device_t x) +{ + return acc_on_device (x); +} + +/* { dg-final { scan-assembler-not "acc_on_device" } } */ |