OpenACC acc_on_device.
gcc/
* builtins.def (DEF_GOACC_BUILTIN_COMPILER): New macro.
* oacc-builtins.def (BUILT_IN_GOACC_UPDATE): New builtin.
* builtins.c (expand_builtin_acc_on_device): New function.
(expand_builtin): Use it to handle BUILT_IN_ACC_ON_DEVICE.
(is_inexpensive_builtin): Handle BUILT_IN_ACC_ON_DEVICE.
gcc/fortran/
* f95-lang.c (DEF_GOACC_BUILTIN_COMPILER): New macro.
* types.def (BT_FN_INT_INT): New type.
gcc/testsuite/
* c-c++-common/goacc/acc_on_device-1.c: New file.
* c-c++-common/goacc/acc_on_device-2.c: Likewise.
* c-c++-common/goacc/acc_on_device-2-off.c: Likewise.
* gfortran.dg/goacc/acc_on_device-1.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2-off.f95: Likewise.
libgomp/
* libgomp.map (OACC_2.0): Add acc_on_device, acc_on_device_.
* fortran.c: Include "openacc.h".
(acc_on_device_): New function.
* oacc-parallel.c: Include "openacc.h".
(acc_on_device): New function.
* openacc.f90 (acc_device_kind, acc_device_none)
(acc_device_default, acc_device_host, acc_device_not_host): New
parameters.
(acc_on_device): New function declaration.
* openacc_lib.h (acc_device_kind, acc_device_none)
(acc_device_default, acc_device_host, acc_device_not_host): New
parameters.
(acc_on_device): New function declaration.
* openacc.h (acc_device_t): New enum.
(acc_on_device): New function declaration.
* testsuite/libgomp.oacc-c/acc_on_device-1.c: New file.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@215506 138bc75d-0d04-0410-961f-82ee72b054a4
25 files changed: