jdoerfert created this revision.
jdoerfert added reviewers: kkwli0, ABataev, RaviNarayanaswamy, gtbercea, 
Hahnfeld.
Herald added subscribers: jfb, guansong, bollu.
Herald added a project: clang.

This adds a more fine-grained list of OpenMP features with their
implementation status and associated reviews/commits.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D64375

Files:
  clang/docs/OpenMPSupport.rst

Index: clang/docs/OpenMPSupport.rst
===================================================================
--- clang/docs/OpenMPSupport.rst
+++ clang/docs/OpenMPSupport.rst
@@ -17,7 +17,7 @@
 OpenMP Support
 ==================
 
-Clang supports the following OpenMP 5.0 features
+Clang supports the following OpenMP 5.0 features (see also `OpenMP implementation details`_):
 
 * The `reduction`-based clauses in the `task` and `target`-based directives.
 
@@ -44,6 +44,7 @@
 In addition, the LLVM OpenMP runtime `libomp` supports the OpenMP Tools
 Interface (OMPT) on x86, x86_64, AArch64, and PPC64 on Linux, Windows, and macOS.
 
+
 General improvements
 --------------------
 - New collapse clause scheme to avoid expensive remainder operations.
@@ -129,3 +130,136 @@
   In some cases the local variables are actually allocated in the global memory,
   but the debug info may be not aware of it.
 
+
+.. _OpenMP implementation details:
+
+OpenMP 5.0 Implementation Details
+---------------------------------
+
+The following table provides a quick overview over various OpenMP 5.0 features
+and their implementation status. Please contact *openmp-dev* at
+*lists.llvm.org* for more information or if you want to help with the
+implementation.
+
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+|Category                      | Feature                                                      | Status       | Reviews                                    |
++==============================+==============================================================+==============+============================================+
+| loop extension               | support != in the canonical loop form                        | done         | D54441                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | #pragma omp loop (directive)                                 | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | collapse imperfectly nested loop                             | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | collapse non-rectangular nested loop                         | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | C++ range-base for loop                                      | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | clause: nosimd for SIMD directives                           | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| loop extension               | inclusive scan extension (matching C++17 PSTL)               | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| memory mangagement           | memory allocators                                            | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| memory mangagement           | allocate directive and allocate clause                       | claimed      | r355614,r335952                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| OMPD                         | OMPD interfaces                                              | mostly done  |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| OMPT                         | OMPT interfaces                                              | mostly done  |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| thread affinity extension    | thread affinity extension                                    | done         |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | taskloop reduction                                           | done         |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | task affinity                                                | done         |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | clause: depend on the taskwait construct                     | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | depend objects and detachable tasks                          | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | mutexinoutset dependence-type for tasks                      | done         | D53380,D57576                              |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | combined taskloop constructs                                 | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | master taskloop                                              | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | parallell master taskloop                                    | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | master taskloop simd                                         | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| task extension               | parallell master taskloop simd                               | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| SIMD extension               | atomic and critical constructs inside SIMD code              | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| SIMD extension               | SIMD nontemporal                                             | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | infer target functions from initializers                     | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | infer target variables from initializers                     | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | OMP_TARGET_FALLBACK env variable                             | claimed      | D50522                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | support full 'defaultmap' functionality                      | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | device specific functions                                    | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: device_type                                          | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: in_reduction                                         | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | omp_get_device_num()                                         | claimed      | D54342                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | structure mapping of references                              | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | nested target declare                                        | claimed      | D51378                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | implicitly map 'this' (this[:1])                             | claimed      | D55982                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | allow access to the reference count (omp_target_is_present)  | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | Fortran pointer mapping                                      | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | requires directive (unified shared memory)                   | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: unified_address, unified_shared_memory               | claimed      | D52625,D52359                              |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: reverse_offload                                      | done         | D52780                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: atomic_default_mem_order                             | done         | D53513                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: dynamic_allocators                                   | done         | D53079                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | user-defined mappers                                         | claimed      | D56326,D58638,D58523,D58074,D60972,D59474  |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | mapping lambda expression                                    | claimed      | D51107                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | clause: use_device_addr for target data                      | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | map(replicate) or map(local) when requires unified_shared_me | done         | D55719,D55892                              |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | reverse offload                                              | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| device extension             | teams construct on the host device                           | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| atomic extension             | hints for the atomic construct                               | done         | D51233                                     |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| base language                | C11 support                                                  | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| base language                | C++11/14/17 support                                          | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| base language                | lambda support                                               | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extension               | array shaping                                                | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extension               | library shutdown (omp_pause_resource[_all])                  | claimed      |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extension               | metadirectives                                               | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extension               | conditional modifier for lastprivate clause                  | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extension               | user-defined function variants                               | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extensions              | pointer/reference to pointer based array reductions          | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+| misc extensions              | prevent new type definitions in clauses                      | unclaimed    |                                            |
++------------------------------+--------------------------------------------------------------+--------------+--------------------------------------------+
+
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to