summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/OpenMPSupport.rst68
-rw-r--r--docs/ReleaseNotes.rst18
-rw-r--r--docs/index.rst1
3 files changed, 86 insertions, 1 deletions
diff --git a/docs/OpenMPSupport.rst b/docs/OpenMPSupport.rst
new file mode 100644
index 000000000000..c121df3e2010
--- /dev/null
+++ b/docs/OpenMPSupport.rst
@@ -0,0 +1,68 @@
+.. 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.1 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64 and PPC64[LE] devices.
+Support for Cuda devices is not ready yet.
+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:`Complete`.
+
+* #pragma omp target update: :good:`Complete`.
+
+* #pragma omp target: :partial:`Partial`. No support for the `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]: :good:`Complete`.
+
+Combined directives
+===================
+
+* #pragma omp parallel for simd: :good:`Complete`.
+
+* #pragma omp target parallel: :partial:`Partial`. No support for the `depend` clauses.
+
+* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `depend` clauses.
+
+* #pragma omp target simd: :partial:`Partial`. No support for the `depend` clauses.
+
+* #pragma omp target teams: :partial:`Partial`. No support for the `depend` clauses.
+
+* #pragma omp teams distribute [simd]: :good:`Complete`.
+
+* #pragma omp target teams distribute [simd]: :partial:`Partial`. No support for the and `depend` clauses.
+
+* #pragma omp teams distribute parallel for [simd]: :good:`Complete`.
+
+* #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` and `target`-based directives.
+In addition, the LLVM OpenMP runtime `libomp` supports the OpenMP Tools Interface (OMPT) on x86, x86_64, AArch64, and PPC64 on Linux, Windows, and mac OS.
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 92aa01c4b1ef..6857903c96d9 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -163,6 +163,15 @@ Attribute Changes in Clang
- The presence of __attribute__((availability(...))) on a declaration no longer
implies default visibility for that declaration on macOS.
+- Clang now supports configuration files. These are collections of driver
+ options, which can be applied by specifying the configuration file, either
+ using command line option `--config foo.cfg` or encoding it into executable
+ name `foo-clang`. Clang behaves as if the options from this file were inserted
+ before the options specified in command line. This feature is primary intended
+ to facilitate cross compilation. Details can be found in
+ `Clang Compiler User's Manual
+ <http://clang.llvm.org/docs/UsersManual.html#configuration-files>`.
+
- ...
Windows Support
@@ -209,7 +218,7 @@ OpenCL C Language Changes in Clang
OpenMP Support in Clang
----------------------------------
-- Added options `-f[no]-openmp-simd` that support code emission only foe OpenMP
+- Added options `-f[no]-openmp-simd` that support code emission only for OpenMP
SIMD-based directives, like `#pragma omp simd`, `#pragma omp parallel for simd`
etc. The code is emitted only for simd-based part of the combined directives
and clauses.
@@ -222,6 +231,13 @@ OpenMP Support in Clang
- Added support for `reduction`-based clauses on `task`-based directives from
upcoming OpenMP 5.0.
+- The LLVM OpenMP runtime `libomp` now supports the OpenMP Tools Interface (OMPT)
+ on x86, x86_64, AArch64, and PPC64 on Linux, Windows, and macOS. If you observe
+ a measurable performance impact on one of your applications without a tool
+ attached, please rebuild the runtime library with `-DLIBOMP_OMPT_SUPPORT=OFF` and
+ file a bug at `LLVM's Bugzilla <https://bugs.llvm.org/>`_ or send a message to the
+ `OpenMP development list <http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev>`_.
+
Internal API Changes
--------------------
diff --git a/docs/index.rst b/docs/index.rst
index 342ab74d2d80..ed479534ee97 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -39,6 +39,7 @@ Using Clang as a Compiler
SourceBasedCodeCoverage
Modules
MSVCCompatibility
+ OpenMPSupport
ThinLTO
CommandGuide/index
FAQ