Lines Matching refs:Clause

355     SemaOpenACC::OpenACCParsedClause &Clause) {  in checkAlreadyHasClauseOfKind()  argument
357 return C->getClauseKind() == Clause.getClauseKind(); in checkAlreadyHasClauseOfKind()
360 S.Diag(Clause.getBeginLoc(), diag::err_acc_duplicate_clause_disallowed) in checkAlreadyHasClauseOfKind()
361 << Clause.getDirectiveKind() << Clause.getClauseKind(); in checkAlreadyHasClauseOfKind()
448 OpenACCClause *Visit(SemaOpenACC::OpenACCParsedClause &Clause) { in Visit() argument
449 switch (Clause.getClauseKind()) { in Visit()
464 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_clause_cannot_combine) in Visit()
465 << Clause.getClauseKind() << (*Itr)->getClauseKind(); in Visit()
473 return Visit##CLAUSE_NAME##Clause(Clause); in Visit()
477 SemaRef.Diag(Clause.getBeginLoc(), diag::warn_acc_deprecated_alias_name) \ in Visit()
478 << Clause.getClauseKind() << OpenACCClauseKind::CLAUSE_NAME; \ in Visit()
479 return Visit##CLAUSE_NAME##Clause(Clause); in Visit()
488 OpenACCClause *Visit##CLAUSE_NAME##Clause( \
489 SemaOpenACC::OpenACCParsedClause &Clause);
494 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitDefaultClause() argument
498 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitDefaultClause()
502 if (Clause.getDefaultClauseKind() == OpenACCDefaultClauseKind::Invalid) in VisitDefaultClause()
509 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitDefaultClause()
513 Ctx, Clause.getDefaultClauseKind(), Clause.getBeginLoc(), in VisitDefaultClause()
514 Clause.getLParenLoc(), Clause.getEndLoc()); in VisitDefaultClause()
518 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitIfClause() argument
522 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitIfClause()
528 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitIfClause()
541 SemaRef.Diag(Clause.getBeginLoc(), diag::warn_acc_if_self_conflict); in VisitIfClause()
545 return OpenACCIfClause::Create(Ctx, Clause.getBeginLoc(), in VisitIfClause()
546 Clause.getLParenLoc(), in VisitIfClause()
547 Clause.getConditionExpr(), Clause.getEndLoc()); in VisitIfClause()
551 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitSelfClause() argument
555 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitSelfClause()
565 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitSelfClause()
575 SemaRef.Diag(Clause.getBeginLoc(), diag::warn_acc_if_self_conflict); in VisitSelfClause()
579 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitSelfClause()
580 Clause.getConditionExpr(), Clause.getEndLoc()); in VisitSelfClause()
584 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitNumGangsClause() argument
588 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitNumGangsClause()
594 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitNumGangsClause()
600 if (Clause.getIntExprs().empty()) in VisitNumGangsClause()
601 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_num_gangs_num_args) in VisitNumGangsClause()
605 (Clause.getDirectiveKind() == OpenACCDirectiveKind::Parallel || in VisitNumGangsClause()
606 Clause.getDirectiveKind() == OpenACCDirectiveKind::ParallelLoop) in VisitNumGangsClause()
611 if (Clause.getIntExprs().size() > MaxArgs) in VisitNumGangsClause()
612 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_num_gangs_num_args) in VisitNumGangsClause()
613 << /*NoArgs=*/1 << Clause.getDirectiveKind() << MaxArgs in VisitNumGangsClause()
614 << Clause.getIntExprs().size(); in VisitNumGangsClause()
619 if (Clause.getDirectiveKind() == OpenACCDirectiveKind::Parallel && in VisitNumGangsClause()
620 Clause.getIntExprs().size() > 1) { in VisitNumGangsClause()
625 SemaRef.Diag(Clause.getBeginLoc(), in VisitNumGangsClause()
627 << Clause.getIntExprs().size(); in VisitNumGangsClause()
634 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getIntExprs(), in VisitNumGangsClause()
635 Clause.getEndLoc()); in VisitNumGangsClause()
639 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitNumWorkersClause() argument
643 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitNumWorkersClause()
649 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitNumWorkersClause()
652 assert(Clause.getIntExprs().size() == 1 && in VisitNumWorkersClause()
655 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getIntExprs()[0], in VisitNumWorkersClause()
656 Clause.getEndLoc()); in VisitNumWorkersClause()
660 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitVectorLengthClause() argument
664 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitVectorLengthClause()
670 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitVectorLengthClause()
673 assert(Clause.getIntExprs().size() == 1 && in VisitVectorLengthClause()
676 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getIntExprs()[0], in VisitVectorLengthClause()
677 Clause.getEndLoc()); in VisitVectorLengthClause()
681 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitAsyncClause() argument
685 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitAsyncClause()
691 if (checkAlreadyHasClauseOfKind(SemaRef, ExistingClauses, Clause)) in VisitAsyncClause()
694 assert(Clause.getNumIntExprs() < 2 && in VisitAsyncClause()
697 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitAsyncClause()
698 Clause.getNumIntExprs() != 0 ? Clause.getIntExprs()[0] : nullptr, in VisitAsyncClause()
699 Clause.getEndLoc()); in VisitAsyncClause()
703 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitPrivateClause() argument
708 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind()) && in VisitPrivateClause()
709 Clause.getDirectiveKind() != OpenACCDirectiveKind::Loop) in VisitPrivateClause()
716 return OpenACCPrivateClause::Create(Ctx, Clause.getBeginLoc(), in VisitPrivateClause()
717 Clause.getLParenLoc(), in VisitPrivateClause()
718 Clause.getVarList(), Clause.getEndLoc()); in VisitPrivateClause()
722 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitFirstPrivateClause() argument
726 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitFirstPrivateClause()
734 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getVarList(), in VisitFirstPrivateClause()
735 Clause.getEndLoc()); in VisitFirstPrivateClause()
739 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitNoCreateClause() argument
743 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitNoCreateClause()
749 return OpenACCNoCreateClause::Create(Ctx, Clause.getBeginLoc(), in VisitNoCreateClause()
750 Clause.getLParenLoc(), in VisitNoCreateClause()
751 Clause.getVarList(), Clause.getEndLoc()); in VisitNoCreateClause()
755 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitPresentClause() argument
759 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitPresentClause()
765 return OpenACCPresentClause::Create(Ctx, Clause.getBeginLoc(), in VisitPresentClause()
766 Clause.getLParenLoc(), in VisitPresentClause()
767 Clause.getVarList(), Clause.getEndLoc()); in VisitPresentClause()
771 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitCopyClause() argument
775 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitCopyClause()
782 Ctx, Clause.getClauseKind(), Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitCopyClause()
783 Clause.getVarList(), Clause.getEndLoc()); in VisitCopyClause()
787 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitCopyInClause() argument
791 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitCopyInClause()
798 Ctx, Clause.getClauseKind(), Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitCopyInClause()
799 Clause.isReadOnly(), Clause.getVarList(), Clause.getEndLoc()); in VisitCopyInClause()
803 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitCopyOutClause() argument
807 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitCopyOutClause()
814 Ctx, Clause.getClauseKind(), Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitCopyOutClause()
815 Clause.isZero(), Clause.getVarList(), Clause.getEndLoc()); in VisitCopyOutClause()
819 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitCreateClause() argument
823 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitCreateClause()
830 Ctx, Clause.getClauseKind(), Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitCreateClause()
831 Clause.isZero(), Clause.getVarList(), Clause.getEndLoc()); in VisitCreateClause()
835 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitAttachClause() argument
839 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitAttachClause()
844 llvm::SmallVector<Expr *> VarList{Clause.getVarList()}; in VisitAttachClause()
848 Clause.setVarListDetails(VarList, in VisitAttachClause()
850 return OpenACCAttachClause::Create(Ctx, Clause.getBeginLoc(), in VisitAttachClause()
851 Clause.getLParenLoc(), Clause.getVarList(), in VisitAttachClause()
852 Clause.getEndLoc()); in VisitAttachClause()
856 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitDevicePtrClause() argument
860 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitDevicePtrClause()
865 llvm::SmallVector<Expr *> VarList{Clause.getVarList()}; in VisitDevicePtrClause()
869 Clause.setVarListDetails(VarList, in VisitDevicePtrClause()
873 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getVarList(), in VisitDevicePtrClause()
874 Clause.getEndLoc()); in VisitDevicePtrClause()
878 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitWaitClause() argument
882 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitWaitClause()
886 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getDevNumExpr(), in VisitWaitClause()
887 Clause.getQueuesLoc(), Clause.getQueueIdExprs(), Clause.getEndLoc()); in VisitWaitClause()
891 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitDeviceTypeClause() argument
896 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind()) && in VisitDeviceTypeClause()
897 Clause.getDirectiveKind() != OpenACCDirectiveKind::Loop) in VisitDeviceTypeClause()
905 Ctx, Clause.getClauseKind(), Clause.getBeginLoc(), Clause.getLParenLoc(), in VisitDeviceTypeClause()
906 Clause.getDeviceTypeArchitectures(), Clause.getEndLoc()); in VisitDeviceTypeClause()
910 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitAutoClause() argument
914 if (Clause.getDirectiveKind() != OpenACCDirectiveKind::Loop) in VisitAutoClause()
923 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_loop_spec_conflict) in VisitAutoClause()
924 << Clause.getClauseKind() << Clause.getDirectiveKind(); in VisitAutoClause()
929 return OpenACCAutoClause::Create(Ctx, Clause.getBeginLoc(), in VisitAutoClause()
930 Clause.getEndLoc()); in VisitAutoClause()
934 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitIndependentClause() argument
938 if (Clause.getDirectiveKind() != OpenACCDirectiveKind::Loop) in VisitIndependentClause()
946 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_loop_spec_conflict) in VisitIndependentClause()
947 << Clause.getClauseKind() << Clause.getDirectiveKind(); in VisitIndependentClause()
952 return OpenACCIndependentClause::Create(Ctx, Clause.getBeginLoc(), in VisitIndependentClause()
953 Clause.getEndLoc()); in VisitIndependentClause()
957 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitSeqClause() argument
961 if (Clause.getDirectiveKind() != OpenACCDirectiveKind::Loop) in VisitSeqClause()
970 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_loop_spec_conflict) in VisitSeqClause()
971 << Clause.getClauseKind() << Clause.getDirectiveKind(); in VisitSeqClause()
984 SemaRef.Diag(Clause.getBeginLoc(), diag::err_acc_clause_cannot_combine) in VisitSeqClause()
985 << Clause.getClauseKind() << (*Itr)->getClauseKind(); in VisitSeqClause()
993 return OpenACCSeqClause::Create(Ctx, Clause.getBeginLoc(), in VisitSeqClause()
994 Clause.getEndLoc()); in VisitSeqClause()
998 SemaOpenACC::OpenACCParsedClause &Clause) { in VisitReductionClause() argument
1002 if (!isOpenACCComputeDirectiveKind(Clause.getDirectiveKind())) in VisitReductionClause()
1008 if (Clause.getDirectiveKind() == OpenACCDirectiveKind::Parallel) { in VisitReductionClause()
1017 SemaRef.Diag(Clause.getBeginLoc(), in VisitReductionClause()
1028 for (Expr *Var : Clause.getVarList()) { in VisitReductionClause()
1036 Ctx, Clause.getBeginLoc(), Clause.getLParenLoc(), Clause.getReductionOp(), in VisitReductionClause()
1037 ValidVars, Clause.getEndLoc()); in VisitReductionClause()
1070 OpenACCParsedClause &Clause) { in ActOnClause() argument
1071 if (Clause.getClauseKind() == OpenACCClauseKind::Invalid) in ActOnClause()
1075 if (!doesClauseApplyToDirective(Clause.getDirectiveKind(), in ActOnClause()
1076 Clause.getClauseKind())) { in ActOnClause()
1077 Diag(Clause.getBeginLoc(), diag::err_acc_clause_appertainment) in ActOnClause()
1078 << Clause.getDirectiveKind() << Clause.getClauseKind(); in ActOnClause()
1089 *this, *cast<OpenACCDeviceTypeClause>(*DevTypeClause), Clause)) in ActOnClause()
1094 OpenACCClause *Result = Visitor.Visit(Clause); in ActOnClause()
1095 assert((!Result || Result->getClauseKind() == Clause.getClauseKind()) && in ActOnClause()
1099 Diag(Clause.getBeginLoc(), diag::warn_acc_clause_unimplemented) in ActOnClause()
1100 << Clause.getClauseKind(); in ActOnClause()