Home | History | Annotate | Download | only in Parse

Lines Matching refs:OpenMP

1 //===--- ParseOpenMP.cpp - OpenMP directives parsing ----------------------===//
9 /// This file implements parsing of all OpenMP directives and clauses.
26 #include "llvm/Frontend/OpenMP/OMPContext.h"
32 // OpenMP declarative directives.
652 /// OpenMP, 2.8.2 declare simd Construct
816 /// Constant used in the diagnostics to distinguish the levels in an OpenMP
1104 /// Parses an OpenMP context selector.
1275 /// Parses an OpenMP context selector set.
1352 /// Parse OpenMP context selectors:
1618 /// Parsing of simple OpenMP clauses like 'default' or 'proc_bind'.
1654 P.getLangOpts().OpenMP);
1682 getLangOpts().OpenMP >= 50 &&
1696 << ClauseName << (getLangOpts().OpenMP >= 50 ? 2 : 1);
1821 /// Parsing of declarative OpenMP directives.
1860 assert(Tok.is(tok::annot_pragma_openmp) && "Not an OpenMP directive!");
2235 /// Parsing of declarative or executable OpenMP directives.
2277 assert(Tok.is(tok::annot_pragma_openmp) && "Not an OpenMP directive!");
2529 // OpenMP [2.13.8, ordered Construct, Syntax]
2743 /// Parsing of OpenMP clauses.
2770 !isAllowedClauseForDirective(DKind, CKind, getLangOpts().OpenMP)) {
2796 // OpenMP [2.5, Restrictions]
2798 // OpenMP [2.8.1, simd construct, Restrictions]
2802 // OpenMP [2.11.1, task Construct, Restrictions]
2805 // OpenMP [teams Construct, Restrictions]
2808 // OpenMP [2.9.1, task Construct, Restrictions]
2810 // OpenMP [2.9.2, taskloop Construct, Restrictions]
2812 // OpenMP [2.9.2, taskloop Construct, Restrictions]
2814 // OpenMP [2.11.3, allocate Directive, Restrictions]
2816 // OpenMP 5.0, 2.10.1 task Construct, Restrictions.
2818 // OpenMP 5.1, 2.3.6 dispatch Construct, Restrictions.
2836 // OpenMP [2.14.3.1, Restrictions]
2839 // OpenMP [2.5, parallel Construct, Restrictions]
2841 // OpenMP [5.0, Requires directive, Restrictions]
2856 // OpenMP [2.7.1, Restrictions, p. 3]
2858 // OpenMP 4.5 [2.10.4, Restrictions, p. 106]
2860 // OpenMP 5.0 [2.12.5, target construct, Restrictions]
2862 if ((getLangOpts().OpenMP < 50 || CKind != OMPC_defaultmap) &&
2890 // OpenMP [2.7.1, Restrictions, p. 9]
2892 // OpenMP [2.7.1, Restrictions, C/C++, p. 4]
2894 // OpenMP [5.0, Requires directive, Restrictions]
2986 /// Parses simple expression in parens for single-expression clauses of OpenMP
3010 /// Parsing of OpenMP clauses with single expressions like 'final',
3064 /// Parsing of OpenMP clauses that use an interop-var.
3140 // OpenMP 5.1 [2.15.1, interop Construct, Restrictions]
3202 /// Parsing of simple OpenMP clauses like 'default' or 'proc_bind'.
3218 if (getLangOpts().OpenMP < 51 && Kind == OMPC_default &&
3231 /// Parsing of OpenMP clauses like 'ordered'.
3266 /// Parsing of OpenMP clauses with single expressions and some additional
3305 getLangOpts().OpenMP);
3318 getLangOpts().OpenMP);
3334 getLangOpts().OpenMP);
3349 getLangOpts().OpenMP));
3360 getLangOpts().OpenMP);
3371 if (Tok.is(tok::colon) || getLangOpts().OpenMP < 50) {
3379 getLangOpts().OpenMP));
3390 if (isOpenMPTargetExecutionDirective(DKind) && getLangOpts().OpenMP >= 50 &&
3395 getLangOpts().OpenMP));
3412 if (Tok.is(tok::colon) && getLangOpts().OpenMP > 40) {
3506 OMPC_map, PP.getSpelling(Tok), P.getLangOpts().OpenMP));
3571 OpenMP >= 51 ? 1 : 0);
3590 OMPC_map, PP.getSpelling(Tok), P.getLangOpts().OpenMP));
3609 /// Parses simple expression in parens for single-expression clauses of OpenMP
3739 if (Kind == OMPC_reduction && getLangOpts().OpenMP >= 50 &&
3744 getLangOpts().OpenMP);
3770 if (getLangOpts().OpenMP >= 50) {
3790 getLangOpts().OpenMP);
3816 getLangOpts().OpenMP);
3824 // Conditional modifier allowed only in OpenMP 5.0 and not supported in
3826 if ((getLangOpts().OpenMP >= 50 && !isOpenMPDistributeDirective(DKind) &&
3830 getLangOpts().OpenMP);
3875 Kind, PP.getSpelling(Tok), getLangOpts().OpenMP));
3886 // OpenMP < 5.1 doesn't permit a ',' or additional modifiers.
3887 if (getLangOpts().OpenMP < 51)
3889 // OpenMP 5.1 accepts an optional ',' even if the next character is ':'.
3896 if (getLangOpts().OpenMP < 51)
3904 // OpenMP 5.1 permits a ':' even without a preceding modifier. TODO: Is
3906 if ((!Data.MotionModifiers.empty() || getLangOpts().OpenMP >= 51) &&
3915 // OpenMP 5.0, 2.10.1, task Construct.
4011 /// Parsing of OpenMP clause 'private', 'firstprivate', 'lastprivate',