[OPENMP 4.0] Initial support for '#pragma omp declare simd' directive.
authorAlexey Bataev <a.bataev@hotmail.com>
Wed, 30 Mar 2016 10:43:55 +0000 (10:43 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Wed, 30 Mar 2016 10:43:55 +0000 (10:43 +0000)
commit587e1de4ea2af5a01f5d53647201c974a8fea1f2
treeb792d7e01dbfff2d4cc77d4e4a50dc4ffae8c6ff
parent8e46cd05a17c0499f744a85f8ef905cafb47eb3e
[OPENMP 4.0] Initial support for '#pragma omp declare simd' directive.

Initial parsing/sema/serialization/deserialization support for '#pragma
omp declare simd' directive.
The 'declare simd' construct can be applied to a function to enable the
creation of one or more versions that can process multiple arguments
using SIMD instructions from a single invocation from a SIMD loop.
If the function has any declarations, then the declare simd construct
for any declaration that has one must be equivalent to the one specified
 for the definition. Otherwise, the result is unspecified.
This pragma can be applied many times to the same declaration.
Internally this pragma is represented as an attribute. But we need special processing for this pragma because it must be used before function declaration, this directive is applied to.
Differential Revision: http://reviews.llvm.org/D10599

llvm-svn: 264853
16 files changed:
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/DiagnosticParseKinds.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Basic/OpenMPKinds.def
clang/include/clang/Parse/Parser.h
clang/include/clang/Sema/Sema.h
clang/lib/Basic/OpenMPKinds.cpp
clang/lib/Parse/ParseDecl.cpp
clang/lib/Parse/ParseDeclCXX.cpp
clang/lib/Parse/ParseOpenMP.cpp
clang/lib/Parse/Parser.cpp
clang/lib/Sema/SemaOpenMP.cpp
clang/test/OpenMP/declare_simd_ast_print.c [new file with mode: 0644]
clang/test/OpenMP/declare_simd_ast_print.cpp [new file with mode: 0644]
clang/test/OpenMP/declare_simd_messages.cpp [new file with mode: 0644]