diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2015-09-28 06:39:35 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2015-09-28 06:39:35 +0000 |
commit | d14d1e6f25a463a8856cde2e83593a0b71054dc2 (patch) | |
tree | 47b6b8b3a81752665e395af4ced67a7ed9ebc60b /clang/lib/Serialization | |
parent | f32f5f23052439dbb123b678ed5b811394d7937e (diff) | |
download | bcm5719-llvm-d14d1e6f25a463a8856cde2e83593a0b71054dc2.tar.gz bcm5719-llvm-d14d1e6f25a463a8856cde2e83593a0b71054dc2.zip |
[OPENMP 4.1] Add 'simd' clause for 'ordered' directive.
Parsing and sema analysis for 'simd' clause in 'ordered' directive.
Description
If the simd clause is specified, the ordered regions encountered by any thread will use only a single SIMD lane to execute the ordered
regions in the order of the loop iterations.
Restrictions
An ordered construct with the simd clause is the only OpenMP construct that can appear in the simd region
llvm-svn: 248696
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 5 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 6969823030d..4d55deeaa50 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -1780,6 +1780,9 @@ OMPClause *OMPClauseReader::readClause() { case OMPC_threads: C = new (Context) OMPThreadsClause(); break; + case OMPC_simd: + C = new (Context) OMPSIMDClause(); + break; case OMPC_private: C = OMPPrivateClause::CreateEmpty(Context, Record[Idx++]); break; @@ -1904,6 +1907,8 @@ void OMPClauseReader::VisitOMPSeqCstClause(OMPSeqCstClause *) {} void OMPClauseReader::VisitOMPThreadsClause(OMPThreadsClause *) {} +void OMPClauseReader::VisitOMPSIMDClause(OMPSIMDClause *) {} + void OMPClauseReader::VisitOMPPrivateClause(OMPPrivateClause *C) { C->setLParenLoc(Reader->ReadSourceLocation(Record, Idx)); unsigned NumVars = C->varlist_size(); diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index 5c86dc1b4f5..33cffaf115e 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -1812,6 +1812,8 @@ void OMPClauseWriter::VisitOMPSeqCstClause(OMPSeqCstClause *) {} void OMPClauseWriter::VisitOMPThreadsClause(OMPThreadsClause *) {} +void OMPClauseWriter::VisitOMPSIMDClause(OMPSIMDClause *) {} + void OMPClauseWriter::VisitOMPPrivateClause(OMPPrivateClause *C) { Record.push_back(C->varlist_size()); Writer->Writer.AddSourceLocation(C->getLParenLoc(), Record); |