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/AST | |
| 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/AST')
| -rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 2 | ||||
| -rw-r--r-- | clang/lib/AST/StmtProfile.cpp | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index 3ab8acbb1e1..d0603478e6a 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -701,6 +701,8 @@ void OMPClausePrinter::VisitOMPThreadsClause(OMPThreadsClause *) { OS << "threads"; } +void OMPClausePrinter::VisitOMPSIMDClause(OMPSIMDClause *) { OS << "simd"; } + void OMPClausePrinter::VisitOMPDeviceClause(OMPDeviceClause *Node) { OS << "device("; Node->getDevice()->printPretty(OS, nullptr, Policy, 0); diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp index 874aee1ebec..c807f5e2f9c 100644 --- a/clang/lib/AST/StmtProfile.cpp +++ b/clang/lib/AST/StmtProfile.cpp @@ -335,6 +335,8 @@ void OMPClauseProfiler::VisitOMPSeqCstClause(const OMPSeqCstClause *) {} void OMPClauseProfiler::VisitOMPThreadsClause(const OMPThreadsClause *) {} +void OMPClauseProfiler::VisitOMPSIMDClause(const OMPSIMDClause *) {} + template<typename T> void OMPClauseProfiler::VisitOMPClauseList(T *Node) { for (auto *E : Node->varlists()) { |

