@@ -391,9 +391,7 @@ def ACC_Loop : Directive<"loop"> {
391391 let allowedClauses = [
392392 VersionedClause<ACCC_DeviceType>,
393393 VersionedClause<ACCC_Private>,
394- VersionedClause<ACCC_Reduction>
395- ];
396- let allowedOnceClauses = [
394+ VersionedClause<ACCC_Reduction>,
397395 VersionedClause<ACCC_Collapse>,
398396 VersionedClause<ACCC_Gang>,
399397 VersionedClause<ACCC_Tile>,
@@ -421,15 +419,17 @@ def ACC_Init : Directive<"init"> {
421419
422420// 2.15.1
423421def ACC_Routine : Directive<"routine"> {
424- let allowedOnceClauses = [
422+ let allowedClauses = [
425423 VersionedClause<ACCC_Bind>,
426424 VersionedClause<ACCC_DeviceType>,
427- VersionedClause<ACCC_NoHost>,
428425 VersionedClause<ACCC_Gang>,
429426 VersionedClause<ACCC_Seq>,
430427 VersionedClause<ACCC_Vector>,
431428 VersionedClause<ACCC_Worker>
432429 ];
430+ let allowedOnceClauses = [
431+ VersionedClause<ACCC_NoHost>
432+ ];
433433}
434434
435435// 2.14.3
@@ -532,32 +532,32 @@ def ACC_HostData : Directive<"host_data"> {
532532// 2.11
533533def ACC_KernelsLoop : Directive<"kernels loop"> {
534534 let allowedClauses = [
535+ VersionedClause<ACCC_Attach>,
536+ VersionedClause<ACCC_Collapse>,
535537 VersionedClause<ACCC_Copy>,
536538 VersionedClause<ACCC_Copyin>,
537539 VersionedClause<ACCC_Copyout>,
538540 VersionedClause<ACCC_Create>,
541+ VersionedClause<ACCC_DevicePtr>,
539542 VersionedClause<ACCC_DeviceType>,
543+ VersionedClause<ACCC_Gang>,
540544 VersionedClause<ACCC_NoCreate>,
545+ VersionedClause<ACCC_NumGangs>,
546+ VersionedClause<ACCC_NumWorkers>,
541547 VersionedClause<ACCC_Present>,
542548 VersionedClause<ACCC_Private>,
543549 VersionedClause<ACCC_Reduction>,
544- VersionedClause<ACCC_DevicePtr>,
545- VersionedClause<ACCC_Attach>,
546- VersionedClause<ACCC_Wait>
550+ VersionedClause<ACCC_Tile>,
551+ VersionedClause<ACCC_Vector>,
552+ VersionedClause<ACCC_VectorLength>,
553+ VersionedClause<ACCC_Wait>,
554+ VersionedClause<ACCC_Worker>
547555 ];
548556 let allowedOnceClauses = [
549557 VersionedClause<ACCC_Async>,
550- VersionedClause<ACCC_Collapse>,
551558 VersionedClause<ACCC_Default>,
552- VersionedClause<ACCC_Gang>,
553559 VersionedClause<ACCC_If>,
554- VersionedClause<ACCC_NumGangs>,
555- VersionedClause<ACCC_NumWorkers>,
556- VersionedClause<ACCC_Self>,
557- VersionedClause<ACCC_Tile>,
558- VersionedClause<ACCC_Vector>,
559- VersionedClause<ACCC_VectorLength>,
560- VersionedClause<ACCC_Worker>
560+ VersionedClause<ACCC_Self>
561561 ];
562562 let allowedExclusiveClauses = [
563563 VersionedClause<ACCC_Auto>,
@@ -570,32 +570,32 @@ def ACC_KernelsLoop : Directive<"kernels loop"> {
570570def ACC_ParallelLoop : Directive<"parallel loop"> {
571571 let allowedClauses = [
572572 VersionedClause<ACCC_Attach>,
573+ VersionedClause<ACCC_Collapse>,
573574 VersionedClause<ACCC_Copy>,
574575 VersionedClause<ACCC_Copyin>,
575576 VersionedClause<ACCC_Copyout>,
576577 VersionedClause<ACCC_Create>,
577578 VersionedClause<ACCC_DevicePtr>,
578579 VersionedClause<ACCC_DeviceType>,
579580 VersionedClause<ACCC_FirstPrivate>,
581+ VersionedClause<ACCC_Gang>,
580582 VersionedClause<ACCC_NoCreate>,
583+ VersionedClause<ACCC_NumGangs>,
584+ VersionedClause<ACCC_NumWorkers>,
581585 VersionedClause<ACCC_Present>,
582586 VersionedClause<ACCC_Private>,
583587 VersionedClause<ACCC_Reduction>,
584588 VersionedClause<ACCC_Tile>,
585- VersionedClause<ACCC_Wait>
589+ VersionedClause<ACCC_Vector>,
590+ VersionedClause<ACCC_VectorLength>,
591+ VersionedClause<ACCC_Wait>,
592+ VersionedClause<ACCC_Worker>
586593 ];
587594 let allowedOnceClauses = [
588595 VersionedClause<ACCC_Async>,
589- VersionedClause<ACCC_Collapse>,
590596 VersionedClause<ACCC_Default>,
591- VersionedClause<ACCC_Gang>,
592597 VersionedClause<ACCC_If>,
593- VersionedClause<ACCC_NumGangs>,
594- VersionedClause<ACCC_NumWorkers>,
595- VersionedClause<ACCC_Self>,
596- VersionedClause<ACCC_Vector>,
597- VersionedClause<ACCC_VectorLength>,
598- VersionedClause<ACCC_Worker>
598+ VersionedClause<ACCC_Self>
599599 ];
600600 let allowedExclusiveClauses = [
601601 VersionedClause<ACCC_Auto>,
@@ -608,29 +608,29 @@ def ACC_ParallelLoop : Directive<"parallel loop"> {
608608def ACC_SerialLoop : Directive<"serial loop"> {
609609 let allowedClauses = [
610610 VersionedClause<ACCC_Attach>,
611+ VersionedClause<ACCC_Collapse>,
611612 VersionedClause<ACCC_Copy>,
612613 VersionedClause<ACCC_Copyin>,
613614 VersionedClause<ACCC_Copyout>,
614615 VersionedClause<ACCC_Create>,
615616 VersionedClause<ACCC_DevicePtr>,
616617 VersionedClause<ACCC_DeviceType>,
617618 VersionedClause<ACCC_FirstPrivate>,
619+ VersionedClause<ACCC_Gang>,
618620 VersionedClause<ACCC_NoCreate>,
619621 VersionedClause<ACCC_Present>,
620622 VersionedClause<ACCC_Private>,
621623 VersionedClause<ACCC_Reduction>,
622- VersionedClause<ACCC_Wait>
624+ VersionedClause<ACCC_Tile>,
625+ VersionedClause<ACCC_Vector>,
626+ VersionedClause<ACCC_Wait>,
627+ VersionedClause<ACCC_Worker>
623628 ];
624629 let allowedOnceClauses = [
625630 VersionedClause<ACCC_Async>,
626- VersionedClause<ACCC_Collapse>,
627631 VersionedClause<ACCC_Default>,
628- VersionedClause<ACCC_Gang>,
629632 VersionedClause<ACCC_If>,
630- VersionedClause<ACCC_Self>,
631- VersionedClause<ACCC_Tile>,
632- VersionedClause<ACCC_Vector>,
633- VersionedClause<ACCC_Worker>
633+ VersionedClause<ACCC_Self>
634634 ];
635635 let allowedExclusiveClauses = [
636636 VersionedClause<ACCC_Auto>,
0 commit comments