@@ -667,6 +667,7 @@ def OMP_CancellationPoint : Directive<"cancellation point"> {
667
667
let association = AS_None;
668
668
let category = CA_Executable;
669
669
}
670
+ def OMP_Coexecute : Directive<"coexecute"> {}
670
671
def OMP_Critical : Directive<"critical"> {
671
672
let allowedOnceClauses = [
672
673
VersionedClause<OMPC_Hint>,
@@ -717,6 +718,7 @@ def OMP_DeclareTarget : Directive<"declare target"> {
717
718
let association = AS_None;
718
719
let category = CA_Declarative;
719
720
}
721
+ def OMP_EndCoexecute : Directive<"end coexecute"> {}
720
722
def OMP_EndDeclareTarget : Directive<"end declare target"> {
721
723
let association = AS_Delimited;
722
724
let category = OMP_DeclareTarget.category;
@@ -2168,6 +2170,33 @@ def OMP_TargetTeams : Directive<"target teams"> {
2168
2170
let leafConstructs = [OMP_Target, OMP_Teams];
2169
2171
let category = CA_Executable;
2170
2172
}
2173
+ def OMP_TargetTeamsCoexecute : Directive<"target teams coexecute"> {
2174
+ let allowedClauses = [
2175
+ VersionedClause<OMPC_If>,
2176
+ VersionedClause<OMPC_Map>,
2177
+ VersionedClause<OMPC_Private>,
2178
+ VersionedClause<OMPC_Depend>,
2179
+ VersionedClause<OMPC_FirstPrivate>,
2180
+ VersionedClause<OMPC_IsDevicePtr>,
2181
+ VersionedClause<OMPC_HasDeviceAddr, 51>,
2182
+ VersionedClause<OMPC_Reduction>,
2183
+ VersionedClause<OMPC_Allocate>,
2184
+ VersionedClause<OMPC_UsesAllocators, 50>,
2185
+ VersionedClause<OMPC_Shared>,
2186
+ VersionedClause<OMPC_OMPX_Attribute>,
2187
+ ];
2188
+
2189
+ let allowedOnceClauses = [
2190
+ VersionedClause<OMPC_Device>,
2191
+ VersionedClause<OMPC_NoWait>,
2192
+ VersionedClause<OMPC_DefaultMap>,
2193
+ VersionedClause<OMPC_Default>,
2194
+ VersionedClause<OMPC_NumTeams>,
2195
+ VersionedClause<OMPC_ThreadLimit>,
2196
+ VersionedClause<OMPC_OMPX_DynCGroupMem>,
2197
+ VersionedClause<OMPC_OMX_Bare>,
2198
+ ];
2199
+ }
2171
2200
def OMP_TargetTeamsDistribute : Directive<"target teams distribute"> {
2172
2201
let allowedClauses = [
2173
2202
VersionedClause<OMPC_Allocate>,
@@ -2446,6 +2475,22 @@ def OMP_TaskLoopSimd : Directive<"taskloop simd"> {
2446
2475
let leafConstructs = [OMP_TaskLoop, OMP_Simd];
2447
2476
let category = CA_Executable;
2448
2477
}
2478
+ def OMP_TeamsCoexecute : Directive<"teams coexecute"> {
2479
+ let allowedClauses = [
2480
+ VersionedClause<OMPC_Private>,
2481
+ VersionedClause<OMPC_FirstPrivate>,
2482
+ VersionedClause<OMPC_Shared>,
2483
+ VersionedClause<OMPC_Reduction>,
2484
+ VersionedClause<OMPC_Allocate>,
2485
+ VersionedClause<OMPC_OMPX_Attribute>,
2486
+ ];
2487
+ let allowedOnceClauses = [
2488
+ VersionedClause<OMPC_Default>,
2489
+ VersionedClause<OMPC_If, 52>,
2490
+ VersionedClause<OMPC_NumTeams>,
2491
+ VersionedClause<OMPC_ThreadLimit>
2492
+ ];
2493
+ }
2449
2494
def OMP_TeamsDistribute : Directive<"teams distribute"> {
2450
2495
let allowedClauses = [
2451
2496
VersionedClause<OMPC_Allocate>,
0 commit comments