@@ -682,6 +682,8 @@ def OMP_CancellationPoint : Directive<"cancellation point"> {
682
682
let association = AS_None;
683
683
let category = CA_Executable;
684
684
}
685
+ def OMP_Coexecute : Directive<"coexecute"> {}
686
+ def OMP_EndCoexecute : Directive<"end coexecute"> {}
685
687
def OMP_Critical : Directive<"critical"> {
686
688
let allowedOnceClauses = [
687
689
VersionedClause<OMPC_Hint>,
@@ -2198,6 +2200,33 @@ def OMP_TargetTeams : Directive<"target teams"> {
2198
2200
let leafConstructs = [OMP_Target, OMP_Teams];
2199
2201
let category = CA_Executable;
2200
2202
}
2203
+ def OMP_TargetTeamsCoexecute : Directive<"target teams coexecute"> {
2204
+ let allowedClauses = [
2205
+ VersionedClause<OMPC_If>,
2206
+ VersionedClause<OMPC_Map>,
2207
+ VersionedClause<OMPC_Private>,
2208
+ VersionedClause<OMPC_Depend>,
2209
+ VersionedClause<OMPC_FirstPrivate>,
2210
+ VersionedClause<OMPC_IsDevicePtr>,
2211
+ VersionedClause<OMPC_HasDeviceAddr, 51>,
2212
+ VersionedClause<OMPC_Reduction>,
2213
+ VersionedClause<OMPC_Allocate>,
2214
+ VersionedClause<OMPC_UsesAllocators, 50>,
2215
+ VersionedClause<OMPC_Shared>,
2216
+ VersionedClause<OMPC_OMPX_Attribute>,
2217
+ ];
2218
+
2219
+ let allowedOnceClauses = [
2220
+ VersionedClause<OMPC_Device>,
2221
+ VersionedClause<OMPC_NoWait>,
2222
+ VersionedClause<OMPC_DefaultMap>,
2223
+ VersionedClause<OMPC_Default>,
2224
+ VersionedClause<OMPC_NumTeams>,
2225
+ VersionedClause<OMPC_ThreadLimit>,
2226
+ VersionedClause<OMPC_OMPX_DynCGroupMem>,
2227
+ VersionedClause<OMPC_OMX_Bare>,
2228
+ ];
2229
+ }
2201
2230
def OMP_TargetTeamsDistribute : Directive<"target teams distribute"> {
2202
2231
let allowedClauses = [
2203
2232
VersionedClause<OMPC_Allocate>,
@@ -2484,6 +2513,22 @@ def OMP_TaskLoopSimd : Directive<"taskloop simd"> {
2484
2513
let leafConstructs = [OMP_TaskLoop, OMP_Simd];
2485
2514
let category = CA_Executable;
2486
2515
}
2516
+ def OMP_TeamsCoexecute : Directive<"teams coexecute"> {
2517
+ let allowedClauses = [
2518
+ VersionedClause<OMPC_Private>,
2519
+ VersionedClause<OMPC_FirstPrivate>,
2520
+ VersionedClause<OMPC_Shared>,
2521
+ VersionedClause<OMPC_Reduction>,
2522
+ VersionedClause<OMPC_Allocate>,
2523
+ VersionedClause<OMPC_OMPX_Attribute>,
2524
+ ];
2525
+ let allowedOnceClauses = [
2526
+ VersionedClause<OMPC_Default>,
2527
+ VersionedClause<OMPC_If, 52>,
2528
+ VersionedClause<OMPC_NumTeams>,
2529
+ VersionedClause<OMPC_ThreadLimit>
2530
+ ];
2531
+ }
2487
2532
def OMP_TeamsDistribute : Directive<"teams distribute"> {
2488
2533
let allowedClauses = [
2489
2534
VersionedClause<OMPC_Allocate>,
0 commit comments