Lines Matching full:clause
536 /// <type> <var> ')' [<clause>[[,] <clause>] ... ]
616 OMPClause *Clause = in ParseOpenMPDeclareMapperDirective() local
618 if (Clause) in ParseOpenMPDeclareMapperDirective()
619 Clauses.push_back(Clause); in ParseOpenMPDeclareMapperDirective()
715 /// clause:
1390 /// Parse clauses for '#pragma omp declare variant ( variant-func-id ) clause'.
1434 // At least one clause is required. in ParseOMPDeclareVariantClauses()
1484 llvm_unreachable("Unexpected clause for declare variant."); in ParseOMPDeclareVariantClauses()
1639 /// <clause> [clause[ [,] clause] ... ]
1655 OMPClause *Clause = in ParseOpenMPClauses() local
1660 if (Clause != nullptr) in ParseOpenMPClauses()
1661 Clauses.push_back(Clause); in ParseOpenMPClauses()
1673 /// `omp assumes` or `omp begin/end assumes` <clause> [[,]<clause>]...
1676 /// clause:
1753 assert(II && "Expected an identifier clause!"); in ParseOpenMPAssumesDirective()
1775 /// default-clause:
1778 /// proc_bind-clause:
1781 /// device_type-clause:
1832 // If we see any clause we need a to or link clause. in ParseOMPDeclareTargetClauses()
1853 // Starting with OpenMP 5.2 the `to` clause has been replaced by the in ParseOMPDeclareTargetClauses()
1854 // `enter` clause. in ParseOMPDeclareTargetClauses()
1889 // Parse 'device_type' clause and go to next clause if any. in ParseOMPDeclareTargetClauses()
1895 // We already saw another device_type clause, diagnose it. in ParseOMPDeclareTargetClauses()
2023 /// annot_pragma_openmp 'allocate' simple-variable-list [<clause>]
2032 /// <type> <var> ')' [<clause>[[,] <clause>] ... ]
2036 /// annot_pragma_openmp 'declare simd' {<clause> [,]}
2041 /// annot_pragma_openmp 'requires' <clause> [[[,] <clause>] ... ]
2045 /// annot_pragma_openmp 'assumes' <clause> [[[,] <clause>] ... ]
2048 /// annot_pragma_openmp 'begin assumes' <clause> [[[,] <clause>] ... ]
2121 OMPClause *Clause = ParseOpenMPClause(OMPD_allocate, CKind, in ParseOpenMPDeclarativeDirectiveWithExtDecl() local
2126 if (Clause != nullptr) in ParseOpenMPDeclarativeDirectiveWithExtDecl()
2127 Clauses.push_back(Clause); in ParseOpenMPDeclarativeDirectiveWithExtDecl()
2160 OMPClause *Clause = ParseOpenMPClause(OMPD_requires, CKind, in ParseOpenMPDeclarativeDirectiveWithExtDecl() local
2165 if (Clause != nullptr) in ParseOpenMPDeclarativeDirectiveWithExtDecl()
2166 Clauses.push_back(Clause); in ParseOpenMPDeclarativeDirectiveWithExtDecl()
2222 // { #pragma omp begin declare variant clause } in ParseOpenMPDeclarativeDirectiveWithExtDecl()
2479 // pseudo-clause OMPFlushClause or OMPDepobjClause. in ParseOpenMPExecutableDirective()
2488 assert(CKind == OMPC_unknown && "Must be unknown implicit clause."); in ParseOpenMPExecutableDirective()
2500 OMPClause *Clause = in ParseOpenMPExecutableDirective() local
2503 if (Clause) in ParseOpenMPExecutableDirective()
2504 Clauses.push_back(Clause); in ParseOpenMPExecutableDirective()
2517 // If the depend or doacross clause is specified, the ordered construct in ParseOpenMPExecutableDirective()
2593 /// <type> <var> ')' [<clause>[[,] <clause>] ... ]
2613 /// 'parallel masked' {clause} annot_pragma_openmp_end
2686 // parse and get OMPTraitInfo to pass to the When clause in ParseOpenMPDeclarativeOrExecutableDirective()
2689 Diag(Tok, diag::err_omp_expected_context_selector) << "when clause"; in ParseOpenMPDeclarativeOrExecutableDirective()
2698 Diag(Tok, diag::err_omp_expected_colon) << "when clause"; in ParseOpenMPDeclarativeOrExecutableDirective()
2752 ConsumeToken(); // Consume clause name in ParseOpenMPDeclarativeOrExecutableDirective()
2755 // Skip everything inside the clause in ParseOpenMPDeclarativeOrExecutableDirective()
2777 // Skip ContextSelectors for when clause in ParseOpenMPDeclarativeOrExecutableDirective()
2840 OMPClause *Clause = ParseOpenMPClause(OMPD_allocate, CKind, in ParseOpenMPDeclarativeOrExecutableDirective() local
2845 if (Clause != nullptr) in ParseOpenMPDeclarativeOrExecutableDirective()
2846 Clauses.push_back(Clause); in ParseOpenMPDeclarativeOrExecutableDirective()
3061 /// clause:
3062 /// if-clause | final-clause | num_threads-clause | safelen-clause |
3063 /// default-clause | private-clause | firstprivate-clause | shared-clause
3064 /// | linear-clause | aligned-clause | collapse-clause | bind-clause |
3065 /// lastprivate-clause | reduction-clause | proc_bind-clause |
3066 /// schedule-clause | copyin-clause | copyprivate-clause | untied-clause |
3067 /// mergeable-clause | flush-clause | read-clause | write-clause |
3068 /// update-clause | capture-clause | seq_cst-clause | device-clause |
3069 /// simdlen-clause | threads-clause | simd-clause | num_teams-clause |
3070 /// thread_limit-clause | priority-clause | grainsize-clause |
3071 /// nogroup-clause | num_tasks-clause | hint-clause | to-clause |
3072 /// from-clause | is_device_ptr-clause | task_reduction-clause |
3073 /// in_reduction-clause | allocator-clause | allocate-clause |
3074 /// acq_rel-clause | acquire-clause | release-clause | relaxed-clause |
3075 /// depobj-clause | destroy-clause | detach-clause | inclusive-clause |
3076 /// exclusive-clause | uses_allocators-clause | use_device_addr-clause |
3082 OMPClause *Clause = nullptr; in ParseOpenMPClause() local
3085 // Check if clause is allowed for the given directive. in ParseOpenMPClause()
3118 // At most one num_threads clause can appear on the directive. in ParseOpenMPClause()
3120 // Only one safelen clause can appear on a simd directive. in ParseOpenMPClause()
3121 // Only one simdlen clause can appear on a simd directive. in ParseOpenMPClause()
3122 // Only one collapse clause can appear on a simd directive. in ParseOpenMPClause()
3124 // At most one if clause can appear on the directive. in ParseOpenMPClause()
3125 // At most one final clause can appear on the directive. in ParseOpenMPClause()
3127 // At most one num_teams clause can appear on the directive. in ParseOpenMPClause()
3128 // At most one thread_limit clause can appear on the directive. in ParseOpenMPClause()
3130 // At most one priority clause can appear on the directive. in ParseOpenMPClause()
3132 // At most one grainsize clause can appear on the directive. in ParseOpenMPClause()
3134 // At most one num_tasks clause can appear on the directive. in ParseOpenMPClause()
3136 // At most one allocator clause can appear on the directive. in ParseOpenMPClause()
3138 // At most one detach clause can appear on the directive. in ParseOpenMPClause()
3140 // At most one novariants clause can appear on a dispatch directive. in ParseOpenMPClause()
3141 // At most one nocontext clause can appear on a dispatch directive. in ParseOpenMPClause()
3143 // At most one message clause can appear on the directive in ParseOpenMPClause()
3152 Clause = ParseOpenMPClause(CKind, WrongDirective); in ParseOpenMPClause()
3154 Clause = ParseOpenMPSingleExprWithArgClause(DKind, CKind, WrongDirective); in ParseOpenMPClause()
3156 Clause = ParseOpenMPSingleExprClause(CKind, WrongDirective); in ParseOpenMPClause()
3166 // Only a single default clause may be specified on a parallel, task or in ParseOpenMPClause()
3169 // At most one proc_bind clause can appear on the directive. in ParseOpenMPClause()
3171 // At most one atomic_default_mem_order clause can appear in ParseOpenMPClause()
3174 // At most one at clause can appear on the directive in ParseOpenMPClause()
3175 // At most one severity clause can appear on the directive in ParseOpenMPClause()
3177 // At most one bind clause can appear on a loop directive. in ParseOpenMPClause()
3184 Clause = ParseOpenMPSimpleClause(CKind, WrongDirective); in ParseOpenMPClause()
3192 // Only one schedule clause can appear on a loop directive. in ParseOpenMPClause()
3194 // At most one defaultmap clause can appear on the directive. in ParseOpenMPClause()
3196 // At most one device clause can appear on the directive. in ParseOpenMPClause()
3197 // OpenMP 5.1 [2.11.3, order clause, Restrictions] in ParseOpenMPClause()
3198 // At most one order clause may appear on a construct. in ParseOpenMPClause()
3207 Clause = ParseOpenMPSingleExprWithArgClause(DKind, CKind, WrongDirective); in ParseOpenMPClause()
3231 // Only one ordered clause can appear on a loop directive. in ParseOpenMPClause()
3233 // Only one nowait clause can appear on a for directive. in ParseOpenMPClause()
3242 Clause = ParseOpenMPClause(CKind, WrongDirective); in ParseOpenMPClause()
3251 Clause = (DKind == OMPD_depobj) in ParseOpenMPClause()
3285 Clause = ParseOpenMPVarListClause(DKind, CKind, WrongDirective); in ParseOpenMPClause()
3294 Clause = ParseOpenMPSizesClause(); in ParseOpenMPClause()
3297 Clause = ParseOpenMPUsesAllocatorClause(DKind); in ParseOpenMPClause()
3306 Clause = ParseOpenMPClause(CKind, WrongDirective); in ParseOpenMPClause()
3312 Clause = ParseOpenMPInteropClause(CKind, WrongDirective); in ParseOpenMPClause()
3327 Clause = ParseOpenMPOMPXAttributesClause(WrongDirective); in ParseOpenMPClause()
3338 Clause = ParseOpenMPClause(CKind, WrongDirective); in ParseOpenMPClause()
3343 return ErrorFound ? nullptr : Clause; in ParseOpenMPClause()
3375 /// final-clause:
3378 /// num_threads-clause:
3381 /// safelen-clause:
3384 /// simdlen-clause:
3387 /// collapse-clause:
3390 /// priority-clause:
3393 /// grainsize-clause:
3396 /// num_tasks-clause:
3399 /// hint-clause:
3402 /// allocator-clause:
3405 /// detach-clause:
3408 /// align-clause
3428 /// Parse indirect clause for '#pragma omp declare target' directive.
3485 // Each interop-type may be specified on an action-clause at most in ParseOMPInteropInfo()
3555 /// init-clause:
3558 /// destroy-clause:
3561 /// use-clause:
3619 llvm_unreachable("Unexpected interop variable clause."); in ParseOpenMPInteropClause()
3681 /// default-clause:
3684 /// proc_bind-clause:
3687 /// bind-clause:
3690 /// update-clause:
3717 /// ordered-clause:
3720 /// nowait-clause:
3723 /// untied-clause:
3726 /// mergeable-clause:
3729 /// read-clause:
3732 /// threads-clause:
3735 /// simd-clause:
3738 /// nogroup-clause:
3753 /// schedule-clause:
3757 /// if-clause:
3763 /// device-clause:
4101 /// Parse map-type-modifiers in map clause.
4203 /// Parse map-type in map clause.
4329 // allowed on a depend clause. in ParseOpenMPReservedLocator()
4391 // Handle reduction-identifier for reduction clause. in ParseOpenMPVarList()
4442 // Handle dependency type for depend clause. in ParseOpenMPVarList()
4455 // Special processing for depend(source) clause. in ParseOpenMPVarList()
4562 // Handle map type for map clause. in ParseOpenMPVarList()
4571 // Check for presence of a colon in the map clause. in ParseOpenMPVarList()
4581 // the map clause. in ParseOpenMPVarList()
4671 // Parsing was unsuccessfull, revert and skip to the end of clause or in ParseOpenMPVarList()
4678 // Handle adjust-op for adjust_args clause. in ParseOpenMPVarList()
4735 // Parse ')' for linear clause with modifier. in ParseOpenMPVarList()
4815 // Exit from scope when the iterator is used in depend clause. in ParseOpenMPVarList()
4824 /// Parsing of OpenMP clause 'private', 'firstprivate', 'lastprivate',
4828 /// private-clause:
4830 /// firstprivate-clause:
4832 /// lastprivate-clause:
4834 /// shared-clause:
4836 /// linear-clause:
4838 /// aligned-clause:
4840 /// reduction-clause:
4842 /// task_reduction-clause:
4844 /// in_reduction-clause:
4846 /// copyprivate-clause:
4848 /// flush-clause:
4850 /// depend-clause:
4852 /// map-clause:
4856 /// to-clause:
4858 /// from-clause:
4860 /// use_device_ptr-clause:
4862 /// use_device_addr-clause:
4864 /// is_device_ptr-clause:
4866 /// has_device_addr-clause:
4868 /// allocate-clause:
4870 /// nontemporal-clause:
4872 /// inclusive-clause:
4874 /// exclusive-clause:
4877 /// For 'linear' clause linear-list may have the following forms:
4905 "Expected parsing to start at clause name"); in ParseOpenMPExprListClause()