This patch updates both https://gcc.gnu.org/gcc-15/changes.html#openmp and
https://gcc.gnu.org/projects/gomp/ for the current OpenMP implementation status.
It also fixes a typo and intents to actually commit the change that mentions
the support for aarch64 to nvptx offloading,
cf. https://gcc.gnu.org/pipermail/gcc-patches/2024-December/671799.html
Comments before [or after :-)] I commit(ted) it?
Tobias
PS: For dispatch, the OpenMP 6 support is almost but not fully complete,
lacking a small addition to adjust_args. If that still lands for GCC 15,
the wording could be simplified.
gcc-15/changes.html + projects/gomp/: OpenMP update for interop
It additionally mentiones the improved aarch64 with nvptx offload
support (PR96265); the change was discussed on Dev 17, 2024 but
not committed.
htdocs/gcc-15/changes.html | 23 ++++++++++++++++++++---
htdocs/projects/gomp/index.html | 10 +++++-----
2 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/htdocs/gcc-15/changes.html b/htdocs/gcc-15/changes.html
index 14bd3f77..d1dbe358 100644
--- a/htdocs/gcc-15/changes.html
+++ b/htdocs/gcc-15/changes.html
@@ -66,6 +66,11 @@ a work-in-progress.</p>
href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-incremental"
><code>-flto-incremental=</code></a>.
</li>
+ <li>
+ For offloading, issues preventing some host-device architecture
+ combinations have been resolved. In particular, offloading from aarch64
+ hosts to nvptx devices is now supported.
+ </li>
</ul>
@@ -118,10 +123,22 @@ a work-in-progress.</p>
selectors in both <code>metadirective</code> and
<code>declare variant</code> (the latter with some restrictions).
</li>
+ <li>
+ The <code>interop</code> construct and the OpenMP interoperability API
+ routines for C, C++ and Fortran are now implemented, including the
+ OpenMP 6.0 additions. This includes foreign-runtime support for <a
+ href= "https://gcc.gnu.org/onlinedocs/libgomp/Foreign-runtime-support-for-Nvidia-GPUs.html"
+ >Cuda, Cuda Driver, and HIP on Nvida GPUs</a> and for <a
+ href="https://gcc.gnu.org/onlinedocs/libgomp/Foreign-runtime-support-for-AMD-GPUs.html"
+ >HIP and HSA on AMD GPUs</a>.
+ </li>
<li>
The OpenMP 5.1 <code>dispatch</code> construct has been implemented
- with support for the <code>adjust_args</code> clause to the
- <code>declare variant</code> directive.
+ with support for the <code>adjust_args</code> and <code>append_args</code>
+ clauses to the <code>declare variant</code> directive, including the
+ following OpenMP 6.0 additions: the <code>interop</code> clause to
+ <code>dispatch</code> and the syntax extensions to <code>append_args</code>
+ are supported.
</li>
<li>
OpenMP 6.0: The <a
@@ -700,7 +717,7 @@ asm (".text; %cc0: mov %cc2, %%r0; .previous;"
<h3>PowerPC Darwin</h3>
<ul>
- <li>Fortran's IEEE modules are now suppored on Darwin PowerPC.</li>
+ <li>Fortran's IEEE modules are now supported on Darwin PowerPC.</li>
</ul>
<!-- <h3 id="fuchsia">Fuchsia</h3> -->
diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html
index 97d14308..ab45cc5e 100644
--- a/htdocs/projects/gomp/index.html
+++ b/htdocs/projects/gomp/index.html
@@ -708,9 +708,8 @@ than listed, depending on resolved corner cases and optimizations.</p>
</tr>
<tr>
<td><code>declare variant</code>: new clauses <code>adjust_args</code> and <code>append_args</code></td>
- <td class="partial"><a href="../../gcc-15/changes.html#openmp">GCC 15</a></td>
- <td>For <code>append_args</code>, all interop objects
- must be specified in the <code>interop</code> clause of <code>dispatch</code></td>
+ <td class="supported"><a href="../../gcc-15/changes.html#openmp">GCC 15</a></td>
+ <td></td>
</tr>
<tr>
<td><code>dispatch</code> construct</td>
@@ -734,8 +733,9 @@ than listed, depending on resolved corner cases and optimizations.</p>
</tr>
<tr>
<td><code>interop</code> directive</td>
- <td class="unsupported">No</td>
- <td></td>
+ <td class="supported"><a href="../../gcc-15/changes.html#openmp">GCC 15</a></td>
+ <td>Cf. <a href="https://gcc.gnu.org/onlinedocs/libgomp/Offload-Target-Specifics.html">
+ Offload-Target Specifics</a></td>
</tr>
<tr>
<td><code>omp_interop_t</code> object support in runtime routines</td>