[PATCH] D39457: [OPENMP] Current status of OpenMP support.
Alexey Bataev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 31 09:52:47 PDT 2017
ABataev created this revision.
Some info about supported features of OpenMP 4.5-5.0.
https://reviews.llvm.org/D39457
Files:
docs/OpenMPSupport.rst
docs/index.rst
Index: docs/index.rst
===================================================================
--- docs/index.rst
+++ docs/index.rst
@@ -39,6 +39,7 @@
SourceBasedCodeCoverage
Modules
MSVCCompatibility
+ OpenMPSupport
ThinLTO
CommandGuide/index
FAQ
Index: docs/OpenMPSupport.rst
===================================================================
--- /dev/null
+++ docs/OpenMPSupport.rst
@@ -0,0 +1,70 @@
+.. raw:: html
+
+ <style type="text/css">
+ .none { background-color: #FFCCCC }
+ .partial { background-color: #FFFF99 }
+ .good { background-color: #CCFF99 }
+ </style>
+
+.. role:: none
+.. role:: partial
+.. role:: good
+
+==================
+OpenMP Support
+==================
+
+Clang fully supports OpenMP 3.5 + some elements of OpenMP 4.5.
+The status of major OpenMP 4.5 features support in Clang.
+
+Standalone directives
+=====================
+
+* #pragma omp [for] simd: :good:`Complete`.
+
+* #pragma omp declare simd: :partial:`Partial`. We support parsing/semantic
+ analysis + generation of special attributes for X86 target, but still
+ missing the LLVM pass for vectorization.
+
+* #pragma omp taskloop [simd]: :good:`Complete`.
+
+* #pragma omp target [enter|exit] data: :good:`Mostly complete`. Some rework is
+ required for better stability.
+
+* #pragma omp target update: :good:`Mostly complete`. Some rework is
+ required for better stability.
+
+* #pragma omp target: :partial:`Partial`. No support for the `reduction`,
+ `nowait` and `depend` clauses.
+
+* #pragma omp declare target: :partial:`Partial`. No full codegen support.
+
+* #pragma omp teams: :good:`Complete`.
+
+* #pragma omp distribute [simd]: :good:`Complete`.
+
+* #pragma omp distribute parallel for [simd]: :partial:`Partial`. No full codegen support.
+
+Combined directives
+===================
+
+* #pragma omp parallel for simd: :good:`Complete`.
+
+* #pragma omp target parallel: :good:`Complete`.
+
+* #pragma omp target parallel for [simd]: :partial:`Partial`. No full codegen support.
+
+* #pragma omp target simd: :partial:`Partial`. No full codegen support.
+
+* #pragma omp target teams: :partial:`Partial`. No full codegen support.
+
+* #pragma omp teams distribute [simd]: :partial:`Partial`. No full codegen support.
+
+* #pragma omp target teams distribute [simd]: :partial:`Partial`. No full codegen support.
+
+* #pragma omp teams distribute parallel for [simd]: :partial:`Partial`. No full codegen support.
+
+* #pragma omp target teams distribute parallel for [simd]: :partial:`Partial`. No full codegen support.
+
+Clang does not support any constructs/updates from upcoming OpenMP 5.0 except for `reduction`-based clauses in the `task`-based directives.
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39457.121004.patch
Type: text/x-patch
Size: 2724 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171031/798cfa22/attachment.bin>
More information about the cfe-commits
mailing list