[PATCH] D39457: [OPENMP] Current status of OpenMP support.
This revision was not accepted when it landed; it landed in state "Needs Review". This revision was automatically updated to reflect the committed changes. Closed by commit rC322018: [OPENMP] Current status of OpenMP support. (authored by ABataev, committed by ). Changed prior to commit: https://reviews.llvm.org/D39457?vs=128238=128957#toc Repository: rC Clang https://reviews.llvm.org/D39457 Files: docs/OpenMPSupport.rst docs/index.rst Index: docs/OpenMPSupport.rst === --- docs/OpenMPSupport.rst +++ docs/OpenMPSupport.rst @@ -0,0 +1,68 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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. + 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 === --- docs/OpenMPSupport.rst +++ docs/OpenMPSupport.rst @@ -0,0 +1,68 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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. + +*
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
hfinkel added a comment. In https://reviews.llvm.org/D39457#961824, @Hahnfeld wrote: > @hfinkel I think you requested this documentation on the mailing list. Can > you take a look if it matches your expectations so we can get this bundled in > the 6.0 release? Yes, this looks good. Thank you. Repository: rC Clang https://reviews.llvm.org/D39457 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 128238. ABataev added a comment. Updated status of `target (update|enter data|exit data)` directives. Marked that support for cuda devices is not ready yet. Repository: rC Clang 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,68 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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. + 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,68 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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. +
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
Hahnfeld added a comment. @hfinkel I think you requested this documentation on the mailing list. Can you take a look if it matches your expectations so we can get this bundled in the 6.0 release? Comment at: docs/OpenMPSupport.rst:17 + +Clang fully supports OpenMP 3.1 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64, PPC64[LE] and Cuda devices. +The status of major OpenMP 4.5 features support in Clang. We should probably say that current trunk is not able to compile for Cuda devices yet. Repository: rC Clang https://reviews.llvm.org/D39457 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 126820. ABataev added a comment. Status update Repository: rC Clang 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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. + 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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]:
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 126800. ABataev added a comment. Status update Repository: rC Clang 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target teams: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp teams distribute [simd]: :good:`Complete`. + +* #pragma omp target teams distribute [simd]: :partial:`Partial`. No support for the `nowait` 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. + 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 126773. ABataev added a comment. Status update. Repository: rC Clang 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp target teams: :partial:`Partial`. No support for the `nowait` and `depend` clauses. + +* #pragma omp teams distribute [simd]: :good:`Complete`. + +* #pragma omp target teams distribute [simd]: :partial:`Partial`. No full codegen support. + +* #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. + 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,69 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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 `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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support for the `nowait` and
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 125722. ABataev added a comment. Update Repository: rC Clang 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target teams: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp teams distribute [simd]: :good:`Complete`. + +* #pragma omp target teams distribute [simd]: :partial:`Partial`. No full codegen support. + +* #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`-based directives. + 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 124430. ABataev added a comment. Added codegen for `distribute parallel for simd` construct. 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +Combined directives +=== + +* #pragma omp parallel for simd: :good:`Complete`. + +* #pragma omp target parallel: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target teams: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #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. + 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +Combined directives
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 123932. ABataev added a comment. Added codegen for `target teams` construct. 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target teams: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #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. + 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,74 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 123373. ABataev added a comment. Updated info about supported constructs. 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,73 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target parallel for [simd]: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #pragma omp target simd: :partial:`Partial`. No support for the `reduction`, + `nowait` and `depend` clauses. + +* #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. + 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,73 @@ +.. raw:: html + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 122273. ABataev added a comment. Fixed version of OpenMP standard 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +* #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. + 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +*
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 122268. ABataev added a comment. Update status. 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. role:: none +.. role:: partial +.. role:: good + +== +OpenMP Support +== + +Clang fully supports OpenMP 3.5 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +* #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. + 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. role:: none +.. role:: partial +.. role:: good + +== +OpenMP Support +== + +Clang fully supports OpenMP 3.5 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64, PPC64[LE] and Cuda devices. +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]: :good:`Complete`. + +* #pragma omp target
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev updated this revision to Diff 121018. ABataev added a comment. Added info about supported devices. 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. role:: none +.. role:: partial +.. role:: good + +== +OpenMP Support +== + +Clang fully supports OpenMP 3.5 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64, PPC64[LE] and Cuda devices. +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. + 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. role:: none +.. role:: partial +.. role:: good + +== +OpenMP Support +== + +Clang fully supports OpenMP 3.5 + some elements of OpenMP 4.5. Clang supports offloading to X86_64, AArch64, PPC64[LE] and Cuda devices. +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
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
ABataev added a comment. In https://reviews.llvm.org/D39457#911950, @Hahnfeld wrote: > Do we want to add documentation about which target devices Clang can generate > code for? Ok Comment at: docs/OpenMPSupport.rst:46 + +* #pragma omp distribute parallel for [simd]: :partial:`Partial`. No full codegen support. + Hahnfeld wrote: > I think that's also a combined directive? No, it is not. It is part of device constructs https://reviews.llvm.org/D39457 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
Hahnfeld added a comment. Do we want to add documentation about which target devices Clang can generate code for? Comment at: docs/OpenMPSupport.rst:46 + +* #pragma omp distribute parallel for [simd]: :partial:`Partial`. No full codegen support. + I think that's also a combined directive? https://reviews.llvm.org/D39457 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D39457: [OPENMP] Current status of OpenMP support.
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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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. + 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 + + +.none { background-color: #FF } +.partial { background-color: #99 } +.good { background-color: #CCFF99 } + + +.. 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: