diff mbox

[gomp4] Update libgomp documentation

Message ID 2b825821-8f88-021a-3d72-a88982101271@codesourcery.com
State New
Headers show

Commit Message

Cesar Philippidis May 16, 2017, 9:05 p.m. UTC
This patch does two things:

 1. Updates the libgomp documentation to reflect the recent OpenACC 2.5
    changes.

 2. Backports a texinfo patch to wrap the title of the libgomp manual
    in the pdf. Without it, part of the title would get truncated out
    of the page.

For the most part, the gomp-4_0-branch should support the OpenACC 2.5
API, with the notable exception of acc_memcpy_device. While the runtime
doesn't support that function yet, I've added a placeholder if it.

Arguably, I probably should have split the backport into a separate
patch. However, I think this only impacts libgomp. And I was tempted to
just to copy the complete texinfo.tex file from texinfo 6.3, like it was
last done in 2012. However, I wasn't sure if that would have required
any strange dependencies.

I've applied this patch to gomp-4_0-branch.

Cesar

Comments

Joseph Myers May 16, 2017, 10:28 p.m. UTC | #1
On Tue, 16 May 2017, Cesar Philippidis wrote:

> Arguably, I probably should have split the backport into a separate
> patch. However, I think this only impacts libgomp. And I was tempted to
> just to copy the complete texinfo.tex file from texinfo 6.3, like it was
> last done in 2012. However, I wasn't sure if that would have required
> any strange dependencies.

texinfo.tex should be copied to trunk, from Texinfo SVN trunk, whenever 
there's a use for a new version of it (copying at any time while open for 
non-bug-fix changes is OK even if there isn't a specific use for a new 
version).
diff mbox

Patch

2017-05-16  Cesar Philippidis  <cesar@codesourcery.com>

	gcc/
	* doc/include/texinfo.tex: Backport @title linewrap changes from
	texinfo 6.3.

	libgomp/
	* libgomp.texi: Update OpenACC references to version 2.5. Add entries
	for acc_memcpy_to_device_async, acc_memcpy_from_device_async,
	acc_memcpy_device, acc_memcpy_device_async, acc_get_default_async,
	acc_set_default_async.

diff --git a/gcc/doc/include/texinfo.tex b/gcc/doc/include/texinfo.tex
index a5a7b2b..943e868 100644
--- a/gcc/doc/include/texinfo.tex
+++ b/gcc/doc/include/texinfo.tex
@@ -3,7 +3,7 @@ 
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2012-06-05.14}
+\def\texinfoversion{2017-05-16.12}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -594,7 +594,7 @@ 
 \def\:{\spacefactor=1000 }
 
 % @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
+\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
 
 % @/ allows a line break.
 \let\/=\allowbreak
@@ -3262,6 +3262,20 @@  end
   \finishedtitlepagetrue
 }
 
+% Settings used for typesetting titles: no hyphenation, no indentation,
+% don't worry much about spacing, ragged right.  This should be used
+% inside a \vbox, and fonts need to be set appropriately first.  Because
+% it is always used for titles, nothing else, we call \rmisbold.  \par
+% should be specified before the end of the \vbox, since a vbox is a group.
+% 
+\def\raggedtitlesettings{%
+  \rmisbold
+  \hyphenpenalty=10000
+  \parindent=0pt
+  \tolerance=5000
+  \ptexraggedright
+}
+
 % Macros to be used within @titlepage:
 
 \let\subtitlerm=\tenrm
@@ -3269,7 +3283,7 @@  end
 
 \parseargdef\title{%
   \checkenv\titlepage
-  \leftline{\titlefonts\rmisbold #1}
+  \vbox{\titlefonts \raggedtitlesettings #1\par}%
   % print a rule at the page bottom also.
   \finishedtitlepagefalse
   \vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -5543,14 +5557,6 @@  end
 
 % Define @majorheading, @heading and @subheading
 
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-%       1) We use \vbox rather than the earlier \line to permit
-%          overlong headings to fold.
-%       2) \hyphenpenalty is set to 10000 because hyphenation in a
-%          heading is obnoxious; this forbids it.
-%       3) Likewise, headings look best if no \parindent is used, and
-%          if justification is not attempted.  Hence \raggedright.
-
 \def\majorheading{%
   {\advance\chapheadingskip by 10pt \chapbreak }%
   \parsearg\chapheadingzzz
@@ -5558,10 +5564,8 @@  end
 
 \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
 \def\chapheadingzzz#1{%
-  {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                    \parindent=0pt\ptexraggedright
-                    \rmisbold #1\hfill}}%
-  \bigskip \par\penalty 200\relax
+  \vbox{\chapfonts \raggedtitlesettings #1\par}%
+  \nobreak\bigskip \nobreak
   \suppressfirstparagraphindent
 }
 
@@ -5720,8 +5724,7 @@  end
     %
     % Typeset the actual heading.
     \nobreak % Avoid page breaks at the interline glue.
-    \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
-          \hangindent=\wd0 \centerparametersmaybe
+    \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
           \unhbox0 #1\par}%
   }%
   \nobreak\bigskip % no page break after a chapter title
@@ -5743,18 +5746,18 @@  end
 \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
 %
 \def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt\ptexraggedright
-                       \rmisbold #1\hfill}}\bigskip \par\nobreak
+  \chapoddpage
+  \vbox{\chapfonts \raggedtitlesettings #1\par}%
+  \nobreak\bigskip\nobreak
 }
 \def\chfopen #1#2{\chapoddpage {\chapfonts
 \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
 \par\penalty 5000 %
 }
 \def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
-                       \parindent=0pt
-                       \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+  \chapoddpage
+  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
+  \nobreak\bigskip \nobreak
 }
 \def\CHAPFopen{%
   \global\let\chapmacro=\chfopen
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 7a3c491..69fb3be 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -1851,7 +1851,7 @@  See @uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
 @chapter OpenACC Runtime Library Routines
 
 The runtime routines described here are defined by section 3 of the OpenACC
-specification in version 2.0.
+specification in version 2.5.
 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
@@ -1867,20 +1867,22 @@  version 2.5.
 * acc_get_device_type::         Get type of device accelerator to be used.
 * acc_set_device_num::          Set device number to use.
 * acc_get_device_num::          Get device number to be used.
+* acc_init::                    Initialize runtime for a specific device type.
+* acc_shutdown::                Shuts down the runtime for a specific device
 * acc_async_test::              Tests for completion of a specific asynchronous
                                 operation.
 * acc_async_test_all::          Tests for completion of all asychronous
                                 operations.
 * acc_wait::                    Wait for completion of a specific asynchronous
                                 operation.
+* acc_wait_async::              Wait for completion of asynchronous operations.
+                                type.
 * acc_wait_all::                Waits for completion of all asyncrhonous
                                 operations.
 * acc_wait_all_async::          Wait for completion of all asynchronous
                                 operations.
-* acc_wait_async::              Wait for completion of asynchronous operations.
-* acc_init::                    Initialize runtime for a specific device type.
-* acc_shutdown::                Shuts down the runtime for a specific device
-                                type.
+* acc_get_default_async::       Retrieve the default async queue.
+* acc_set_default_async::       Set the default async queue.
 * acc_on_device::               Whether executing on a particular device
 * acc_malloc::                  Allocate device memory.
 * acc_free::                    Free device memory.
@@ -1909,6 +1911,7 @@  version 2.5.
                                 present on device.
 * acc_memcpy_to_device::        Copy host memory to device memory.
 * acc_memcpy_from_device::      Copy device memory to host memory.
+* acc_memcpy_device::           Copy memory to device.
 
 API routines for target platforms.
 
@@ -1939,7 +1942,7 @@  for the device type specified in @var{devicetype}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.1.
 @end table
 
@@ -1964,7 +1967,7 @@  in @var{devicetype}, to use when executing a parallel or kernels region.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.2.
 @end table
 
@@ -1989,7 +1992,7 @@  parallel or kernels region.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.3.
 @end table
 
@@ -2016,7 +2019,7 @@  type @var{devicetype}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.4.
 @end table
 
@@ -2043,12 +2046,62 @@  region.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.5.
 @end table
 
 
 
+@node acc_init
+@section @code{acc_init} -- Initialize runtime for a specific device type.
+@table @asis
+@item @emph{Description}
+This function initializes the runtime for the device type specified in
+@var{devicetype}.
+
+@item @emph{C/C++}:
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{acc_init(acc_device_t devicetype);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{subroutine acc_init(devicetype)}
+@item                   @tab @code{integer(acc_device_kind) devicetype}
+@end multitable
+
+@item @emph{Reference}:
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.6.
+@end table
+
+
+
+@node acc_shutdown
+@section @code{acc_shutdown} -- Shuts down the runtime for a specific device type.
+@table @asis
+@item @emph{Description}
+This function shuts down the runtime for the device type specified in
+@var{devicetype}.
+
+@item @emph{C/C++}:
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{acc_shutdown(acc_device_t devicetype);}
+@end multitable
+
+@item @emph{Fortran}:
+@multitable @columnfractions .20 .80
+@item @emph{Interface}: @tab @code{subroutine acc_shutdown(devicetype)}
+@item                   @tab @code{integer(acc_device_kind) devicetype}
+@end multitable
+
+@item @emph{Reference}:
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.7.
+@end table
+
+
+
 @node acc_async_test
 @section @code{acc_async_test} -- Test for completion of a specific asynchronous operation.
 @table @asis
@@ -2072,8 +2125,8 @@  a zero and Fortran returns a @code{false}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.6.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.8.
 @end table
 
 
@@ -2100,8 +2153,8 @@  Fortran returns a @code{false}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.7.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.9.
 @end table
 
 
@@ -2125,132 +2178,131 @@  specified in @var{arg}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.8.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.10.
 @end table
 
 
 
-@node acc_wait_all
-@section @code{acc_wait_all} -- Waits for completion of all asynchronous operations.
+@node acc_wait_async
+@section @code{acc_wait_async} -- Wait for completion of asynchronous operations.
 @table @asis
 @item @emph{Description}
-This function waits for the completion of all asynchronous operations.
+This function enqueues a wait operation on queue @var{async} for any and all
+asynchronous operations enqueued on queue @var{arg}.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
-@item @emph{Prototype}: @tab @code{acc_wait_all(void);}
+@item @emph{Prototype}: @tab @code{acc_wait_async(int arg, int async);}
 @end multitable
 
 @item @emph{Fortran}:
 @multitable @columnfractions .20 .80
-@item @emph{Interface}: @tab @code{subroutine acc_wait_async()}
+@item @emph{Interface}: @tab @code{subroutine acc_wait_async(arg, async)}
+@item                   @tab @code{integer(acc_handle_kind) arg, async}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.10.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.11.
 @end table
 
 
 
-@node acc_wait_all_async
-@section @code{acc_wait_all_async} -- Wait for completion of all asynchronous operations.
+@node acc_wait_all
+@section @code{acc_wait_all} -- Waits for completion of all asynchronous operations.
 @table @asis
 @item @emph{Description}
-This function enqueues a wait operation on the queue @var{async} for any
-and all asynchronous operations that have been previously enqueued on
-any queue.
+This function waits for the completion of all asynchronous operations.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
-@item @emph{Prototype}: @tab @code{acc_wait_all_async(int async);}
+@item @emph{Prototype}: @tab @code{acc_wait_all(void);}
 @end multitable
 
 @item @emph{Fortran}:
 @multitable @columnfractions .20 .80
-@item @emph{Interface}: @tab @code{subroutine acc_wait_all_async(async)}
-@item                   @tab @code{integer(acc_handle_kind) async}
+@item @emph{Interface}: @tab @code{subroutine acc_wait_async()}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.11.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.12.
 @end table
 
 
 
-@node acc_wait_async
-@section @code{acc_wait_async} -- Wait for completion of asynchronous operations.
+@node acc_wait_all_async
+@section @code{acc_wait_all_async} -- Wait for completion of all asynchronous operations.
 @table @asis
 @item @emph{Description}
-This function enqueues a wait operation on queue @var{async} for any and all
-asynchronous operations enqueued on queue @var{arg}.
+This function enqueues a wait operation on the queue @var{async} for any
+and all asynchronous operations that have been previously enqueued on
+any queue.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
-@item @emph{Prototype}: @tab @code{acc_wait_async(int arg, int async);}
+@item @emph{Prototype}: @tab @code{acc_wait_all_async(int async);}
 @end multitable
 
 @item @emph{Fortran}:
 @multitable @columnfractions .20 .80
-@item @emph{Interface}: @tab @code{subroutine acc_wait_async(arg, async)}
-@item                   @tab @code{integer(acc_handle_kind) arg, async}
+@item @emph{Interface}: @tab @code{subroutine acc_wait_all_async(async)}
+@item                   @tab @code{integer(acc_handle_kind) async}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.9.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.13.
 @end table
 
 
 
-@node acc_init
-@section @code{acc_init} -- Initialize runtime for a specific device type.
+@node acc_get_default_async
+@section @code{acc_get_default_async} -- Retrieve the default async queue.
 @table @asis
 @item @emph{Description}
-This function initializes the runtime for the device type specified in
-@var{devicetype}.
+This function returns the value of the default async queue.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
-@item @emph{Prototype}: @tab @code{acc_init(acc_device_t devicetype);}
+@item @emph{Prototype}: @tab @code{acc_get_default_async(void);}
 @end multitable
 
 @item @emph{Fortran}:
 @multitable @columnfractions .20 .80
-@item @emph{Interface}: @tab @code{subroutine acc_init(devicetype)}
-@item                   @tab @code{integer(acc_device_kind) devicetype}
+@item @emph{Interface}: @tab @code{function acc_get_default_async()}
+@item                   @tab @code{integer(acc_handle_kind) acc_get_default_async}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.12.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.14.
 @end table
 
 
 
-@node acc_shutdown
-@section @code{acc_shutdown} -- Shuts down the runtime for a specific device type.
+@node acc_set_default_async
+@section @code{acc_set_default_async} -- Set the default async queue.
 @table @asis
 @item @emph{Description}
-This function shuts down the runtime for the device type specified in
-@var{devicetype}.
+This function sets the default async queue for when the user does not
+specify one.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
-@item @emph{Prototype}: @tab @code{acc_shutdown(acc_device_t devicetype);}
+@item @emph{Prototype}: @tab @code{acc_set_default_async(int async);}
 @end multitable
 
 @item @emph{Fortran}:
 @multitable @columnfractions .20 .80
-@item @emph{Interface}: @tab @code{subroutine acc_shutdown(devicetype)}
-@item                   @tab @code{integer(acc_device_kind) devicetype}
+@item @emph{Interface}: @tab @code{subroutine acc_set_default_async(async)}
+@item                   @tab @code{integer(acc_handle_kind) async}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.13.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.15.
 @end table
 
 
@@ -2280,8 +2332,8 @@  return @code{false}.
 
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.14.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.16.
 @end table
 
 
@@ -2299,8 +2351,8 @@  the device address of the allocated memory.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.15.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.17.
 @end table
 
 
@@ -2317,8 +2369,8 @@  Free previously allocated device memory at the device address @code{a}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.16.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.18.
 @end table
 
 
@@ -2350,8 +2402,8 @@  variable or array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.17.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.19.
 @end table
 
 
@@ -2423,8 +2475,8 @@  array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-3.2.19.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.20.
 @end table
 
 
@@ -2496,7 +2548,7 @@  array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.21.
 @end table
 
@@ -2528,7 +2580,7 @@  array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.22.
 @end table
 
@@ -2561,7 +2613,7 @@  array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.23.
 @end table
 
@@ -2594,7 +2646,7 @@  array element and @var{len} specifies the length in bytes.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.24.
 @end table
 
@@ -2614,7 +2666,7 @@  specified with the host address @var{h} and a length of @var{len}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.25.
 @end table
 
@@ -2633,7 +2685,7 @@  specified by @var{h}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.26.
 @end table
 
@@ -2652,7 +2704,7 @@  host address specified by @var{h}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.27.
 @end table
 
@@ -2671,7 +2723,7 @@  device address specified by @var{d}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.28.
 @end table
 
@@ -2710,7 +2762,7 @@  a @code{false} is return to indicate the mapped memory is not present.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.29.
 @end table
 
@@ -2720,17 +2772,19 @@  a @code{false} is return to indicate the mapped memory is not present.
 @section @code{acc_memcpy_to_device} -- Copy host memory to device memory.
 @table @asis
 @item @emph{Description}
-This function copies host memory specified by host address of @var{src} to
-device memory specified by the device address @var{dest} for a length of
-@var{bytes} bytes.
+This function copies host memory specified by host address of
+@var{src} to device memory specified by the device address @var{dest}
+for a length of @var{bytes} bytes. The _async version requires the
+user to specify the @var{async} queue.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
 @item @emph{Prototype}: @tab @code{acc_memcpy_to_device(d_void *dest, h_void *src, size_t bytes);}
+@item @emph{Prototype}: @tab @code{acc_memcpy_to_device_async(d_void *dest, h_void *src, size_t bytes, int async);}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.30.
 @end table
 
@@ -2740,17 +2794,41 @@  device memory specified by the device address @var{dest} for a length of
 @section @code{acc_memcpy_from_device} -- Copy device memory to host memory.
 @table @asis
 @item @emph{Description}
-This function copies host memory specified by host address of @var{src} from
-device memory specified by the device address @var{dest} for a length of
-@var{bytes} bytes.
+This function copies host memory specified by host address of
+@var{src} from device memory specified by the device address
+@var{dest} for a length of @var{bytes} bytes. The _async version
+requires the user to specify the @var{async} queue.
 
 @item @emph{C/C++}:
 @multitable @columnfractions .20 .80
 @item @emph{Prototype}: @tab @code{acc_memcpy_from_device(d_void *dest, h_void *src, size_t bytes);}
+@item @emph{Prototype}: @tab @code{acc_memcpy_from_device_async(d_void *dest, h_void *src, size_t bytes, int async);}
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+3.2.31.
+@end table
+
+
+
+@node acc_memcpy_device
+@section @code{acc_memcpy_device} -- Copy memory to device.
+@table @asis
+@item @emph{Description}
+This function copies memory address of @var{src} from device memory
+specified by the device address @var{dest} for a length of @var{bytes}
+bytes. The _async version requires the user to specify the @var{async}
+queue. @emph{This is currently unimplemented.}
+
+@item @emph{C/C++}:
+@multitable @columnfractions .20 .80
+@item @emph{Prototype}: @tab @code{acc_memcpy_device(d_void *dest, h_void *src, size_t bytes);}
+@item @emph{Prototype}: @tab @code{acc_memcpy_device_async(d_void *dest, h_void *src, size_t bytes, int async);}
+@end multitable
+
+@item @emph{Reference}:
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
 3.2.31.
 @end table
 
@@ -2769,8 +2847,8 @@  as used by the CUDA Runtime or Driver API's.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-A.2.1.1.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+A.2.1.
 @end table
 
 
@@ -2788,8 +2866,8 @@  as used by the CUDA Runtime or Driver API's.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-A.2.1.2.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+A.2.1.
 @end table
 
 
@@ -2807,8 +2885,8 @@  as used by the CUDA Runtime or Driver API's.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-A.2.1.3.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+A.2.1.
 @end table
 
 
@@ -2826,8 +2904,8 @@  the asynchronous value specified by @var{async}.
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openacc.org/, OpenACC specification v2.0}, section
-A.2.1.4.
+@uref{http://www.openacc.org/, OpenACC specification v2.5}, section
+A.2.1.
 @end table