Update the OpenMP status for features that were added in the last months.
Comments/suggestions? Okay to commit? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
gcc-13/changes.html + projects/gomp/: OpenMP update * htdocs/gcc-13/changes.html: Update OpenMP entry; fix html syntax. * htdocs/projects/gomp/index.html: Update OpenMP 5.x implementation status; add missing item from libgomp.texi + flip two items to have same order as the .texi. htdocs/gcc-13/changes.html | 42 ++++++++++++++++++++++++++++++++--------- htdocs/projects/gomp/index.html | 40 +++++++++++++++++++++++++++++---------- 2 files changed, 63 insertions(+), 19 deletions(-) diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html index c4189c1b..24b97515 100644 --- a/htdocs/gcc-13/changes.html +++ b/htdocs/gcc-13/changes.html @@ -31,7 +31,6 @@ a work-in-progress.</p> <li>The support for the <code>cr16-elf</code>, <code>tilegx*-linux</code>, <code>tilepro*-linux</code>, <code>hppa[12]*-*-hpux10*</code>, <code>hppa[12]*-*-hpux11*</code> and <code>m32c-rtems</code> configurations has been removed.</li> -</li> </ul> @@ -41,14 +40,39 @@ a work-in-progress.</p> <ul> <li><a href="https://gcc.gnu.org/projects/gomp/">OpenMP</a> <ul> - <li>The following OpenMP 5.1 features have been added: the - <code>omp_all_memory</code> reserved locator, the <code>inoutset</code> - modifier to the <code>depend</code> clause, the <code>nowait</code> - clause for the <code>taskwait</code> directive and the - <code>omp_target_is_accessible</code>, <code>omp_target_memcpy_async</code>, - <code>omp_target_memcpy_rect_async</code> and - <code>omp_get_mapped_ptr</code> API routines. Fortran now supports - non-rectangular loop nests, which were added for C/C++ in GCC 11.</li> + <li> + Reverse offload is now supported and the all clauses to the + <code>requires</code> directive are now accepted; however, the + <code>requires_offload</code>, <code>unified_address</code> + and <code>unified_shared_memory</code> clauses cause that the + only available device is the initial device (the host). + </li> + <li> + The following OpenMP 5.1 features have been added: the + <code>omp_all_memory</code> reserved locator, the <code>inoutset</code> + modifier to the <code>depend</code> clause, the <code>nowait</code> + clause for the <code>taskwait</code> directive and the + <code>omp_target_is_accessible</code>, <code>omp_target_memcpy_async</code>, + <code>omp_target_memcpy_rect_async</code> and + <code>omp_get_mapped_ptr</code> API routines. Fortran now supports + non-rectangular loop nests, which were added for C/C++ in GCC 11. + </li> + <li> + Initial support for OpenMP 5.2 features have been added: Support for + <code>firstprivate</code> and <code>allocate</code> clauses on the + <code>scope</code> construct and the OpenMP 5.2 syntax of the + <code>linear</code> clause; the new enum/constants + <code>omp_initial_device</code> and <code>omp_invalid_device</code>; and + optionally omitting the map-type in <code>target enter/exit data</code>. + The <code>enter</code> clause (as alias for <code>to</code>) has been added + to the <code>declare target</code> directive. + </li> + <li> + For user defined allocators requesting high bandwidth or large capacity + memspaces or interleaved partitioning, the <a + href="http://memkind.github.io/memkind/">memkind</a> library is used, + if available at runtime. + </li> </ul> </li> <li> diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html index edafa0d3..92cbd9ab 100644 --- a/htdocs/projects/gomp/index.html +++ b/htdocs/projects/gomp/index.html @@ -307,8 +307,17 @@ than listed, depending on resolved corner cases and optimizations.</p> </tr> <tr> <td><code>requires</code> directive</td> - <td class="partial"><a href="../../gcc-9/changes.html#c-family">GCC 9</a><br><a href="../../gcc-12/changes.html#languages">GCC 12</a><br>–</td> - <td>(<code>atomic_default_mem_order</code>)<br>(<code>dynamic_allocators</code>)<br>rest parsing only</td> + <td class="partial"> + <a href="../../gcc-9/changes.html#c-family">GCC 9</a><br> + <a href="../../gcc-12/changes.html#languages">GCC 12</a><br> + <a href="../../gcc-13/changes.html#languages">GCC 13</a> + </td> + <td> + (<code>atomic_default_mem_order</code>)<br> + (<code>dynamic_allocators</code>)<br> + complete but no non-host devices provides <code>unified_address</code>, + <code>unified_shared_memory</code> or <code>reverse_offload</code> + </td> </tr> <tr> <td><code>conditional</code> modifier to <code>lastprivate</code> clause</td> @@ -417,8 +426,14 @@ than listed, depending on resolved corner cases and optimizations.</p> </tr> <tr> <td><code>ancestor</code> modifier on <code>device</code> clause</td> - <td class="partial"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> - <td>Reverse offload unsupported</td> + <td class="supported"> + <a href="../../gcc-12/changes.html#languages">GCC 12</a><br> + <a href="../../gcc-13/changes.html#languages">GCC 13</a> + </td> + <td> + Reverse offload unsupported<br> + See comment for <code>requires</code> + </td> </tr> <tr> <td>Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array section</td> @@ -705,6 +720,12 @@ than listed, depending on resolved corner cases and optimizations.</p> <td class="unsupported">No</td> <td></td> </tr> + <tr> + <td>Pointer predetermined firstprivate getting initialized + to address of matching mapped list item per 5.1, Sect. 2.21.7.2</td> + <td class="unsupported">No</td> + <td></td> + </tr> <tr> <td><code>ompt_sync_region_t</code> enum additions</td> <td class="unsupported">No</td> @@ -730,7 +751,6 @@ than listed, depending on resolved corner cases and optimizations.</p> <td class="unsupported">No</td> <td></td> </tr> - <tr> </tbody> </table> @@ -862,8 +882,8 @@ than listed, depending on resolved corner cases and optimizations.</p> <td></td> </tr> <tr> - <td>Default map type for <code>map</code> clause in <code>target enter/exit data</code></td> - <td class="unsupported">No</td> + <td>Default map-type for <code>map</code> clause in <code>target enter/exit data</code></td> + <td class="supported"><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> <td></td> </tr> <tr> @@ -888,16 +908,16 @@ than listed, depending on resolved corner cases and optimizations.</p> </tr> <tr> <td>Conforming device numbers and <code>omp_initial_device</code> and <code>omp_invalid_device</code> enum/PARAMETER</td> - <td class="unsupported">No</td> + <td class="supported"><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> <td></td> </tr> <tr> - <td><em>interop_types</em> in any position of the modifier list for the <code>init</code> clause of the <code>interop</code> construct</td> + <td>Initial value of <em>default-device-var</em> ICV with <code>OMP_TARGET_OFFLOAD=mandatory</code></td> <td class="unsupported">No</td> <td></td> </tr> <tr> - <td>Initial value of <em>default-device-var</em> ICV with <code>OMP_TARGET_OFFLOAD=mandatory</code></td> + <td><em>interop_types</em> in any position of the modifier list for the <code>init</code> clause of the <code>interop</code> construct</td> <td class="unsupported">No</td> <td></td> </tr>