public inbox for gcc-cvs-wwwdocs@sourceware.org help / color / mirror / Atom feed
From: Tobias Burnus <burnus@sourceware.org> To: gcc-cvs-wwwdocs@gcc.gnu.org Subject: gcc-wwwdocs branch master updated. f7651427bfa17d0a460dd63285d4da9130d21f33 Date: Tue, 17 May 2022 09:41:28 +0000 (GMT) [thread overview] Message-ID: <20220517094128.BB5B83858C51@sourceware.org> (raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 35756 bytes --] This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gcc-wwwdocs". The branch, master has been updated via f7651427bfa17d0a460dd63285d4da9130d21f33 (commit) from 020a4fdb22f26524b50e50ff7ac1470cb3fe0c6b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f7651427bfa17d0a460dd63285d4da9130d21f33 Author: Tobias Burnus <tobias@codesourcery.com> Date: Tue May 17 11:41:06 2022 +0200 Add OpenMP by-GCC-version implementation status * htdocs/projects/gomp/index.html: Add by-GCC-version implementation status; add new intro, add links and crossrefs. * htdocs/projects/gomp/index.html: Link it. * htdocs/gcc-13/changes.html: Likewise; document first new features. * htdocs/gcc.css (table.ompstatus): Add. diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html index a1b64df3..dc526530 100644 --- a/htdocs/gcc-13/changes.html +++ b/htdocs/gcc-13/changes.html @@ -37,6 +37,18 @@ a work-in-progress.</p> <!-- .................................................................. --> <h2 id="general">General Improvements</h2> +<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 and the + <code>omp_target_is_accessible</code> and <code>omp_get_mapped_ptr</code> + API routines.</li> + </ul> + </li> +</ul> + + <!-- .................................................................. --> <h2 id="languages">New Languages and Language specific improvements</h2> diff --git a/htdocs/gcc.css b/htdocs/gcc.css index f1081681..29807a24 100644 --- a/htdocs/gcc.css +++ b/htdocs/gcc.css @@ -115,6 +115,11 @@ table.cxxdrstatus td:nth-child(4) { text-align:center; } table.cxxdrstatus tr.separator { background: #f2f2f9; } table.cxxdrstatus { width: 65%; } +/* OpenMP status tables. */ +table.ompstatus th, table.cxxstatus td { border: 1px solid gray; } +table.ompstatus td:nth-child(2) { text-align:center; } +table.ompstatus tr.separator { background: #f2f2f9; } + /* Padded tables. */ table.padding5 th, td { border: 1px solid gray; padding:5px; } diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html index 59697c10..42932c77 100644 --- a/htdocs/projects/gomp/index.html +++ b/htdocs/projects/gomp/index.html @@ -3,13 +3,84 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<title>GOMP — An OpenMP implementation for GCC</title> +<title>GNU Offloading and Multi-Processing Project (GOMP)</title> <link rel="stylesheet" type="text/css" href="https://gcc.gnu.org/gcc.css" /> </head> <body> -<h1>Welcome to the home of GOMP</h1> +<h1>GNU Offloading and Multi-Processing Project (GOMP)</h1> + +<p>The GOMP project consists of implementation of OpenMP and OpenACC to +permit annotating the source code to permit running it concurrently with +thread parallelization and on offloading devices (<q>accelerators</q> such +as GPUs), including the associated run-time library and API routines. Both +OpenMP and OpenACC are supported with GCC's C, C++ and Fortran compilers.</p> + +<h2>Content</h2> +<ul> + <li><a href="#usage">Usage</a></li> + <li><a href="#history_and_goal">History and Project Goal</a></li> + <li><a href="#contributing">Contributing</a></li> + <li><a href="#bugs">Reporting Bugs</a></li> + <li><a href="#implementation-status">OpenMP Implementation Status</a>: + <a href="#omp2.5">2.5</a> · <a href="#omp3.0">5.0</a> · + <a href="#omp3.1">3.1</a> · <a href="#omp4.0">4.0</a> · + <a href="#omp4.5">4.5</a> · <a href="#omp5.0">5.0</a> · + <a href="#omp5.1">5.1</a> · <a href="#omp5.2">5.2</a></li> + <li><a href="#omp-status">OpenMP Releases and Status</a></li> +</ul> + +<h2 id="usage">Usage</h2> +<ul> + <li>To enable <strong><a href="https://www.openmp.org">OpenMP</a></strong>, + use <a + href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-fopenmp" + ><code>-fopenmp</code></a>; <code>-fopenmp-simd</code> can be used + to enable only the SIMD vectorization and loop-transformation constructs + without creating multiple threads, offloading code or adding library + dependency.</li> + <li>To enable <strong><a href="https://www.openacc.org">OpenACC</a></strong>, + use <a + href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-fopenacc" + ><code>-fopenacc</code></a>.</li> + <li>If either is enabled, offloading is automatically generated for all + offload-device types for which the compiler has been configured. Use <a + href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-foffload" + ><code>-foffload=</code></a> to disable or specify the offload-devices to be + used. Use <a + href="https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-foffload-options" + ><code>-foffload-options=</code></a> to pass device-specific compiler and + linker flags.</li> +</ul> + +<p>Diagnostics</p> +<ul> + <li>The <a + href="https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html#index-fopt-info" + ><code>-fopt-info</code></a> flag provides details about compile-time performed + optimizations.</li> + <li>Environment variables can be used to influence run-time behavior and output + more data, useful for debugging or performance tuning. See the <a + href="https://gcc.gnu.org/onlinedocs/libgomp/">GNU libgomp</a> manual for + details.</li> +</ul> + +<p>Documentation</p> +<ul> + <li><a href="https://gcc.gnu.org/onlinedocs/libgomp/">GNU libgomp</a> manual + for API routines, environment variables and implementation details.</li> + <li><a href="https://www.openmp.org/specifications/">OpenMP specification</a>, + including OpenMP API examples documents, reference cards and additional + definitions specification.</li> + <li><a href="https://www.openacc.org/specification">OpenACC</a> + specification.</li> + <li>Related GCC wiki pages: <a href="https://gcc.gnu.org/wiki/openmp" + >openmp</a>, <a href="https://gcc.gnu.org/wiki/OpenACC">OpenACC</a>, + <a href="https://gcc.gnu.org/wiki/Offloading">Offloading</a>.</li> +</ul> + +<h2 id="history_and_goal">History and Project Goal</h2> <p>The GOMP project has developed an implementation of <a href="https://www.openmp.org">OpenMP</a> @@ -39,10 +110,9 @@ efficient parallel code.</p> <p>OpenMP additionally permits to offload computations on accelerators such as <abbr title="Graphical Processing Units">GPUs</abbr>, making use of their highly parallel computation support; if -no accelarator is available, as fallback, the computation is +no accelerator is available, as fallback, the computation is then done on the host.</p> -<h2>Project goal</h2> <p>To remain relevant, free software development tools must support emerging technologies. By implementing OpenMP, GOMP provides a simplified syntax tools for creating software targeted @@ -54,20 +124,761 @@ projects.</p> extensions to target language parsers. A long-term goal is the generation of efficient and small code for OpenMP applications.</p> -<h2>Contributing</h2> +<p>When support for OpenACC was added, the project name <q>GOMP</q> +was reinterpreted as <q>GNU Offloading and Multi-Processing</q> instead +of denoting <q>GNU OpenMP</q>. + +<h2 id="contributing">Contributing</h2> <p>We encourage everyone to <a href="../../contribute.html">contribute changes</a> and help test GOMP. GOMP has been merged into mainline GCC.</p> -<h2>Reporting Bugs</h2> -<p>Please add "openmp" to the keywords field when filing a bug report.</p> - -<h2>Documentation</h2> -<p>libgomp, the GOMP support library, has -<a href="https://gcc.gnu.org/onlinedocs/libgomp/">online documentation</a> -available.</p> - -<h2>Status</h2> +<h2 id="bugs">Reporting Bugs</h2> +<p>Please add <q>openmp</q> or <q>openacc</q> to the keywords field when +filing a <a href="../../bugs/">bug report</a>.</p> + +<h2 id="implementation-status">OpenMP Implementation Status</h2> + +<p>Implementation status in libgomp manual: +<a href="https://gcc.gnu.org/onlinedocs/libgomp/OpenMP-Implementation-Status.html" +>Mainline (GCC 13)</a>, +<a href="https://gcc.gnu.org/onlinedocs/gcc-12.1.0/libgomp/OpenMP-Implementation-Status.html" +>GCC 12</a>.</p> + +<p>Disclaimer: A feature might be only fully supported in a later GCC version +than listed, depending on resolved corner cases and optimizations.</p> + + + +<h3 id="omp2.5">OpenMP 2.5</h3> +<ul> + <li>Supported since GCC 4.2</li> +</ul> + +<h3 id="omp3.0">OpenMP 3.0</h3> +<ul> + <li>Supported since GCC 4.4</li> +</ul> + +<h3 id="omp3.1">OpenMP 3.1</h3> +<ul> + <li>Supported since GCC 4.7</li> +</ul> + +<h3 id="omp4.0">OpenMP 4.0</h3> +<ul> + <li><strong>C/C++:</strong> Supported since GCC 4.9</li> + <li><strong>Fortran:</strong> Supported since GCC 4.9.1</li> +</ul> + +<h3 id="omp4.5">OpenMP 4.5</h3> +<ul> + <li><strong>C/C++:</strong> Supported since GCC 6</li> + <li><strong>Fortran:</strong> Partial support since GCC 7, full support since GCC 11</li> +</ul> + + +<h3 id="omp5.0">OpenMP 5.0</h3> + +<table class="ompstatus"> +<thead> + <tr class="separator"> + <th>Feature</th> + <th>GCC Version</th> + <th>Comments</th> + </tr> +</thead> +<tbody> + <tr> + <td><code>in_reduction</code> clause on task constructs</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Supporting C++'s range-based for loop</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Iterators</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>!= as relational-op in canonical loop form for C/C++</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>C/C++'s lvalue expressions in <code>depend</code> clauses</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>mutexinoutset</code> <em>dependence-type</em> for <code>depend</code> clause</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>depobj</code> construct and depend objects </td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>depend</code> clause on <code>taskwait</code></td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>teams</code> construct outside an enclosing target region</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Clauses <code>if</code>, <code>nontemporal</code> and <code>order(concurrent)</code> in <code>simd</code> construct</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a>/<a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>defaultmap</code> extensions</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>hint</code> clause on the <code>atomic</code> construct</td> + <td class="partial"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td>Stub only</td> + </tr> + <tr> + <td>Weak memory ordering clauses on <code>atomic</code> and <code>flush</code> construct</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Combined master constructs</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Runtime routines and environment variables to display runtimethread affinity information</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_pause_resource</code> and <code>omp_pause_resource_all</code> runtime routines</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>nonmonotonic</code> as default loop schedule modifier for worksharing-loop constructs</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>atomic</code> constructs in <code>simd</code></td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>task_reduction</code> clause with <code>taskgroup</code></td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>task</code> modifier to <code>reduction</code> clause</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>reduction</code> and <code>in_reduction</code> clauses on <code>taskloop</code> and <code>taskloop simd</code> constructs</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td><code>taskloop</code> construct cancelable by <code>cancel</code> construct</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </tr> + <tr> + <td>Lock hints were renamed to synchronization hints</td> + <td class="supported"><a href="../../gcc-9/changes.html#c-family">GCC 9</a></td> + <td></td> + </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> + </tr> + <tr> + <td><code>conditional</code> modifier to <code>lastprivate</code> clause</td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>scan</code> directive and <code>in_scan</code> modifier for the <code>reduction clause</code></td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>order(concurrent)</code> clause</td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>loop</code> construct</td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>declare variant</code> directive</td> + <td class="partial"><a href="../../gcc-10/changes.html#languages">GCC 10</a>/<a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td><em>simd</em> traits not handled correctly</td> + </tr> + <tr> + <td><code>use_device_addr</code> clause on <code>target data</code></td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td>Nested <code>declare target</code> directive</td> + <td class="supported"><a href="../../gcc-10/changes.html#languages">GCC 10</a></td> + <td></td> + </tr> + <tr> + <td><code>allocate</code> clause</td> + <td class="partial"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td>Initial support</td> + </tr> + <tr> + <td><em>target-offload-var</em> ICV and <code>OMP_TARGET_OFFLOAD</code> env variable</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td>Predefined memory spaces, memory allocators, allocator traits</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td>Some are only stubs</td> + </tr> + <tr> + <td>Non-rectangular loop nests</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a><br><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> + <td>C/C++<br>Fortran</td> + </tr> + <tr> + <td>Nested-parallel changes to <em>max-active-levels-var</em> ICV</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td><code>detach</code> clause to <code>task</code> construct</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_fulfill_event</code> runtime routine</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td>Memory management routines</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td>Implicit <code>declare target</code> directive</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_get_supported_active_levels</code> routine</td> + <td class="supported"><a href="../../gcc-11/changes.html#languages">GCC 11</a></td> + <td></td> + </tr> + <tr> + <td><code>in_reduction</code> clause on <code>target</code> constructs</td> + <td class="partial"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td><code>nowait</code> only stub</td> + </tr> + <tr> + <td><code>affinity</code> clause to <code>task</code> construct</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td>Stub only</td> + </tr> + <tr> + <td><code>close</code> <em>map-type-modifier</em></td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_get_device_num</code> runtime routine</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </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> + </tr> + <tr> + <td>Mapping C/C++ pointer variables and to assign the address of device memory mapped by an array section</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td>Mapping of Fortran pointer and allocatable variables, including pointer and allocatable components of variables</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td>Mapping of vars with allocatable components unsupported</td> + </tr> + <tr> + <td>Map-order clarifications</td> + <td class="partial">?</td> + <td>To be verified</td> + </tr> + <tr> + <td>Array shaping</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Array sections with non-unit strides in C and C++</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>metadirective</code> directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Collapse of associated loops that are imperfectly nested loops</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>allocate</code> directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Discontiguous array section with <code>target update</code> construct</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>C/C++'s lvalue expressions in <code>to</code>, <code>from</code> and <code>map</code> clauses</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>declare mapper</code> directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>OMPT interface</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>OMPD interface</td> + <td class="unsupported">No</td> + <td></td> + </tr> +</tbody> +</table> + + +<h3 id="omp5.1">OpenMP 5.1</h3> + +<table class="ompstatus"> +<thead> + <tr class="separator"> + <th>Feature</th> + <th>GCC Version</th> + <th>Comments</th> + </tr> +</thead> +<tbody> + <tr> + <td>OpenMP directive as C++ attribute specifiers</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>nothing</code> directive</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>error</code> directive</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>masked</code> construct</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>scope</code> directive</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>strict</code> modifier in the <code>grainsize</code> and <code>num_tasks</code> clauses of the <code>taskloop</code> construct</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>align</code> clause/modifier in <code>allocate</code> directive/clause and <code>allocator</code> directive</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td>C/C++ on clause only</td> + </tr> + <tr> + <td><code>thread_limit</code> clause to <code>target</code> construct</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>has_device_addr</code> clause to <code>target construct</code></td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td>Extensions to the <code>atomic</code> directive</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>seq_cst</code> clause on a <code>flush construct</code></td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>private</code> and <code>firstprivate</code> argument to <code>default</code> clause in C and C++</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_set_num_teams</code>, <code>omp_set_teams_thread_limit</code>, <code>omp_get_max_teams</code>, <code>omp_get_teams_thread_limit</code> runtime routines</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_calloc</code>, <code>omp_realloc</code>, <code>omp_aligned_alloc</code>, and <code>omp_aligned_callocruntime</code> routines</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_alloctrait_key_t</code> enum: <code>omp_atv_serialized</code> added, <code>omp_atv_default</code> changed</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_display_env</code> runtime routine</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td>Not inside target regions</td> + </tr> + <tr> + <td><code>OMP_PLACES</code> syntax extensions</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>OMP_NUM_TEAMS</code> and <code>OMP_TEAMS_THREAD_LIMIT</code> env variables</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td>Support of strictly structured blocks in Fortran</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td>Support of structured block sequences in C/C++</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>unconstrained</code> and <code>reproducible</code> modifiers on <code>order</code> clause</td> + <td class="supported"><a href="../../gcc-12/changes.html#languages">GCC 12</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_target_is_accessible</code> runtime routine</td> + <td class="supported"><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_get_mapped_ptr</code> runtime routine</td> + <td class="supported"><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> + <td></td> + </tr> + <tr> + <td><code>omp_all_memory</code> reserved locator</td> + <td class="supported"><a href="../../gcc-13/changes.html#languages">GCC 13</a></td> + <td></td> + </tr> + <tr> + <td><em>target_device trait</em> in OpenMP Context</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>target_device</code> selector set in context selectors</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>C/C++'s <code>declare variant</code> directive: elision support of preprocessed code</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>declare variant</code>: new clauses <code>adjust_args</code> and <code>append_args</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>dispatch</code> construct</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>device-specific ICV settings the environment variables</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>assume directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Loop transformation constructs</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>iterators in <code>target update</code> motion clauses and map clauses</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>indirect calls to the device version of a procedure or function in target regions</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>interop</code> directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>omp_interop_t</code> object support in runtime routines</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>nowait</code> clause in <code>taskwait</code> directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>inoutset</code> argument to the <code>depend</code> clause</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>present</code> argument to <code>defaultmap</code> clause</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>omp_target_memcpy_async</code> and <code>omp_target_memcpy_rect_async</code> runtime routines</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>ompt_scope_endpoint_t</code> enum: <code>ompt_scope_beginend</code></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> + <td></td> + </tr> + <tr> + <td><code>ompt_state_t</code> enum: <code>ompt_state_wait_barrier_implementation</code> and <code>ompt_state_wait_barrier_teams</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>ompt_callback_target_data_op_emi_t</code>, <code>ompt_callback_target_emi_t</code>, <code>ompt_callback_target_map_emi_t</code> and <code>ompt_callback_target_submit_emi_t</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>ompt_callback_error_t</code> type</td> + <td class="unsupported">No</td> + <td></td> + </tr> +</tbody> +</table> + + +<h3 id="omp5.2">OpenMP 5.2</h3> + +<table class="ompstatus"> +<thead> + <tr class="separator"> + <th>Feature</th> + <th>GCC Version</th> + <th>Comments</th> + </tr> +</thead> +<tbody> + <tr> + <td><code>omp_in_explicit_task</code> routine and <em>implicit-task-var</em> ICV</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>omp</code>/<code>ompx</code>/<code>omx</code> sentinels and <code>omp_</code>/<code>ompx_</code> namespaces</td> + <td class="other">N/A</td> + <td></td> + </tr> + <tr> + <td>Clauses on <code>end</code> directive can be on directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of no-argument <code>destroy</code> clause on <code>depobj</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>linear</code> clause syntax changes and <code>step</code> modifier</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of minus operator for reductions</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of separating <code>map</code> modifiers without comma</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>declare mapper</code> with iterator and <code>present</code> modifiers</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>If a matching mapped list item is not found in the data environment, the pointer retains its original value</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>New <code>enter</code> clause as alias for <code>to</code> on declare target directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of <code>to</code> clause on declare target directive</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Extended list of directives permitted in Fortran pure procedures</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>New <code>allocators</code> directive for Fortran</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of <code>allocator</code> directive for Fortran allocatables/pointers</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Optional paired <code>end</code> directive with <code>dispatch</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>New <code>memspace</code> and <code>traits</code> modifiers for <code>uses_allocators</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of traits array following the allocator_handle expression in <code>uses_allocators</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>New <code>otherwise</code> clause as alias for <code>default</code> on metadirectives</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of <code>default</code> clause on metadirectives</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of delimited form of <code>declare target</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Reproducible semantics changed for <code>order(concurrent)</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>allocate</code> and <code>firstprivate</code> clauses on <code>scope</code></td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>ompt_callback_work</code></td> + <td class="unsupported">No</td> + <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></td> + </tr> + <tr> + <td>New <code>doacross</code> clause as alias for <code>depend</code> with <code>source</code>/<code>sink</code> modifier</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td>Deprecation of <code>depend</code> with <code>source</code>/<code>sink</code> modifier</td> + <td class="unsupported">No</td> + <td></td> + </tr> + <tr> + <td><code>omp_cur_iteration</code> keyword</td> + <td class="unsupported">No</td> + <td></td> + </tr> +</tbody> +</table> + + +<h2 id="omp-status">OpenMP Releases and Status</h2> <dl> <dt><b>November 9, 2021</b></dt> <dd><p><a href="https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-2.pdf">OpenMP @@ -100,7 +911,7 @@ of the OpenMP 5.0 standard.</p></dd> version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. For details which features of OpenMP 5.0 are and which are not supported in the GCC 9 release see -<a href=https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html>this mail</a>. +<a href="https://gcc.gnu.org/legacy-ml/gcc-patches/2018-11/msg00628.html">this mail</a>. </p></dd> <dt><b>November 8, 2018</b></dt> diff --git a/htdocs/projects/index.html b/htdocs/projects/index.html index 0647ed6b..dc502ed0 100644 --- a/htdocs/projects/index.html +++ b/htdocs/projects/index.html @@ -30,6 +30,7 @@ help develop GCC:</p> <li><a href="cpplib.html">Projects for the C preprocessor.</a></li> <li><a href="c-frontend.html">Projects for improving the C front end.</a></li> <li><a href="cxx-status.html">Implementing new C++ features.</a></li> +<li><a href="gomp/">Implementing missing OpenMP features.</a></li> <li><a href="gupc.html">The GNU UPC Project.</a></li> <li><a href="#improve_the_installation_procedure">Improve the installation procedure</a></li> <li><a href="#simpler_porting">Simpler porting</a></li> ----------------------------------------------------------------------- Summary of changes: htdocs/gcc-13/changes.html | 12 + htdocs/gcc.css | 5 + htdocs/projects/gomp/index.html | 841 +++++++++++++++++++++++++++++++++++++++- htdocs/projects/index.html | 1 + 4 files changed, 844 insertions(+), 15 deletions(-) hooks/post-receive -- gcc-wwwdocs
reply other threads:[~2022-05-17 9:41 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220517094128.BB5B83858C51@sourceware.org \ --to=burnus@sourceware.org \ --cc=gcc-cvs-wwwdocs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).