Author: abataev
Date: Mon Jun 30 05:22:46 2014
New Revision: 212034
URL: http://llvm.org/viewvc/llvm-project?rev=212034&view=rev
Log:
[OPENMP] Added table with allowed nesting info for OpenMP regions (per request
from Samuel F Antao).
Modified:
cfe/trunk/lib/Sema/SemaOpenMP.cpp
Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=212034&r1=212033&r2=212034&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
+++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Mon Jun 30 05:22:46 2014
@@ -971,6 +971,52 @@ void Sema::ActOnOpenMPRegionStart(OpenMP
bool CheckNestingOfRegions(Sema &SemaRef, DSAStackTy *Stack,
OpenMPDirectiveKind CurrentRegion,
SourceLocation StartLoc) {
+ // Allowed nesting of constructs
+ //
+------------------+-----------------+------------------------------------+
+ // | Parent directive | Child directive | Closely (!), No-Closely(+),
Both(*)|
+ //
+------------------+-----------------+------------------------------------+
+ // | parallel | parallel | *
|
+ // | parallel | for | *
|
+ // | parallel | simd | *
|
+ // | parallel | sections | *
|
+ // | parallel | section | +
|
+ // | parallel | single | *
|
+ //
+------------------+-----------------+------------------------------------+
+ // | for | parallel | *
|
+ // | for | for | +
|
+ // | for | simd | *
|
+ // | for | sections | +
|
+ // | for | section | +
|
+ // | for | single | +
|
+ //
+------------------+-----------------+------------------------------------+
+ // | simd | parallel |
|
+ // | simd | for |
|
+ // | simd | simd |
|
+ // | simd | sections |
|
+ // | simd | section |
|
+ // | simd | single |
|
+ //
+------------------+-----------------+------------------------------------+
+ // | sections | parallel | *
|
+ // | sections | for | +
|
+ // | sections | simd | *
|
+ // | sections | sections | +
|
+ // | sections | section | *
|
+ // | sections | single | +
|
+ //
+------------------+-----------------+------------------------------------+
+ // | section | parallel | *
|
+ // | section | for | +
|
+ // | section | simd | *
|
+ // | section | sections | +
|
+ // | section | section | +
|
+ // | section | single | +
|
+ //
+------------------+-----------------+------------------------------------+
+ // | single | parallel | *
|
+ // | single | for | +
|
+ // | single | simd | *
|
+ // | single | sections | +
|
+ // | single | section | +
|
+ // | single | single | +
|
+ //
+------------------+-----------------+------------------------------------+
if (Stack->getCurScope()) {
auto ParentRegion = Stack->getParentDirective();
bool NestingProhibited = false;
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits