[OpenACC] bump version for 2.6 plus libgomp.texi update

2020-02-03  Julian Brown  <julian@codesourcery.com>
            Tobias Burnus  <tobias@codesourcery.com>

	gcc/c-family/
	* c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.

	gcc/
	* doc/invoke.texi: Update mention of OpenACC version to 2.6.

	gcc/fortran/
	* cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
	* intrinsic.texi: Update mentions of OpenACC version to 2.6.
	* gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
	* invoke.texi: Remove experimental disclamer for OpenACC.

	gcc/testsuite/
	* c-c++-common/cpp/openacc-define-3.c: Update expected value for
	_OPENACC define.
	* gfortran.dg/openacc-define-3.f90: Likewise.

	libgomp/
	* libgomp.texi (OpenACC Runtime Library Routines): Document *_async
	and *_finalize variants; document acc_attach and acc_detach; update
	references from OpenACC 2.0 to 2.6.
	* openacc.f90 (openacc_version): Update to 201711.
	* openacc_lib.h (openacc_version): Update to 201711.
	* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Update expected
	openacc_version to 201711.
	* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
This commit is contained in:
Tobias Burnus 2020-02-03 10:10:37 +01:00
parent 7c8e1f920a
commit e464fc9035
18 changed files with 244 additions and 95 deletions

View File

@ -1,3 +1,8 @@
2020-02-03 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
* doc/invoke.texi: Update mention of OpenACC version to 2.6.
2020-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/93533

View File

@ -1,3 +1,8 @@
2020-02-03 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
* c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.
2020-01-29 Jason Merrill <jason@redhat.com>
PR c++/89357

View File

@ -1435,7 +1435,7 @@ c_cpp_builtins (cpp_reader *pfile)
cpp_define (pfile, "__SSP__=1");
if (flag_openacc)
cpp_define (pfile, "_OPENACC=201306");
cpp_define (pfile, "_OPENACC=201711");
if (flag_openmp)
cpp_define (pfile, "_OPENMP=201511");

View File

@ -2248,7 +2248,7 @@ freestanding and hosted environments.
Enable handling of OpenACC directives @code{#pragma acc} in C/C++ and
@code{!$acc} in Fortran. When @option{-fopenacc} is specified, the
compiler generates accelerated code according to the OpenACC Application
Programming Interface v2.0 @w{@uref{https://www.openacc.org}}. This option
Programming Interface v2.6 @w{@uref{https://www.openacc.org}}. This option
implies @option{-pthread}, and thus is only supported on targets that
have support for @option{-pthread}.

View File

@ -1,3 +1,11 @@
2020-02-03 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
* cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
* intrinsic.texi: Update mentions of OpenACC version to 2.6.
* gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
* invoke.texi: Remove experimental disclamer for OpenACC.
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
PR fortran/93541
@ -109,7 +117,7 @@
* interface.c (gfc_procedure_use): Also check parent namespace for
'implict none (external)'.
* symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
to parent namespace's setting.
to parent namespace's setting.
2020-01-19 Thomas König <tkoenig@gcc.gnu.org>

View File

@ -166,7 +166,7 @@ cpp_define_builtins (cpp_reader *pfile)
cpp_define (pfile, "_LANGUAGE_FORTRAN=1");
if (flag_openacc)
cpp_define (pfile, "_OPENACC=201306");
cpp_define (pfile, "_OPENACC=201711");
if (flag_openmp)
cpp_define (pfile, "_OPENMP=201511");

View File

@ -485,9 +485,6 @@ include OpenMP, Cray-style pointers, some old vendor extensions, and several
Fortran 2003 and Fortran 2008 features, including TR 15581. However, it is
still under development and has a few remaining rough edges.
There also is initial support for OpenACC.
Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC. See
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
At present, the GNU Fortran compiler passes the
@uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html,
@ -546,10 +543,8 @@ status} and @ref{Fortran 2018 status} sections of the documentation.
Additionally, the GNU Fortran compilers supports the OpenMP specification
(version 4.0 and most of the features of the 4.5 version,
@url{http://openmp.org/@/wp/@/openmp-specifications/}).
There also is initial support for the OpenACC specification (targeting
version 2.0, @uref{http://www.openacc.org/}).
Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC. See
There also is support for the OpenACC specification (targeting
version 2.6, @uref{http://www.openacc.org/}). See
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
@node Varying Length Character Strings
@ -2245,7 +2240,7 @@ influence run-time behavior.
GNU Fortran strives to be compatible to the
@uref{http://www.openacc.org/, OpenACC Application Programming
Interface v2.0}.
Interface v2.6}.
To enable the processing of the OpenACC directive @code{!$acc} in
free-form source code; the @code{c$acc}, @code{*$acc} and @code{!$acc}
@ -2261,10 +2256,6 @@ The OpenACC Fortran runtime library routines are provided both in a
form of a Fortran 90 module named @code{openacc} and in a form of a
Fortran @code{include} file named @file{openacc_lib.h}.
Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC. See
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
@node Argument list functions
@subsection Argument list functions @code{%VAL}, @code{%REF} and @code{%LOC}
@cindex argument list functions

View File

@ -15371,7 +15371,7 @@ kind @code{omp_pause_resource_kind}:
@section OpenACC Module @code{OPENACC}
@table @asis
@item @emph{Standard}:
OpenACC Application Programming Interface v2.0
OpenACC Application Programming Interface v2.6
@end table
@ -15385,9 +15385,9 @@ are listed below.
For details refer to the actual
@uref{http://www.openacc.org/,
OpenACC Application Programming Interface v2.0}.
OpenACC Application Programming Interface v2.6}.
@code{OPENACC} provides the scalar default-integer
named constant @code{openacc_version} with a value of the form
@var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month
of the OpenACC version; for OpenACC v2.0 the value is @code{201306}.
of the OpenACC version; for OpenACC v2.6 the value is @code{201711}.

View File

@ -420,10 +420,6 @@ compilation sentinels in free form and @code{c$}, @code{*$} and
@code{!$} sentinels in fixed form, and when linking arranges for the
OpenACC runtime library to be linked in.
Note that this is an experimental feature, incomplete, and subject to
change in future versions of GCC. See
@w{@uref{https://gcc.gnu.org/wiki/OpenACC}} for more information.
@item -fopenmp
@opindex @code{fopenmp}
@cindex OpenMP

View File

@ -1,3 +1,10 @@
2020-02-03 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
* c-c++-common/cpp/openacc-define-3.c: Update expected value for
_OPENACC define.
* gfortran.dg/openacc-define-3.f90: Likewise.
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
PR fortran/93427

View File

@ -6,6 +6,6 @@
# error _OPENACC not defined
#endif
#if _OPENACC != 201306
#if _OPENACC != 201711
# error _OPENACC defined to wrong value
#endif

View File

@ -6,6 +6,6 @@
# error _OPENACC not defined
#endif
#if _OPENACC != 201306
#if _OPENACC != 201711
# error _OPENACC defined to wrong value
#endif

View File

@ -1,3 +1,15 @@
2020-02-03 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
* libgomp.texi (OpenACC Runtime Library Routines): Document *_async
and *_finalize variants; document acc_attach and acc_detach; update
references from OpenACC 2.0 to 2.6.
* openacc.f90 (openacc_version): Update to 201711.
* openacc_lib.h (openacc_version): Update to 201711.
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Update expected
openacc_version to 201711.
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
* plugin/plugin-gcn.c (struct hsa_kernel_description): Add sgpr_count

View File

@ -1820,7 +1820,7 @@ arranges for automatic linking of the OpenACC runtime library
A complete description of all OpenACC directives accepted may be found in
the @uref{https://www.openacc.org, OpenACC} Application Programming
Interface manual, version 2.0.
Interface manual, version 2.6.
Note that this is an experimental feature and subject to
change in future versions of GCC. See
@ -1836,7 +1836,7 @@ change in future versions of GCC. See
@chapter OpenACC Runtime Library Routines
The runtime routines described here are defined by section 3 of the OpenACC
specifications in version 2.0.
specifications in version 2.6.
They have C linkage, and do not throw exceptions.
Generally, they are available only for the host, with the exception of
@code{acc_on_device}, which is available for both the host and the
@ -1892,6 +1892,8 @@ acceleration device.
present on device.
* acc_memcpy_to_device:: Copy host memory to device memory.
* acc_memcpy_from_device:: Copy device memory to host memory.
* acc_attach:: Let device pointer point to device-pointer target.
* acc_detach:: Let device pointer point to host-pointer target.
API routines for target platforms.
@ -1929,7 +1931,7 @@ for the device type specified in @var{devicetype}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.1.
@end table
@ -1954,7 +1956,7 @@ in @var{devicetype}, to use when executing a parallel or kernels region.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.2.
@end table
@ -1979,7 +1981,7 @@ parallel or kernels region.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.3.
@end table
@ -2006,7 +2008,7 @@ type @var{devicetype}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.4.
@end table
@ -2033,7 +2035,7 @@ region.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.5.
@end table
@ -2100,8 +2102,8 @@ a zero and Fortran returns a @code{false}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.6.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.9.
@end table
@ -2128,8 +2130,8 @@ Fortran returns a @code{false}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.7.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.10.
@end table
@ -2156,8 +2158,8 @@ specified in @var{arg}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.8.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.11.
@end table
@ -2181,8 +2183,8 @@ This function waits for the completion of all asynchronous operations.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.10.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.13.
@end table
@ -2207,8 +2209,8 @@ any queue.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.11.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.14.
@end table
@ -2232,8 +2234,8 @@ asynchronous operations enqueued on queue @var{arg}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.9.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.12.
@end table
@ -2257,8 +2259,8 @@ This function initializes the runtime for the device type specified in
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.12.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.7.
@end table
@ -2282,8 +2284,8 @@ This function shuts down the runtime for the device type specified in
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.13.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.8.
@end table
@ -2313,8 +2315,8 @@ return @code{false}.
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.14.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.17.
@end table
@ -2332,8 +2334,8 @@ the device address of the allocated memory.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.15.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.18.
@end table
@ -2350,8 +2352,8 @@ Free previously allocated device memory at the device address @code{a}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.16.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.19.
@end table
@ -2371,6 +2373,7 @@ variable or array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{void *acc_copyin(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{void *acc_copyin_async(h_void *a, size_t len, int async);}
@end multitable
@item @emph{Fortran}:
@ -2380,11 +2383,18 @@ variable or array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_copyin(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_copyin_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_copyin_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.17.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.20.
@end table
@ -2402,6 +2412,9 @@ In Fortran, two (2) forms are supported. In the first form, @var{a} specifies
a contiguous array section. The second form @var{a} specifies a variable or
array element and @var{len} specifies the length in bytes.
Note that @code{acc_present_or_copyin} and @code{acc_pcopyin} exist for
backward compatibility with OpenACC 2.0; use @ref{acc_copyin} instead.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{void *acc_present_or_copyin(h_void *a, size_t len);}
@ -2423,8 +2436,8 @@ array element and @var{len} specifies the length in bytes.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.18.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.20.
@end table
@ -2444,6 +2457,7 @@ array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{void *acc_create(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{void *acc_create_async(h_void *a, size_t len, int async);}
@end multitable
@item @emph{Fortran}:
@ -2453,11 +2467,18 @@ array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_create(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_create_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_create_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.19.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.21.
@end table
@ -2475,6 +2496,8 @@ In Fortran, two (2) forms are supported. In the first form, @var{a} specifies
a contiguous array section. The second form @var{a} specifies a variable or
array element and @var{len} specifies the length in bytes.
Note that @code{acc_present_or_create} and @code{acc_pcreate} exist for
backward compatibility with OpenACC 2.0; use @ref{acc_create} instead.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@ -2497,8 +2520,8 @@ array element and @var{len} specifies the length in bytes.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.20.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.21.
@end table
@ -2517,6 +2540,9 @@ array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_copyout(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_copyout_async(h_void *a, size_t len, int async);}
@item @emph{Prototype}: @tab @code{acc_copyout_finalize(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_copyout_finalize_async(h_void *a, size_t len, int async);}
@end multitable
@item @emph{Fortran}:
@ -2526,11 +2552,30 @@ array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_copyout(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize(a)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.21.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.22.
@end table
@ -2549,6 +2594,9 @@ array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_delete(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_delete_async(h_void *a, size_t len, int async);}
@item @emph{Prototype}: @tab @code{acc_delete_finalize(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_delete_finalize_async(h_void *a, size_t len, int async);}
@end multitable
@item @emph{Fortran}:
@ -2558,11 +2606,30 @@ array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_delete(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_delete_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_delete_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_delete_finalize(a)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @emph{Interface}: @tab @code{subroutine acc_delete_finalize(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_delete_async_finalize(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_delete_async_finalize(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.22.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.23.
@end table
@ -2582,6 +2649,7 @@ array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_update_device(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_update_device(h_void *a, size_t len, async);}
@end multitable
@item @emph{Fortran}:
@ -2591,11 +2659,18 @@ array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_update_device(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_update_device_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_update_device_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.23.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.24.
@end table
@ -2615,6 +2690,7 @@ array element and @var{len} specifies the length in bytes.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_update_self(h_void *a, size_t len);}
@item @emph{Prototype}: @tab @code{acc_update_self_async(h_void *a, size_t len, int async);}
@end multitable
@item @emph{Fortran}:
@ -2624,11 +2700,18 @@ array element and @var{len} specifies the length in bytes.
@item @emph{Interface}: @tab @code{subroutine acc_update_self(a, len)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @emph{Interface}: @tab @code{subroutine acc_update_self_async(a, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer(acc_handle_kind) :: async}
@item @emph{Interface}: @tab @code{subroutine acc_update_self_async(a, len, async)}
@item @tab @code{type, dimension(:[,:]...) :: a}
@item @tab @code{integer len}
@item @tab @code{integer(acc_handle_kind) :: async}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.24.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.25.
@end table
@ -2647,8 +2730,8 @@ specified with the host address @var{h} and a length of @var{len}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.25.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.26.
@end table
@ -2666,8 +2749,8 @@ specified by @var{h}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.26.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.27.
@end table
@ -2685,8 +2768,8 @@ host address specified by @var{h}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.27.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.28.
@end table
@ -2704,8 +2787,8 @@ device address specified by @var{d}.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.28.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.29.
@end table
@ -2743,8 +2826,8 @@ a @code{false} is return to indicate the mapped memory is not present.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.29.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.30.
@end table
@ -2763,8 +2846,8 @@ device memory specified by the device address @var{dest} for a length of
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.30.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.31.
@end table
@ -2783,8 +2866,50 @@ device memory specified by the device address @var{dest} for a length of
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
3.2.31.
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.32.
@end table
@node acc_attach
@section @code{acc_attach} -- Let device pointer point to device-pointer target.
@table @asis
@item @emph{Description}
This function updates a pointer on the device from pointing to a host-pointer
address to pointing to the corresponding device data.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_attach(h_void **ptr);}
@item @emph{Prototype}: @tab @code{acc_attach_async(h_void **ptr, int async);}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.34.
@end table
@node acc_detach
@section @code{acc_detach} -- Let device pointer point to host-pointer target.
@table @asis
@item @emph{Description}
This function updates a pointer on the device from pointing to a device-pointer
address to pointing to the corresponding host data.
@item @emph{C/C++}:
@multitable @columnfractions .20 .80
@item @emph{Prototype}: @tab @code{acc_detach(h_void **ptr);}
@item @emph{Prototype}: @tab @code{acc_detach_async(h_void **ptr, int async);}
@item @emph{Prototype}: @tab @code{acc_detach_finalize(h_void **ptr);}
@item @emph{Prototype}: @tab @code{acc_detach_finalize_async(h_void **ptr, int async);}
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
3.2.35.
@end table
@ -2802,7 +2927,7 @@ as used by the CUDA Runtime or Driver API's.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
A.2.1.1.
@end table
@ -2821,7 +2946,7 @@ as used by the CUDA Runtime or Driver API's.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
A.2.1.2.
@end table
@ -2840,7 +2965,7 @@ This handle is the same as used by the CUDA Runtime or Driver API's.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
A.2.1.3.
@end table
@ -2864,7 +2989,7 @@ The return value is not specified.
@end multitable
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
A.2.1.4.
@end table
@ -2980,7 +3105,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
@section @code{ACC_DEVICE_TYPE}
@table @asis
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
4.1.
@end table
@ -2990,7 +3115,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
@section @code{ACC_DEVICE_NUM}
@table @asis
@item @emph{Reference}:
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
4.2.
@end table
@ -3220,7 +3345,7 @@ is called prior to a call to an OpenACC function, then you must call
@code{acc_set_device_num()}@footnote{More complete information
about @env{ACC_DEVICE_TYPE} and @env{ACC_DEVICE_NUM} can be found in
sections 4.1 and 4.2 of the @uref{https://www.openacc.org, OpenACC}
Application Programming Interface”, Version 2.0.}
Application Programming Interface”, Version 2.6.}

View File

@ -792,7 +792,7 @@ module openacc
public :: acc_delete_async, acc_update_device_async, acc_update_self_async
public :: acc_copyout_finalize, acc_delete_finalize
integer, parameter :: openacc_version = 201306
integer, parameter :: openacc_version = 201711
interface acc_get_num_devices
procedure :: acc_get_num_devices_h

View File

@ -52,7 +52,7 @@
integer (acc_handle_kind), parameter :: acc_async_noval = -1
integer (acc_handle_kind), parameter :: acc_async_sync = -2
integer, parameter :: openacc_version = 201306
integer, parameter :: openacc_version = 201711
interface acc_get_num_devices
function acc_get_num_devices_h (d)

View File

@ -4,6 +4,6 @@
implicit none
include "openacc_lib.h"
if (openacc_version .ne. 201306) STOP 1
if (openacc_version .ne. 201711) STOP 1
end program main

View File

@ -4,6 +4,6 @@ program main
use openacc
implicit none
if (openacc_version .ne. 201306) STOP 1
if (openacc_version .ne. 201711) STOP 1
end program main