LLVM 24.0.0git
OMPDescriptors.inc
Go to the documentation of this file.
1//===-- OMPDescriptors.inc - OpenMP descriptors ------------------- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// clang-format off
10#ifdef GEN_OMP_CLAUSE_DESCRIPTORS
11 {
12 Clause::OMPC_absent,
13 descriptor::Clause(
14 "absent",
15 {
16 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "absent", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
17 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "absent", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
18 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "absent", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
19 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "absent", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
20 }
21 ),
22 },
23 {
24 Clause::OMPC_acq_rel,
25 descriptor::Clause(
26 "acq_rel",
27 {
28 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acq_rel", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
29 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acq_rel", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
30 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acq_rel", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
31 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acq_rel", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
32 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acq_rel", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
33 }
34 ),
35 },
36 {
37 Clause::OMPC_acquire,
38 descriptor::Clause(
39 "acquire",
40 {
41 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acquire", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
42 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acquire", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
43 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acquire", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
44 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acquire", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
45 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "acquire", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
46 }
47 ),
48 },
49 {
50 Clause::OMPC_adjust_args,
51 descriptor::Clause(
52 "adjust_args",
53 {
54 {Version(51), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Repeatable}}, "adjust_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AdjustOp}, {}}},
55 {Version(52), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Repeatable}}, "adjust_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AdjustOp}, {}}},
56 {Version(60), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Repeatable}}, "adjust_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AdjustOp, Modifier::DirectiveNameModifier}, {}}},
57 {Version(61), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Repeatable}}, "adjust_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {ModifierSet::AdjustOp}}},
58 }
59 ),
60 },
61 {
62 Clause::OMPC_affinity,
63 descriptor::Clause(
64 "affinity",
65 {
66 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "affinity", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator}, {}}},
67 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "affinity", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator}, {}}},
68 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "affinity", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator}, {}}},
69 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TaskInherited}}, "affinity", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_task_iteration}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator}, {}}},
70 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TaskInherited}}, "affinity", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_task_iteration}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator}, {}}},
71 }
72 ),
73 },
74 {
75 Clause::OMPC_align,
76 descriptor::Clause(
77 "align",
78 {
79 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "align", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
80 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "align", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
81 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "align", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
82 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "align", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
83 }
84 ),
85 },
86 {
87 Clause::OMPC_aligned,
88 descriptor::Clause(
89 "aligned",
90 {
91 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment}, {}}},
92 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment}, {}}},
93 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment}, {}}},
94 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment}, {}}},
95 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment, Modifier::DirectiveNameModifier}, {}}},
96 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "aligned", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Alignment, Modifier::DirectiveNameModifier}, {}}},
97 }
98 ),
99 },
100 {
101 Clause::OMPC_allocate,
102 descriptor::Clause(
103 "allocate",
104 {
105 {Version(50), {{{Property::AllPrivatizing, Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "allocate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskgroup, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AllocatorSimpleModifier}, {}}},
106 {Version(51), {{{Property::AllPrivatizing, Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "allocate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskgroup, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AlignModifier, Modifier::AllocatorSimpleModifier}, {}}},
107 {Version(52), {{{Property::AllPrivatizing, Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "allocate", {Directive::OMPD_allocators, Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskgroup, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AlignModifier, Modifier::AllocatorComplexModifier, Modifier::AllocatorSimpleModifier}, {}}},
108 {Version(60), {{{Property::AllPrivatizing, Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "allocate", {Directive::OMPD_allocators, Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskgroup, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AlignModifier, Modifier::AllocatorComplexModifier, Modifier::AllocatorSimpleModifier, Modifier::DirectiveNameModifier}, {}}},
109 {Version(61), {{{Property::AllPrivatizing, Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "allocate", {Directive::OMPD_allocators, Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskgroup, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AlignModifier, Modifier::AllocatorComplexModifier, Modifier::AllocatorSimpleModifier, Modifier::DirectiveNameModifier}, {}}},
110 }
111 ),
112 },
113 {
114 Clause::OMPC_allocator,
115 descriptor::Clause(
116 "allocator",
117 {
118 {Version(50), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "allocator", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
119 {Version(51), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "allocator", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
120 {Version(52), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "allocator", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
121 {Version(60), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "allocator", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
122 {Version(61), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "allocator", {Directive::OMPD_allocate}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
123 }
124 ),
125 },
126 {
127 Clause::OMPC_append_args,
128 descriptor::Clause(
129 "append_args",
130 {
131 {Version(51), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Unique}}, "append_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
132 {Version(52), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Unique}}, "append_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
133 {Version(60), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Unique}}, "append_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
134 {Version(61), {{{Property::Compatible, Property::DispatchCompliant, Property::Free, Property::Optional, Property::Unique}}, "append_args", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
135 }
136 ),
137 },
138 {
139 Clause::OMPC_apply,
140 descriptor::Clause(
141 "apply",
142 {
143 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "apply", {Directive::OMPD_fuse, Directive::OMPD_interchange, Directive::OMPD_nothing, Directive::OMPD_reverse, Directive::OMPD_split, Directive::OMPD_stripe, Directive::OMPD_tile, Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LoopModifier}, {}}},
144 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "apply", {Directive::OMPD_flatten, Directive::OMPD_fuse, Directive::OMPD_interchange, Directive::OMPD_nothing, Directive::OMPD_reverse, Directive::OMPD_split, Directive::OMPD_stripe, Directive::OMPD_tile, Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LoopModifier}, {}}},
145 }
146 ),
147 },
148 {
149 Clause::OMPC_at,
150 descriptor::Clause(
151 "at",
152 {
153 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "at", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
154 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "at", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
155 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "at", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
156 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "at", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
157 }
158 ),
159 },
160 {
161 Clause::OMPC_atomic_default_mem_order,
162 descriptor::Clause(
163 "atomic_default_mem_order",
164 {
165 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "atomic_default_mem_order", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
166 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "atomic_default_mem_order", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
167 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "atomic_default_mem_order", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
168 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "atomic_default_mem_order", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
169 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "atomic_default_mem_order", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
170 }
171 ),
172 },
173 {
174 Clause::OMPC_bind,
175 descriptor::Clause(
176 "bind",
177 {
178 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "bind", {Directive::OMPD_loop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
179 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "bind", {Directive::OMPD_loop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
180 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "bind", {Directive::OMPD_loop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
181 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "bind", {Directive::OMPD_loop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
182 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "bind", {Directive::OMPD_loop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
183 }
184 ),
185 },
186 {
187 Clause::OMPC_cancellation_construct_type,
188 descriptor::Clause(
189 "cancellation_construct_type",
190 {
191 {Version(45), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
192 {Version(50), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
193 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
194 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
195 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
196 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "cancellation_construct_type", {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
197 }
198 ),
199 },
200 {
201 Clause::OMPC_capture,
202 descriptor::Clause(
203 "capture",
204 {
205 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
206 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
207 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
208 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
209 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
210 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "capture", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
211 }
212 ),
213 },
214 {
215 Clause::OMPC_collapse,
216 descriptor::Clause(
217 "collapse",
218 {
219 {Version(45), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
220 {Version(50), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
221 {Version(51), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
222 {Version(52), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
223 {Version(60), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
224 {Version(61), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "collapse", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
225 }
226 ),
227 },
228 {
229 Clause::OMPC_collector,
230 descriptor::Clause(
231 "collector",
232 {
233 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "collector", {Directive::OMPD_declare_induction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
234 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "collector", {Directive::OMPD_declare_induction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
235 }
236 ),
237 },
238 {
239 Clause::OMPC_combiner,
240 descriptor::Clause(
241 "combiner",
242 {
243 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "combiner", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
244 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "combiner", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
245 }
246 ),
247 },
248 {
249 Clause::OMPC_compare,
250 descriptor::Clause(
251 "compare",
252 {
253 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "compare", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
254 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "compare", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
255 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "compare", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
256 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "compare", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
257 }
258 ),
259 },
260 {
261 Clause::OMPC_contains,
262 descriptor::Clause(
263 "contains",
264 {
265 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "contains", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
266 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "contains", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
267 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "contains", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
268 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "contains", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
269 }
270 ),
271 },
272 {
273 Clause::OMPC_copyin,
274 descriptor::Clause(
275 "copyin",
276 {
277 {Version(45), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
278 {Version(50), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
279 {Version(51), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
280 {Version(52), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
281 {Version(60), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
282 {Version(61), {{{Property::Compatible, Property::DataCopying, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "copyin", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
283 }
284 ),
285 },
286 {
287 Clause::OMPC_copyprivate,
288 descriptor::Clause(
289 "copyprivate",
290 {
291 {Version(45), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
292 {Version(50), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
293 {Version(51), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
294 {Version(52), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
295 {Version(60), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
296 {Version(61), {{{Property::Compatible, Property::DataCopying, Property::EndClause, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "copyprivate", {Directive::OMPD_single}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
297 }
298 ),
299 },
300 {
301 Clause::OMPC_counts,
302 descriptor::Clause(
303 "counts",
304 {
305 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "counts", {Directive::OMPD_split}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
306 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "counts", {Directive::OMPD_split}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
307 }
308 ),
309 },
310 {
311 Clause::OMPC_default,
312 descriptor::Clause(
313 "default",
314 {
315 {Version(45), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "default", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
316 {Version(50), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "default", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
317 {Version(51), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "default", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
318 {Version(52), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "default", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
319 {Version(60), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "default", {Directive::OMPD_parallel, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::VariableCategory}, {}}},
320 {Version(61), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "default", {Directive::OMPD_parallel, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {ModifierSet::VariableSelector}}},
321 }
322 ),
323 },
324 {
325 Clause::OMPC_default_variant,
326 descriptor::Clause(
327 "default-variant",
328 {
329 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "default-variant", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
330 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "default-variant", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
331 }
332 ),
333 },
334 {
335 Clause::OMPC_defaultmap,
336 descriptor::Clause(
337 "defaultmap",
338 {
339 {Version(45), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
340 {Version(50), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
341 {Version(51), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
342 {Version(52), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::VariableCategory}, {}}},
343 {Version(60), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Unique}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::VariableCategory}, {}}},
344 {Version(61), {{{Property::Compatible, Property::DefaultAttribute, Property::Free, Property::Optional, Property::PostModified, Property::Repeatable}}, "defaultmap", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {ModifierSet::VariableSelector}}},
345 }
346 ),
347 },
348 {
349 Clause::OMPC_depend,
350 descriptor::Clause(
351 "depend",
352 {
353 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "depend", {Directive::OMPD_ordered_standalone, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType, Modifier::TaskDependenceType}, {ModifierSet::DependModifierSet1}}},
354 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "depend", {Directive::OMPD_depobj, Directive::OMPD_ordered_standalone, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType, Modifier::Iterator, Modifier::TaskDependenceType}, {ModifierSet::DependModifierSet1}}},
355 {Version(51), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Repeatable}}, "depend", {Directive::OMPD_depobj, Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_ordered_standalone, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType, Modifier::Iterator, Modifier::TaskDependenceType}, {ModifierSet::DependModifierSet1}}},
356 {Version(52), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Repeatable}}, "depend", {Directive::OMPD_depobj, Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator, Modifier::TaskDependenceType}, {}}},
357 {Version(60), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Repeatable, Property::TaskInherited, Property::TaskgraphAltering}}, "depend", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_task_iteration, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::TaskDependenceType}, {}}},
358 {Version(61), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Repeatable, Property::TaskInherited, Property::TaskSynchronizing, Property::TaskgraphAltering}}, "depend", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_task_iteration, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::TaskDependenceType}, {ModifierSet::DependListType, ModifierSet::DependModifierSet1}}},
359 }
360 ),
361 },
362 {
363 Clause::OMPC_depth,
364 descriptor::Clause(
365 "depth",
366 {
367 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "depth", {Directive::OMPD_flatten, Directive::OMPD_fuse}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
368 }
369 ),
370 },
371 {
372 Clause::OMPC_destroy,
373 descriptor::Clause(
374 "destroy",
375 {
376 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "destroy", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
377 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "destroy", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
378 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "destroy", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
379 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "destroy", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
380 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "destroy", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
381 }
382 ),
383 },
384 {
385 Clause::OMPC_detach,
386 descriptor::Clause(
387 "detach",
388 {
389 {Version(50), {{{Property::Compatible, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Unique}}, "detach", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
390 {Version(51), {{{Property::Compatible, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Unique}}, "detach", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
391 {Version(52), {{{Property::Compatible, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Unique}}, "detach", {Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
392 {Version(60), {{{Property::Compatible, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Unique}}, "detach", {Directive::OMPD_target_data, Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
393 {Version(61), {{{Property::Compatible, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Unique}}, "detach", {Directive::OMPD_target_data, Directive::OMPD_task}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
394 }
395 ),
396 },
397 {
398 Clause::OMPC_device,
399 descriptor::Clause(
400 "device",
401 {
402 {Version(45), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
403 {Version(50), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DeviceModifier}, {}}},
404 {Version(51), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DeviceModifier}, {}}},
405 {Version(52), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DeviceModifier}, {}}},
406 {Version(60), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DeviceModifier, Modifier::DirectiveNameModifier}, {}}},
407 {Version(61), {{{Property::Compatible, Property::Free, Property::IcvDefaulted, Property::Optional, Property::Unique}}, "device", {Directive::OMPD_dispatch, Directive::OMPD_interop, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DeviceModifier, Modifier::DirectiveNameModifier}, {}}},
408 }
409 ),
410 },
411 {
412 Clause::OMPC_device_safesync,
413 descriptor::Clause(
414 "device_safesync",
415 {
416 {Version(60), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "device_safesync", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
417 {Version(61), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "device_safesync", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
418 }
419 ),
420 },
421 {
422 Clause::OMPC_device_type,
423 descriptor::Clause(
424 "device_type",
425 {
426 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "device_type", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
427 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "device_type", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
428 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "device_type", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
429 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "device_type", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target, Directive::OMPD_groupprivate, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
430 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "device_type", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target, Directive::OMPD_groupprivate, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
431 }
432 ),
433 },
434 {
435 Clause::OMPC_dist_schedule,
436 descriptor::Clause(
437 "dist_schedule",
438 {
439 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
440 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
441 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
442 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
443 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
444 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "dist_schedule", {Directive::OMPD_distribute}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
445 }
446 ),
447 },
448 {
449 Clause::OMPC_doacross,
450 descriptor::Clause(
451 "doacross",
452 {
453 {Version(52), {{{Property::Compatible, Property::Free, Property::Repeatable, Property::Required}}, "doacross", {Directive::OMPD_ordered_standalone}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType}, {}}},
454 {Version(60), {{{Property::Compatible, Property::Free, Property::Repeatable, Property::Required}}, "doacross", {Directive::OMPD_ordered_standalone}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType, Modifier::DirectiveNameModifier}, {}}},
455 {Version(61), {{{Property::Compatible, Property::Free, Property::Repeatable, Property::Required}}, "doacross", {Directive::OMPD_ordered_standalone}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DependenceType, Modifier::DirectiveNameModifier}, {}}},
456 }
457 ),
458 },
459 {
460 Clause::OMPC_dyn_groupprivate,
461 descriptor::Clause(
462 "dyn_groupprivate",
463 {
464 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "dyn_groupprivate", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AccessGroup, Modifier::DirectiveNameModifier, Modifier::FallbackModifier}, {}}},
465 }
466 ),
467 },
468 {
469 Clause::OMPC_dynamic_allocators,
470 descriptor::Clause(
471 "dynamic_allocators",
472 {
473 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "dynamic_allocators", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
474 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "dynamic_allocators", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
475 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "dynamic_allocators", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
476 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "dynamic_allocators", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
477 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "dynamic_allocators", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
478 }
479 ),
480 },
481 {
482 Clause::OMPC_enter,
483 descriptor::Clause(
484 "enter",
485 {
486 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "enter", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
487 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "enter", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AutomapModifier, Modifier::DirectiveNameModifier}, {}}},
488 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "enter", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AutomapModifier, Modifier::DirectiveNameModifier}, {}}},
489 }
490 ),
491 },
492 {
493 Clause::OMPC_exclusive,
494 descriptor::Clause(
495 "exclusive",
496 {
497 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "exclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
498 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "exclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
499 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "exclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
500 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "exclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
501 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "exclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
502 }
503 ),
504 },
505 {
506 Clause::OMPC_fail,
507 descriptor::Clause(
508 "fail",
509 {
510 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "fail", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
511 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "fail", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
512 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "fail", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
513 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "fail", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
514 }
515 ),
516 },
517 {
518 Clause::OMPC_filter,
519 descriptor::Clause(
520 "filter",
521 {
522 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "filter", {Directive::OMPD_masked}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
523 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "filter", {Directive::OMPD_masked}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
524 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "filter", {Directive::OMPD_masked}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
525 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "filter", {Directive::OMPD_masked}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
526 }
527 ),
528 },
529 {
530 Clause::OMPC_final,
531 descriptor::Clause(
532 "final",
533 {
534 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
535 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
536 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
537 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
538 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
539 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "final", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
540 }
541 ),
542 },
543 {
544 Clause::OMPC_firstprivate,
545 descriptor::Clause(
546 "firstprivate",
547 {
548 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
549 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
550 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
551 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
552 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Saved}, {}}},
553 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "firstprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Saved}, {}}},
554 }
555 ),
556 },
557 {
558 Clause::OMPC_from,
559 descriptor::Clause(
560 "from",
561 {
562 {Version(45), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
563 {Version(50), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Mapper}, {}}},
564 {Version(51), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator, Modifier::Mapper, Modifier::MotionModifier}, {}}},
565 {Version(52), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Expectation, Modifier::Iterator, Modifier::Mapper}, {}}},
566 {Version(60), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::Mapper, Modifier::PresentModifier}, {}}},
567 {Version(61), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "from", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::Mapper, Modifier::PresentModifier}, {}}},
568 }
569 ),
570 },
571 {
572 Clause::OMPC_full,
573 descriptor::Clause(
574 "full",
575 {
576 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "full", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
577 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "full", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
578 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "full", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
579 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "full", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
580 }
581 ),
582 },
583 {
584 Clause::OMPC_grainsize,
585 descriptor::Clause(
586 "grainsize",
587 {
588 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
589 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
590 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Prescriptiveness}, {}}},
591 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Prescriptiveness}, {}}},
592 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::TaskgraphAltering, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Prescriptiveness}, {}}},
593 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::TaskgraphAltering, Property::Unique}}, "grainsize", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Prescriptiveness}, {}}},
594 }
595 ),
596 },
597 {
598 Clause::OMPC_graph_id,
599 descriptor::Clause(
600 "graph_id",
601 {
602 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "graph_id", {Directive::OMPD_taskgraph}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
603 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "graph_id", {Directive::OMPD_taskgraph}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
604 }
605 ),
606 },
607 {
608 Clause::OMPC_graph_reset,
609 descriptor::Clause(
610 "graph_reset",
611 {
612 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "graph_reset", {Directive::OMPD_taskgraph}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
613 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "graph_reset", {Directive::OMPD_taskgraph}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
614 }
615 ),
616 },
617 {
618 Clause::OMPC_has_device_addr,
619 descriptor::Clause(
620 "has_device_addr",
621 {
622 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "has_device_addr", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
623 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "has_device_addr", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
624 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "has_device_addr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
625 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Repeatable}}, "has_device_addr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
626 }
627 ),
628 },
629 {
630 Clause::OMPC_hint,
631 descriptor::Clause(
632 "hint",
633 {
634 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
635 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_atomic, Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
636 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_atomic, Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
637 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_atomic, Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
638 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_atomic, Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
639 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "hint", {Directive::OMPD_atomic, Directive::OMPD_critical}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
640 }
641 ),
642 },
643 {
644 Clause::OMPC_holds,
645 descriptor::Clause(
646 "holds",
647 {
648 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "holds", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
649 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "holds", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
650 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "holds", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
651 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "holds", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
652 }
653 ),
654 },
655 {
656 Clause::OMPC_if,
657 descriptor::Clause(
658 "if",
659 {
660 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
661 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_simd, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
662 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_simd, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
663 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_simd, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
664 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_simd, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_task_iteration, Directive::OMPD_taskgraph, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
665 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable, Property::TargetConsistent}}, "if", {Directive::OMPD_cancel, Directive::OMPD_parallel, Directive::OMPD_simd, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_task_iteration, Directive::OMPD_taskgraph, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
666 }
667 ),
668 },
669 {
670 Clause::OMPC_in_reduction,
671 descriptor::Clause(
672 "in_reduction",
673 {
674 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::ReductionParticipating, Property::Repeatable}}, "in_reduction", {Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
675 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::ReductionParticipating, Property::Repeatable}}, "in_reduction", {Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
676 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::ReductionParticipating, Property::Repeatable}}, "in_reduction", {Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
677 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::ReductionParticipating, Property::Repeatable}}, "in_reduction", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::ReductionIdentifier}, {}}},
678 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Privatization, Property::ReductionParticipating, Property::Repeatable}}, "in_reduction", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::ReductionIdentifier}, {}}},
679 }
680 ),
681 },
682 {
683 Clause::OMPC_inbranch,
684 descriptor::Clause(
685 "inbranch",
686 {
687 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
688 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
689 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
690 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
691 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
692 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "inbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
693 }
694 ),
695 },
696 {
697 Clause::OMPC_inclusive,
698 descriptor::Clause(
699 "inclusive",
700 {
701 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "inclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
702 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "inclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
703 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "inclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
704 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "inclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
705 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "inclusive", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
706 }
707 ),
708 },
709 {
710 Clause::OMPC_indirect,
711 descriptor::Clause(
712 "indirect",
713 {
714 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "indirect", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
715 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "indirect", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
716 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "indirect", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
717 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "indirect", {Directive::OMPD_begin_declare_target, Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
718 }
719 ),
720 },
721 {
722 Clause::OMPC_induction,
723 descriptor::Clause(
724 "induction",
725 {
726 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "induction", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::InductionIdentifier, Modifier::InductionModifier, Modifier::StepModifier}, {}}},
727 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "induction", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::InductionIdentifier, Modifier::InductionModifier, Modifier::StepModifier}, {}}},
728 }
729 ),
730 },
731 {
732 Clause::OMPC_inductor,
733 descriptor::Clause(
734 "inductor",
735 {
736 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "inductor", {Directive::OMPD_declare_induction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
737 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "inductor", {Directive::OMPD_declare_induction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
738 }
739 ),
740 },
741 {
742 Clause::OMPC_init,
743 descriptor::Clause(
744 "init",
745 {
746 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "init", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::InteropType}, {}}},
747 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "init", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::InteropType}, {}}},
748 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "init", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DepinfoModifier, Modifier::DirectiveNameModifier, Modifier::InteropType, Modifier::PreferType}, {}}},
749 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Repeatable}}, "init", {Directive::OMPD_depobj, Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DepinfoModifier, Modifier::DirectiveNameModifier, Modifier::PreferType}, {ModifierSet::InteropType}}},
750 }
751 ),
752 },
753 {
754 Clause::OMPC_init_complete,
755 descriptor::Clause(
756 "init_complete",
757 {
758 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "init_complete", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
759 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "init_complete", {Directive::OMPD_scan}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
760 }
761 ),
762 },
763 {
764 Clause::OMPC_initializer,
765 descriptor::Clause(
766 "initializer",
767 {
768 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
769 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
770 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
771 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
772 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
773 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "initializer", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
774 }
775 ),
776 },
777 {
778 Clause::OMPC_interop,
779 descriptor::Clause(
780 "interop",
781 {
782 {Version(60), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Unique}}, "interop", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
783 {Version(61), {{{Property::Compatible, Property::DispatchRequirement, Property::Free, Property::Optional, Property::Unique}}, "interop", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
784 }
785 ),
786 },
787 {
788 Clause::OMPC_is_device_ptr,
789 descriptor::Clause(
790 "is_device_ptr",
791 {
792 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
793 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
794 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
795 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
796 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
797 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::DispatchRequirement, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "is_device_ptr", {Directive::OMPD_dispatch, Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
798 }
799 ),
800 },
801 {
802 Clause::OMPC_lastprivate,
803 descriptor::Clause(
804 "lastprivate",
805 {
806 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
807 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LastprivateModifier}, {}}},
808 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LastprivateModifier}, {}}},
809 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LastprivateModifier}, {}}},
810 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LastprivateModifier}, {}}},
811 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::Repeatable}}, "lastprivate", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LastprivateModifier}, {}}},
812 }
813 ),
814 },
815 {
816 Clause::OMPC_linear,
817 descriptor::Clause(
818 "linear",
819 {
820 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LinearModifier, Modifier::LinearStep}, {}}},
821 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LinearModifier, Modifier::LinearStep}, {}}},
822 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LinearModifier, Modifier::LinearStep}, {}}},
823 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LinearModifier, Modifier::StepComplexModifier, Modifier::StepSimpleModifier}, {}}},
824 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LinearModifier, Modifier::StepComplexModifier, Modifier::StepSimpleModifier}, {}}},
825 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::PostModified, Property::Privatization, Property::Repeatable}}, "linear", {Directive::OMPD_declare_simd, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LinearModifier, Modifier::StepComplexModifier, Modifier::StepSimpleModifier}, {}}},
826 }
827 ),
828 },
829 {
830 Clause::OMPC_link,
831 descriptor::Clause(
832 "link",
833 {
834 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
835 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
836 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
837 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
838 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
839 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "link", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
840 }
841 ),
842 },
843 {
844 Clause::OMPC_local,
845 descriptor::Clause(
846 "local",
847 {
848 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "local", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
849 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "local", {Directive::OMPD_declare_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
850 }
851 ),
852 },
853 {
854 Clause::OMPC_looprange,
855 descriptor::Clause(
856 "looprange",
857 {
858 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "looprange", {Directive::OMPD_fuse}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
859 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "looprange", {Directive::OMPD_fuse}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
860 }
861 ),
862 },
863 {
864 Clause::OMPC_map,
865 descriptor::Clause(
866 "map",
867 {
868 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::MapType, Modifier::MapTypeModifier, Modifier::OmpxHoldModifier}, {}}},
869 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_declare_mapper, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::MapType, Modifier::MapTypeModifier, Modifier::Mapper, Modifier::OmpxHoldModifier}, {}}},
870 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_declare_mapper, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator, Modifier::MapType, Modifier::MapTypeModifier, Modifier::Mapper, Modifier::OmpxHoldModifier}, {}}},
871 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_declare_mapper, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator, Modifier::MapType, Modifier::MapTypeModifier, Modifier::Mapper, Modifier::OmpxHoldModifier}, {}}},
872 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_declare_mapper, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AlwaysModifier, Modifier::CloseModifier, Modifier::DeleteModifier, Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::MapType, Modifier::Mapper, Modifier::OmpxHoldModifier, Modifier::PresentModifier, Modifier::RefModifier, Modifier::SelfModifier}, {}}},
873 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataMappingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "map", {Directive::OMPD_declare_mapper, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::AttachModifier, Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::MapType, Modifier::Mapper, Modifier::OmpxHoldModifier, Modifier::RefModifier}, {ModifierSet::MapTypeModifying}}},
874 }
875 ),
876 },
877 {
878 Clause::OMPC_match,
879 descriptor::Clause(
880 "match",
881 {
882 {Version(50), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "match", {Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
883 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "match", {Directive::OMPD_begin_declare_variant, Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
884 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "match", {Directive::OMPD_begin_declare_variant, Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
885 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "match", {Directive::OMPD_begin_declare_variant, Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
886 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "match", {Directive::OMPD_begin_declare_variant, Directive::OMPD_declare_variant}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
887 }
888 ),
889 },
890 {
891 Clause::OMPC_memscope,
892 descriptor::Clause(
893 "memscope",
894 {
895 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "memscope", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
896 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "memscope", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
897 }
898 ),
899 },
900 {
901 Clause::OMPC_mergeable,
902 descriptor::Clause(
903 "mergeable",
904 {
905 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
906 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
907 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
908 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
909 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
910 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "mergeable", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
911 }
912 ),
913 },
914 {
915 Clause::OMPC_message,
916 descriptor::Clause(
917 "message",
918 {
919 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "message", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
920 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "message", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
921 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "message", {Directive::OMPD_error, Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
922 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "message", {Directive::OMPD_error, Directive::OMPD_parallel, Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
923 }
924 ),
925 },
926 {
927 Clause::OMPC_no_openmp,
928 descriptor::Clause(
929 "no_openmp",
930 {
931 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
932 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
933 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
934 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
935 }
936 ),
937 },
938 {
939 Clause::OMPC_no_openmp_constructs,
940 descriptor::Clause(
941 "no_openmp_constructs",
942 {
943 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_constructs", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
944 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_constructs", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
945 }
946 ),
947 },
948 {
949 Clause::OMPC_no_openmp_routines,
950 descriptor::Clause(
951 "no_openmp_routines",
952 {
953 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_routines", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
954 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_routines", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
955 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_routines", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
956 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_openmp_routines", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
957 }
958 ),
959 },
960 {
961 Clause::OMPC_no_parallelism,
962 descriptor::Clause(
963 "no_parallelism",
964 {
965 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_parallelism", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
966 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_parallelism", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
967 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_parallelism", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
968 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "no_parallelism", {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
969 }
970 ),
971 },
972 {
973 Clause::OMPC_nocontext,
974 descriptor::Clause(
975 "nocontext",
976 {
977 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "nocontext", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
978 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "nocontext", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
979 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "nocontext", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
980 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "nocontext", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
981 }
982 ),
983 },
984 {
985 Clause::OMPC_nogroup,
986 descriptor::Clause(
987 "nogroup",
988 {
989 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nogroup", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
990 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nogroup", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
991 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nogroup", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
992 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nogroup", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
993 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nogroup", {Directive::OMPD_target_data, Directive::OMPD_taskgraph, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
994 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::OutermostLeaf, Property::TaskSynchronizing, Property::Unique}}, "nogroup", {Directive::OMPD_target_data, Directive::OMPD_taskgraph, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
995 }
996 ),
997 },
998 {
999 Clause::OMPC_nontemporal,
1000 descriptor::Clause(
1001 "nontemporal",
1002 {
1003 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "nontemporal", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1004 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "nontemporal", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1005 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "nontemporal", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1006 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "nontemporal", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1007 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "nontemporal", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1008 }
1009 ),
1010 },
1011 {
1012 Clause::OMPC_notinbranch,
1013 descriptor::Clause(
1014 "notinbranch",
1015 {
1016 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1017 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1018 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1019 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1020 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1021 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "notinbranch", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1022 }
1023 ),
1024 },
1025 {
1026 Clause::OMPC_novariants,
1027 descriptor::Clause(
1028 "novariants",
1029 {
1030 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "novariants", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1031 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "novariants", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1032 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "novariants", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1033 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "novariants", {Directive::OMPD_dispatch}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1034 }
1035 ),
1036 },
1037 {
1038 Clause::OMPC_nowait,
1039 descriptor::Clause(
1040 "nowait",
1041 {
1042 {Version(45), {{{Property::Compatible, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nowait", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1043 {Version(50), {{{Property::Compatible, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nowait", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_taskwait, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1044 {Version(51), {{{Property::Compatible, Property::DispatchRequirement, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nowait", {Directive::OMPD_dispatch, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_interop, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_taskwait, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1045 {Version(52), {{{Property::Compatible, Property::DispatchRequirement, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nowait", {Directive::OMPD_dispatch, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_interop, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_taskwait, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1046 {Version(60), {{{Property::Compatible, Property::DispatchRequirement, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::Unique}}, "nowait", {Directive::OMPD_dispatch, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_interop, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_taskwait, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1047 {Version(61), {{{Property::Compatible, Property::DispatchRequirement, Property::EndClause, Property::Free, Property::Optional, Property::OutermostLeaf, Property::TaskSynchronizing, Property::Unique}}, "nowait", {Directive::OMPD_dispatch, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_interop, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_taskwait, Directive::OMPD_workshare}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1048 }
1049 ),
1050 },
1051 {
1052 Clause::OMPC_num_tasks,
1053 descriptor::Clause(
1054 "num_tasks",
1055 {
1056 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1057 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1058 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Prescriptiveness}, {}}},
1059 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Prescriptiveness}, {}}},
1060 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::TaskgraphAltering, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Prescriptiveness}, {}}},
1061 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::TaskgraphAltering, Property::Unique}}, "num_tasks", {Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Prescriptiveness}, {}}},
1062 }
1063 ),
1064 },
1065 {
1066 Clause::OMPC_num_teams,
1067 descriptor::Clause(
1068 "num_teams",
1069 {
1070 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1071 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LowerBound}, {}}},
1072 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LowerBound}, {}}},
1073 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::LowerBound}, {}}},
1074 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::LowerBound}, {}}},
1075 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::SpaceConfiguring, Property::TargetConsistent, Property::Unique}}, "num_teams", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DimsModifier, Modifier::DirectiveNameModifier, Modifier::LowerBound}, {ModifierSet::NumTeamsModifierSet1}}},
1076 }
1077 ),
1078 },
1079 {
1080 Clause::OMPC_num_threads,
1081 descriptor::Clause(
1082 "num_threads",
1083 {
1084 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1085 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1086 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1087 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1088 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Prescriptiveness}, {}}},
1089 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::SpaceConfiguring, Property::Unique}}, "num_threads", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DimsModifier, Modifier::DirectiveNameModifier, Modifier::PrescriptivenessModifier}, {}}},
1090 }
1091 ),
1092 },
1093 {
1094 Clause::OMPC_ompx_bare,
1095 descriptor::Clause(
1096 "ompx_bare",
1097 {
1098 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1099 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1100 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1101 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1102 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1103 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "ompx_bare", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1104 }
1105 ),
1106 },
1107 {
1108 Clause::OMPC_order,
1109 descriptor::Clause(
1110 "order",
1111 {
1112 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "order", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1113 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "order", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::OrderModifier}, {}}},
1114 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "order", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::OrderModifier}, {}}},
1115 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "order", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::OrderModifier}, {}}},
1116 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "order", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::OrderModifier}, {}}},
1117 }
1118 ),
1119 },
1120 {
1121 Clause::OMPC_ordered,
1122 descriptor::Clause(
1123 "ordered",
1124 {
1125 {Version(45), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1126 {Version(50), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1127 {Version(51), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1128 {Version(52), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1129 {Version(60), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1130 {Version(61), {{{Property::Compatible, Property::Free, Property::OnceForAllConstituents, Property::Optional, Property::Unique}}, "ordered", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1131 }
1132 ),
1133 },
1134 {
1135 Clause::OMPC_otherwise,
1136 descriptor::Clause(
1137 "otherwise",
1138 {
1139 {Version(52), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, "otherwise", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1140 {Version(60), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, "otherwise", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1141 {Version(61), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, "otherwise", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1142 }
1143 ),
1144 },
1145 {
1146 Clause::OMPC_partial,
1147 descriptor::Clause(
1148 "partial",
1149 {
1150 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "partial", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1151 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "partial", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1152 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "partial", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1153 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "partial", {Directive::OMPD_unroll}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1154 }
1155 ),
1156 },
1157 {
1158 Clause::OMPC_permutation,
1159 descriptor::Clause(
1160 "permutation",
1161 {
1162 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "permutation", {Directive::OMPD_interchange}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1163 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "permutation", {Directive::OMPD_interchange}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1164 }
1165 ),
1166 },
1167 {
1168 Clause::OMPC_priority,
1169 descriptor::Clause(
1170 "priority",
1171 {
1172 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1173 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1174 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1175 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1176 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskgraph, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1177 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "priority", {Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskgraph, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1178 }
1179 ),
1180 },
1181 {
1182 Clause::OMPC_private,
1183 descriptor::Clause(
1184 "private",
1185 {
1186 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1187 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1188 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1189 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1190 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1191 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Privatization, Property::Repeatable}}, "private", {Directive::OMPD_distribute, Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_single, Directive::OMPD_target, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1192 }
1193 ),
1194 },
1195 {
1196 Clause::OMPC_proc_bind,
1197 descriptor::Clause(
1198 "proc_bind",
1199 {
1200 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1201 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1202 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1203 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1204 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1205 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "proc_bind", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1206 }
1207 ),
1208 },
1209 {
1210 Clause::OMPC_read,
1211 descriptor::Clause(
1212 "read",
1213 {
1214 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1215 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1216 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1217 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1218 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1219 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "read", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1220 }
1221 ),
1222 },
1223 {
1224 Clause::OMPC_reduction,
1225 descriptor::Clause(
1226 "reduction",
1227 {
1228 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
1229 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier, Modifier::ReductionModifier}, {}}},
1230 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier, Modifier::ReductionModifier}, {}}},
1231 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier, Modifier::ReductionModifier}, {}}},
1232 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::OriginalSharingModifier, Modifier::ReductionIdentifier, Modifier::ReductionModifier}, {}}},
1233 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionParticipating, Property::ReductionScoping, Property::Repeatable}}, "reduction", {Directive::OMPD_do, Directive::OMPD_for, Directive::OMPD_loop, Directive::OMPD_parallel, Directive::OMPD_scope, Directive::OMPD_sections, Directive::OMPD_simd, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::OriginalSharingModifier, Modifier::PerThreadModifier, Modifier::ReductionIdentifier}, {ModifierSet::ReductionModifierSet1, ModifierSet::ReductionType}}},
1234 }
1235 ),
1236 },
1237 {
1238 Clause::OMPC_reduction_kind,
1239 descriptor::Clause(
1240 "reduction_kind",
1241 {
1242 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "reduction_kind", {Directive::OMPD_declare_reduction}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1243 }
1244 ),
1245 },
1246 {
1247 Clause::OMPC_relaxed,
1248 descriptor::Clause(
1249 "relaxed",
1250 {
1251 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "relaxed", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1252 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "relaxed", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1253 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "relaxed", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1254 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "relaxed", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1255 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "relaxed", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1256 }
1257 ),
1258 },
1259 {
1260 Clause::OMPC_release,
1261 descriptor::Clause(
1262 "release",
1263 {
1264 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "release", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1265 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "release", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1266 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "release", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1267 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "release", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1268 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "release", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1269 }
1270 ),
1271 },
1272 {
1273 Clause::OMPC_replayable,
1274 descriptor::Clause(
1275 "replayable",
1276 {
1277 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "replayable", {Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1278 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "replayable", {Directive::OMPD_target, Directive::OMPD_target_enter_data, Directive::OMPD_target_exit_data, Directive::OMPD_target_update, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_taskwait}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1279 }
1280 ),
1281 },
1282 {
1283 Clause::OMPC_reverse_offload,
1284 descriptor::Clause(
1285 "reverse_offload",
1286 {
1287 {Version(50), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "reverse_offload", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1288 {Version(51), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "reverse_offload", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1289 {Version(52), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "reverse_offload", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1290 {Version(60), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "reverse_offload", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1291 {Version(61), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "reverse_offload", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1292 }
1293 ),
1294 },
1295 {
1296 Clause::OMPC_safelen,
1297 descriptor::Clause(
1298 "safelen",
1299 {
1300 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1301 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1302 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1303 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1304 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1305 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safelen", {Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1306 }
1307 ),
1308 },
1309 {
1310 Clause::OMPC_safesync,
1311 descriptor::Clause(
1312 "safesync",
1313 {
1314 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safesync", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1315 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "safesync", {Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1316 }
1317 ),
1318 },
1319 {
1320 Clause::OMPC_schedule,
1321 descriptor::Clause(
1322 "schedule",
1323 {
1324 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::OrderingModifier}, {}}},
1325 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::OrderingModifier}, {}}},
1326 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::OrderingModifier}, {}}},
1327 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::OrderingModifier}, {}}},
1328 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::DirectiveNameModifier, Modifier::OrderingModifier}, {}}},
1329 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::ScheduleSpecification, Property::Unique}}, "schedule", {Directive::OMPD_do, Directive::OMPD_for}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ChunkModifier, Modifier::DirectiveNameModifier, Modifier::OrderingModifier}, {}}},
1330 }
1331 ),
1332 },
1333 {
1334 Clause::OMPC_self_maps,
1335 descriptor::Clause(
1336 "self_maps",
1337 {
1338 {Version(60), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "self_maps", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1339 {Version(61), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "self_maps", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1340 }
1341 ),
1342 },
1343 {
1344 Clause::OMPC_seq_cst,
1345 descriptor::Clause(
1346 "seq_cst",
1347 {
1348 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1349 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1350 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1351 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1352 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1353 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "seq_cst", {Directive::OMPD_atomic, Directive::OMPD_flush}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1354 }
1355 ),
1356 },
1357 {
1358 Clause::OMPC_severity,
1359 descriptor::Clause(
1360 "severity",
1361 {
1362 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "severity", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1363 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "severity", {Directive::OMPD_error}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1364 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "severity", {Directive::OMPD_error, Directive::OMPD_parallel}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1365 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "severity", {Directive::OMPD_error, Directive::OMPD_parallel, Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1366 }
1367 ),
1368 },
1369 {
1370 Clause::OMPC_shared,
1371 descriptor::Clause(
1372 "shared",
1373 {
1374 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1375 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1376 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1377 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1378 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1379 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "shared", {Directive::OMPD_parallel, Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1380 }
1381 ),
1382 },
1383 {
1384 Clause::OMPC_shift,
1385 descriptor::Clause(
1386 "shift",
1387 {
1388 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "shift", {Directive::OMPD_tile}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1389 }
1390 ),
1391 },
1392 {
1393 Clause::OMPC_simd,
1394 descriptor::Clause(
1395 "simd",
1396 {
1397 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1398 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1399 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1400 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1401 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1402 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "simd", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1403 }
1404 ),
1405 },
1406 {
1407 Clause::OMPC_simdlen,
1408 descriptor::Clause(
1409 "simdlen",
1410 {
1411 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1412 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1413 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1414 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1415 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1416 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "simdlen", {Directive::OMPD_declare_simd, Directive::OMPD_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::ScaledModifier}, {}}},
1417 }
1418 ),
1419 },
1420 {
1421 Clause::OMPC_sizes,
1422 descriptor::Clause(
1423 "sizes",
1424 {
1425 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "sizes", {Directive::OMPD_tile}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1426 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "sizes", {Directive::OMPD_tile}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1427 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "sizes", {Directive::OMPD_stripe, Directive::OMPD_tile}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1428 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, "sizes", {Directive::OMPD_stripe, Directive::OMPD_tile}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::SizesSelector}, {}}},
1429 }
1430 ),
1431 },
1432 {
1433 Clause::OMPC_task_reduction,
1434 descriptor::Clause(
1435 "task_reduction",
1436 {
1437 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionScoping, Property::Repeatable}}, "task_reduction", {Directive::OMPD_taskgroup}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
1438 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionScoping, Property::Repeatable}}, "task_reduction", {Directive::OMPD_taskgroup}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
1439 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionScoping, Property::Repeatable}}, "task_reduction", {Directive::OMPD_taskgroup}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ReductionIdentifier}, {}}},
1440 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionScoping, Property::Repeatable}}, "task_reduction", {Directive::OMPD_taskgroup}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::ReductionIdentifier}, {}}},
1441 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::OriginalListItemUpdating, Property::Privatization, Property::ReductionScoping, Property::Repeatable}}, "task_reduction", {Directive::OMPD_taskgroup}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::ReductionIdentifier}, {}}},
1442 }
1443 ),
1444 },
1445 {
1446 Clause::OMPC_thread_limit,
1447 descriptor::Clause(
1448 "thread_limit",
1449 {
1450 {Version(45), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1451 {Version(50), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1452 {Version(51), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1453 {Version(52), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1454 {Version(60), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1455 {Version(61), {{{Property::Compatible, Property::Free, Property::IcvModifying, Property::Optional, Property::SpaceConfiguring, Property::TargetConsistent, Property::Unique}}, "thread_limit", {Directive::OMPD_target, Directive::OMPD_teams}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DimsModifier, Modifier::DirectiveNameModifier, Modifier::PrescriptivenessModifier}, {}}},
1456 }
1457 ),
1458 },
1459 {
1460 Clause::OMPC_threads,
1461 descriptor::Clause(
1462 "threads",
1463 {
1464 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1465 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1466 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1467 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1468 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1469 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "threads", {Directive::OMPD_ordered_blockassoc}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1470 }
1471 ),
1472 },
1473 {
1474 Clause::OMPC_threadset,
1475 descriptor::Clause(
1476 "threadset",
1477 {
1478 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "threadset", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1479 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "threadset", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1480 }
1481 ),
1482 },
1483 {
1484 Clause::OMPC_to,
1485 descriptor::Clause(
1486 "to",
1487 {
1488 {Version(45), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_declare_target, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1489 {Version(50), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_declare_target, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Mapper}, {}}},
1490 {Version(51), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_declare_target, Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Iterator, Modifier::Mapper, Modifier::MotionModifier}, {}}},
1491 {Version(52), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::Expectation, Modifier::Iterator, Modifier::Mapper}, {}}},
1492 {Version(60), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::Mapper, Modifier::PresentModifier}, {}}},
1493 {Version(61), {{{Property::Compatible, Property::DataMotionAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "to", {Directive::OMPD_target_update}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Iterator, Modifier::Mapper, Modifier::PresentModifier}, {}}},
1494 }
1495 ),
1496 },
1497 {
1498 Clause::OMPC_transparent,
1499 descriptor::Clause(
1500 "transparent",
1501 {
1502 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "transparent", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1503 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "transparent", {Directive::OMPD_target_data, Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1504 }
1505 ),
1506 },
1507 {
1508 Clause::OMPC_unified_address,
1509 descriptor::Clause(
1510 "unified_address",
1511 {
1512 {Version(50), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_address", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1513 {Version(51), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_address", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1514 {Version(52), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_address", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1515 {Version(60), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_address", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1516 {Version(61), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_address", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1517 }
1518 ),
1519 },
1520 {
1521 Clause::OMPC_unified_shared_memory,
1522 descriptor::Clause(
1523 "unified_shared_memory",
1524 {
1525 {Version(50), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_shared_memory", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1526 {Version(51), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_shared_memory", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1527 {Version(52), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_shared_memory", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1528 {Version(60), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_shared_memory", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1529 {Version(61), {{{Property::Compatible, Property::DeviceGlobalRequirement, Property::Free, Property::Optional, Property::Unique}}, "unified_shared_memory", {Directive::OMPD_requires}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1530 }
1531 ),
1532 },
1533 {
1534 Clause::OMPC_uniform,
1535 descriptor::Clause(
1536 "uniform",
1537 {
1538 {Version(45), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1539 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1540 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1541 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1542 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1543 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uniform", {Directive::OMPD_declare_simd}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1544 }
1545 ),
1546 },
1547 {
1548 Clause::OMPC_untied,
1549 descriptor::Clause(
1550 "untied",
1551 {
1552 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1553 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1554 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1555 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1556 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1557 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, "untied", {Directive::OMPD_task, Directive::OMPD_taskloop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1558 }
1559 ),
1560 },
1561 {
1562 Clause::OMPC_update,
1563 descriptor::Clause(
1564 "update",
1565 {
1566 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1567 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1568 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1569 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1570 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1571 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1572 }
1573 ),
1574 },
1575 {
1576 Clause::OMPC_update_depend_objects,
1577 descriptor::Clause(
1578 "update-depend_objects",
1579 {
1580 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1581 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1582 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1583 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::TaskDependenceType}, {}}},
1584 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "update", {Directive::OMPD_depobj}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::TaskDependenceType}, {}}},
1585 }
1586 ),
1587 },
1588 {
1589 Clause::OMPC_use,
1590 descriptor::Clause(
1591 "use",
1592 {
1593 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "use", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1594 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "use", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1595 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "use", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1596 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "use", {Directive::OMPD_interop}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1597 }
1598 ),
1599 },
1600 {
1601 Clause::OMPC_use_device_addr,
1602 descriptor::Clause(
1603 "use_device_addr",
1604 {
1605 {Version(50), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Repeatable}}, "use_device_addr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1606 {Version(51), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Repeatable}}, "use_device_addr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1607 {Version(52), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Repeatable}}, "use_device_addr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1608 {Version(60), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Repeatable}}, "use_device_addr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1609 {Version(61), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Repeatable}}, "use_device_addr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1610 }
1611 ),
1612 },
1613 {
1614 Clause::OMPC_use_device_ptr,
1615 descriptor::Clause(
1616 "use_device_ptr",
1617 {
1618 {Version(45), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1619 {Version(50), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1620 {Version(51), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1621 {Version(52), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1622 {Version(60), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1623 {Version(61), {{{Property::AllDataEnvironments, Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::DeviceAssociated, Property::Free, Property::Optional, Property::Privatization, Property::Repeatable}}, "use_device_ptr", {Directive::OMPD_target_data}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::Fallback}, {}}},
1624 }
1625 ),
1626 },
1627 {
1628 Clause::OMPC_uses_allocators,
1629 descriptor::Clause(
1630 "uses_allocators",
1631 {
1632 {Version(50), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uses_allocators", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1633 {Version(51), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uses_allocators", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1634 {Version(52), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uses_allocators", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::MemSpace, Modifier::TraitsArray}, {}}},
1635 {Version(60), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uses_allocators", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::MemSpace, Modifier::TraitsArray}, {}}},
1636 {Version(61), {{{Property::Compatible, Property::DataEnvironmentAttribute, Property::DataSharingAttribute, Property::Free, Property::Optional, Property::Repeatable}}, "uses_allocators", {Directive::OMPD_target}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier, Modifier::MemSpace, Modifier::TraitsArray}, {}}},
1637 }
1638 ),
1639 },
1640 {
1641 Clause::OMPC_weak,
1642 descriptor::Clause(
1643 "weak",
1644 {
1645 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "weak", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1646 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "weak", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1647 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "weak", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1648 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "weak", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1649 }
1650 ),
1651 },
1652 {
1653 Clause::OMPC_when,
1654 descriptor::Clause(
1655 "when",
1656 {
1657 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "when", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ContextSelector}, {}}},
1658 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "when", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ContextSelector}, {}}},
1659 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "when", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ContextSelector}, {}}},
1660 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "when", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ContextSelector, Modifier::DirectiveNameModifier}, {}}},
1661 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, "when", {Directive::OMPD_begin_metadirective, Directive::OMPD_metadirective}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::ContextSelector, Modifier::DirectiveNameModifier}, {}}},
1662 }
1663 ),
1664 },
1665 {
1666 Clause::OMPC_write,
1667 descriptor::Clause(
1668 "write",
1669 {
1670 {Version(45), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1671 {Version(50), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1672 {Version(51), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1673 {Version(52), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {}, {}}},
1674 {Version(60), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1675 {Version(61), {{{Property::Compatible, Property::Free, Property::InnermostLeaf, Property::Optional, Property::Unique}}, "write", {Directive::OMPD_atomic}, SourceLanguage::C | SourceLanguage::Fortran, {Modifier::DirectiveNameModifier}, {}}},
1676 }
1677 ),
1678 },
1679#endif // GEN_OMP_CLAUSE_DESCRIPTORS
1680#ifdef GEN_OMP_CLAUSE_GROUP_DESCRIPTORS
1681 {
1682 ClauseSet::Assumption,
1683 descriptor::ClauseSet(
1684 "assumption",
1685 {
1686 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_contains, Clause::OMPC_holds, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism}, {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}}},
1687 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_contains, Clause::OMPC_holds, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism}, {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}}},
1688 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_contains, Clause::OMPC_holds, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_constructs, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism}, {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}}},
1689 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_contains, Clause::OMPC_holds, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_constructs, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism}, {Directive::OMPD_assume, Directive::OMPD_assumes, Directive::OMPD_begin_assumes}}},
1690 }
1691 ),
1692 },
1693 {
1694 ClauseSet::Atomic,
1695 descriptor::ClauseSet(
1696 "atomic",
1697 {
1698 {Version(45), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1699 {Version(50), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1700 {Version(51), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1701 {Version(52), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1702 {Version(60), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1703 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_read, Clause::OMPC_update, Clause::OMPC_write}, {Directive::OMPD_atomic}}},
1704 }
1705 ),
1706 },
1707 {
1708 ClauseSet::Branch,
1709 descriptor::ClauseSet(
1710 "branch",
1711 {
1712 {Version(45), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1713 {Version(50), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1714 {Version(51), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1715 {Version(52), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1716 {Version(60), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1717 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_inbranch, Clause::OMPC_notinbranch}, {Directive::OMPD_declare_simd}}},
1718 }
1719 ),
1720 },
1721 {
1722 ClauseSet::CancelDirectiveName,
1723 descriptor::ClauseSet(
1724 "cancel-directive-name",
1725 {
1726 {Version(50), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_cancellation_construct_type}, {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}}},
1727 {Version(51), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_cancellation_construct_type}, {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}}},
1728 {Version(52), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_cancellation_construct_type}, {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}}},
1729 {Version(60), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_cancellation_construct_type}, {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}}},
1730 {Version(61), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_cancellation_construct_type}, {Directive::OMPD_cancel, Directive::OMPD_cancellation_point}}},
1731 }
1732 ),
1733 },
1734 {
1735 ClauseSet::ExtendedAtomic,
1736 descriptor::ClauseSet(
1737 "extended-atomic",
1738 {
1739 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture}, {Directive::OMPD_atomic}}},
1740 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture}, {Directive::OMPD_atomic}}},
1741 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture, Clause::OMPC_compare, Clause::OMPC_fail, Clause::OMPC_weak}, {Directive::OMPD_atomic}}},
1742 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture, Clause::OMPC_compare, Clause::OMPC_fail, Clause::OMPC_weak}, {Directive::OMPD_atomic}}},
1743 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture, Clause::OMPC_compare, Clause::OMPC_fail, Clause::OMPC_weak}, {Directive::OMPD_atomic}}},
1744 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_capture, Clause::OMPC_compare, Clause::OMPC_fail, Clause::OMPC_weak}, {Directive::OMPD_atomic}}},
1745 }
1746 ),
1747 },
1748 {
1749 ClauseSet::MemoryOrder,
1750 descriptor::ClauseSet(
1751 "memory-order",
1752 {
1753 {Version(45), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_seq_cst}, {Directive::OMPD_atomic}}},
1754 {Version(50), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_seq_cst}, {Directive::OMPD_atomic, Directive::OMPD_flush}}},
1755 {Version(51), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_seq_cst}, {Directive::OMPD_atomic, Directive::OMPD_flush}}},
1756 {Version(52), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_seq_cst}, {Directive::OMPD_atomic, Directive::OMPD_flush}}},
1757 {Version(60), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_seq_cst}, {Directive::OMPD_atomic, Directive::OMPD_flush}}},
1758 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_seq_cst}, {Directive::OMPD_atomic, Directive::OMPD_flush}}},
1759 }
1760 ),
1761 },
1762 {
1763 ClauseSet::ParallelizationLevel,
1764 descriptor::ClauseSet(
1765 "parallelization-level",
1766 {
1767 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simd, Clause::OMPC_threads}, {Directive::OMPD_ordered_blockassoc}}},
1768 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simd, Clause::OMPC_threads}, {Directive::OMPD_ordered_blockassoc}}},
1769 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simd, Clause::OMPC_threads}, {Directive::OMPD_ordered_blockassoc}}},
1770 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simd, Clause::OMPC_threads}, {Directive::OMPD_ordered_blockassoc}}},
1771 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simd, Clause::OMPC_threads}, {Directive::OMPD_ordered_blockassoc}}},
1772 }
1773 ),
1774 },
1775 {
1776 ClauseSet::Requirement,
1777 descriptor::ClauseSet(
1778 "requirement",
1779 {
1780 {Version(50), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_atomic_default_mem_order, Clause::OMPC_dynamic_allocators, Clause::OMPC_reverse_offload, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory}, {Directive::OMPD_requires}}},
1781 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_atomic_default_mem_order, Clause::OMPC_dynamic_allocators, Clause::OMPC_reverse_offload, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory}, {Directive::OMPD_requires}}},
1782 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_atomic_default_mem_order, Clause::OMPC_dynamic_allocators, Clause::OMPC_reverse_offload, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory}, {Directive::OMPD_requires}}},
1783 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_atomic_default_mem_order, Clause::OMPC_device_safesync, Clause::OMPC_dynamic_allocators, Clause::OMPC_reverse_offload, Clause::OMPC_self_maps, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory}, {Directive::OMPD_requires}}},
1784 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_atomic_default_mem_order, Clause::OMPC_device_safesync, Clause::OMPC_dynamic_allocators, Clause::OMPC_reverse_offload, Clause::OMPC_self_maps, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory}, {Directive::OMPD_requires}}},
1785 }
1786 ),
1787 },
1788#endif // GEN_OMP_CLAUSE_GROUP_DESCRIPTORS
1789#ifdef GEN_OMP_CLAUSE_SET_DESCRIPTORS
1790 {
1791 ClauseSet::ActionClause,
1792 descriptor::ClauseSet(
1793 "action-clause",
1794 {
1795 {Version(51), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_use}, {Directive::OMPD_interop}}},
1796 {Version(52), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_use}, {Directive::OMPD_interop}}},
1797 {Version(60), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_use}, {Directive::OMPD_interop}}},
1798 {Version(61), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_use}, {Directive::OMPD_interop}}},
1799 }
1800 ),
1801 },
1802 {
1803 ClauseSet::DataEnvironmentClause,
1804 descriptor::ClauseSet(
1805 "data-environment-clause",
1806 {
1807 {Version(50), {{{Property::Required}}, {Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {Directive::OMPD_target_data}}},
1808 {Version(51), {{{Property::Required}}, {Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {Directive::OMPD_target_data}}},
1809 {Version(52), {{{Property::Required}}, {Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {Directive::OMPD_target_data}}},
1810 {Version(60), {{{Property::Required}}, {Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {Directive::OMPD_target_data}}},
1811 {Version(61), {{{Property::Required}}, {Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {Directive::OMPD_target_data}}},
1812 }
1813 ),
1814 },
1815 {
1816 ClauseSet::DeclareMapperClauseSet1,
1817 descriptor::ClauseSet(
1818 "declare_mapper_clause_set_1",
1819 {
1820 {Version(50), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_declare_mapper}}},
1821 {Version(51), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_declare_mapper}}},
1822 {Version(52), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_declare_mapper}}},
1823 {Version(60), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_declare_mapper}}},
1824 {Version(61), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_declare_mapper}}},
1825 }
1826 ),
1827 },
1828 {
1829 ClauseSet::DepobjClauseSet1,
1830 descriptor::ClauseSet(
1831 "depobj_clause_set_1",
1832 {
1833 {Version(50), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {Directive::OMPD_depobj}}},
1834 {Version(51), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {Directive::OMPD_depobj}}},
1835 {Version(52), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {Directive::OMPD_depobj}}},
1836 {Version(60), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_update_depend_objects}, {Directive::OMPD_depobj}}},
1837 {Version(61), {{{Property::Required}}, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_update_depend_objects}, {Directive::OMPD_depobj}}},
1838 }
1839 ),
1840 },
1841 {
1842 ClauseSet::GranularityClause,
1843 descriptor::ClauseSet(
1844 "granularity-clause",
1845 {
1846 {Version(45), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1847 {Version(50), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1848 {Version(51), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1849 {Version(52), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1850 {Version(60), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1851 {Version(61), {{{Property::Exclusive}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}, {Directive::OMPD_taskloop}}},
1852 }
1853 ),
1854 },
1855 {
1856 ClauseSet::ScanClauseSet1,
1857 descriptor::ClauseSet(
1858 "scan_clause_set_1",
1859 {
1860 {Version(50), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {Directive::OMPD_scan}}},
1861 {Version(51), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {Directive::OMPD_scan}}},
1862 {Version(52), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {Directive::OMPD_scan}}},
1863 {Version(60), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_exclusive, Clause::OMPC_inclusive, Clause::OMPC_init_complete}, {Directive::OMPD_scan}}},
1864 {Version(61), {{{Property::Exclusive, Property::Required, Property::Unique}}, {Clause::OMPC_exclusive, Clause::OMPC_inclusive, Clause::OMPC_init_complete}, {Directive::OMPD_scan}}},
1865 }
1866 ),
1867 },
1868 {
1869 ClauseSet::SingleClauseSet1,
1870 descriptor::ClauseSet(
1871 "single_clause_set_1",
1872 {
1873 {Version(45), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1874 {Version(50), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1875 {Version(51), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1876 {Version(52), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1877 {Version(60), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1878 {Version(61), {{{Property::Exclusive}}, {Clause::OMPC_copyprivate, Clause::OMPC_nowait}, {Directive::OMPD_single}}},
1879 }
1880 ),
1881 },
1882 {
1883 ClauseSet::SynchronizationClause,
1884 descriptor::ClauseSet(
1885 "synchronization-clause",
1886 {
1887 {Version(50), {{{Property::Exclusive}}, {Clause::OMPC_nogroup, Clause::OMPC_reduction}, {Directive::OMPD_taskloop}}},
1888 {Version(51), {{{Property::Exclusive}}, {Clause::OMPC_nogroup, Clause::OMPC_reduction}, {Directive::OMPD_taskloop}}},
1889 {Version(52), {{{Property::Exclusive}}, {Clause::OMPC_nogroup, Clause::OMPC_reduction}, {Directive::OMPD_taskloop}}},
1890 {Version(60), {{{Property::Exclusive}}, {Clause::OMPC_nogroup, Clause::OMPC_reduction}, {Directive::OMPD_taskloop}}},
1891 {Version(61), {{{Property::Exclusive}}, {Clause::OMPC_nogroup, Clause::OMPC_reduction}, {Directive::OMPD_taskloop}}},
1892 }
1893 ),
1894 },
1895 {
1896 ClauseSet::TargetDataClauseSet1,
1897 descriptor::ClauseSet(
1898 "target_data_clause_set_1",
1899 {
1900 {Version(45), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_data}}},
1901 }
1902 ),
1903 },
1904 {
1905 ClauseSet::TargetEnterDataClauseSet1,
1906 descriptor::ClauseSet(
1907 "target_enter_data_clause_set_1",
1908 {
1909 {Version(45), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1910 {Version(50), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1911 {Version(51), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1912 {Version(52), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1913 {Version(60), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1914 {Version(61), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_enter_data}}},
1915 }
1916 ),
1917 },
1918 {
1919 ClauseSet::TargetExitDataClauseSet1,
1920 descriptor::ClauseSet(
1921 "target_exit_data_clause_set_1",
1922 {
1923 {Version(45), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1924 {Version(50), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1925 {Version(51), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1926 {Version(52), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1927 {Version(60), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1928 {Version(61), {{{Property::Required}}, {Clause::OMPC_map}, {Directive::OMPD_target_exit_data}}},
1929 }
1930 ),
1931 },
1932 {
1933 ClauseSet::TargetUpdateClauseSet1,
1934 descriptor::ClauseSet(
1935 "target_update_clause_set_1",
1936 {
1937 {Version(45), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1938 {Version(50), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1939 {Version(51), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1940 {Version(52), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1941 {Version(60), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1942 {Version(61), {{{Property::Required}}, {Clause::OMPC_from, Clause::OMPC_to}, {Directive::OMPD_target_update}}},
1943 }
1944 ),
1945 },
1946 {
1947 ClauseSet::TaskClauseSet1,
1948 descriptor::ClauseSet(
1949 "task_clause_set_1",
1950 {
1951 {Version(50), {{{Property::Exclusive}}, {Clause::OMPC_detach, Clause::OMPC_mergeable}, {Directive::OMPD_task}}},
1952 {Version(51), {{{Property::Exclusive}}, {Clause::OMPC_detach, Clause::OMPC_mergeable}, {Directive::OMPD_task}}},
1953 {Version(52), {{{Property::Exclusive}}, {Clause::OMPC_detach, Clause::OMPC_mergeable}, {Directive::OMPD_task}}},
1954 {Version(60), {{{Property::Exclusive}}, {Clause::OMPC_detach, Clause::OMPC_mergeable}, {Directive::OMPD_task}}},
1955 {Version(61), {{{Property::Exclusive}}, {Clause::OMPC_detach, Clause::OMPC_mergeable}, {Directive::OMPD_task}}},
1956 }
1957 ),
1958 },
1959 {
1960 ClauseSet::UnrollClauseSet1,
1961 descriptor::ClauseSet(
1962 "unroll_clause_set_1",
1963 {
1964 {Version(51), {{{Property::Exclusive}}, {Clause::OMPC_full, Clause::OMPC_partial}, {Directive::OMPD_unroll}}},
1965 {Version(52), {{{Property::Exclusive}}, {Clause::OMPC_full, Clause::OMPC_partial}, {Directive::OMPD_unroll}}},
1966 {Version(60), {{{Property::Exclusive}}, {Clause::OMPC_full, Clause::OMPC_partial}, {Directive::OMPD_unroll}}},
1967 {Version(61), {{{Property::Exclusive}}, {Clause::OMPC_full, Clause::OMPC_partial}, {Directive::OMPD_unroll}}},
1968 }
1969 ),
1970 },
1971#endif // GEN_OMP_CLAUSE_SET_DESCRIPTORS
1972#ifdef GEN_OMP_DIRECTIVE_DESCRIPTORS
1973 {
1974 Directive::OMPD_allocate,
1975 descriptor::Directive(
1976 "allocate",
1977 {
1978 {Version(50), {{{Property::Pure}}, "allocate", Association::Explicit, Category::Declarative, {Clause::OMPC_allocator}, {}}},
1979 {Version(51), {{{Property::Pure}}, "allocate", Association::Explicit, Category::Declarative, {Clause::OMPC_align, Clause::OMPC_allocator}, {}}},
1980 {Version(52), {{{Property::Pure}}, "allocate", Association::Explicit, Category::Declarative, {Clause::OMPC_align, Clause::OMPC_allocator}, {}}},
1981 {Version(60), {{{Property::Pure}}, "allocate", Association::Explicit, Category::Declarative, {Clause::OMPC_align, Clause::OMPC_allocator}, {}}},
1982 {Version(61), {{{Property::Pure}}, "allocate", Association::Explicit, Category::Declarative, {Clause::OMPC_align, Clause::OMPC_allocator}, {}}},
1983 }
1984 ),
1985 },
1986 {
1987 Directive::OMPD_allocators,
1988 descriptor::Directive(
1989 "allocators",
1990 {
1991 {Version(52), {{{}}, "allocators", Association::Block, Category::Executable, {Clause::OMPC_allocate}, {}}},
1992 {Version(60), {{{}}, "allocators", Association::Block, Category::Executable, {Clause::OMPC_allocate}, {}}},
1993 {Version(61), {{{}}, "allocators", Association::Block, Category::Executable, {Clause::OMPC_allocate}, {}}},
1994 }
1995 ),
1996 },
1997 {
1998 Directive::OMPD_assume,
1999 descriptor::Directive(
2000 "assume",
2001 {
2002 {Version(51), {{{Property::Pure}}, "assume", Association::Block, Category::Informational, {}, {ClauseSet::Assumption}}},
2003 {Version(52), {{{Property::Pure}}, "assume", Association::Block, Category::Informational, {}, {ClauseSet::Assumption}}},
2004 {Version(60), {{{Property::Pure}}, "assume", Association::Block, Category::Informational, {}, {ClauseSet::Assumption}}},
2005 {Version(61), {{{Property::Pure}}, "assume", Association::Block, Category::Informational, {}, {ClauseSet::Assumption}}},
2006 }
2007 ),
2008 },
2009 {
2010 Directive::OMPD_assumes,
2011 descriptor::Directive(
2012 "assumes",
2013 {
2014 {Version(51), {{{Property::Pure}}, "assumes", Association::Unassociated, Category::Informational, {}, {ClauseSet::Assumption}}},
2015 {Version(52), {{{Property::Pure}}, "assumes", Association::Unassociated, Category::Informational, {}, {ClauseSet::Assumption}}},
2016 {Version(60), {{{Property::Pure}}, "assumes", Association::Unassociated, Category::Informational, {}, {ClauseSet::Assumption}}},
2017 {Version(61), {{{Property::Pure}}, "assumes", Association::Unassociated, Category::Informational, {}, {ClauseSet::Assumption}}},
2018 }
2019 ),
2020 },
2021 {
2022 Directive::OMPD_atomic,
2023 descriptor::Directive(
2024 "atomic",
2025 {
2026 {Version(45), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2027 {Version(50), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {Clause::OMPC_hint}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2028 {Version(51), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {Clause::OMPC_hint}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2029 {Version(52), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {Clause::OMPC_hint}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2030 {Version(60), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {Clause::OMPC_hint, Clause::OMPC_memscope}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2031 {Version(61), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitStrongFlush, Property::ImplicitStrongFlushAtEntry, Property::ImplicitStrongFlushAtExit, Property::MutualExclusion, Property::OrderConcurrentNestable, Property::Simdizable}}, "atomic", Association::Block, Category::Executable, {Clause::OMPC_hint, Clause::OMPC_memscope}, {ClauseSet::Atomic, ClauseSet::ExtendedAtomic, ClauseSet::MemoryOrder}}},
2032 }
2033 ),
2034 },
2035 {
2036 Directive::OMPD_barrier,
2037 descriptor::Directive(
2038 "barrier",
2039 {
2040 {Version(45), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2041 {Version(50), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2042 {Version(51), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2043 {Version(52), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2044 {Version(60), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2045 {Version(61), {{{Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TaskSynchronizing, Property::TeamExecuted}}, "barrier", Association::Unassociated, Category::Executable, {}, {}}},
2046 }
2047 ),
2048 },
2049 {
2050 Directive::OMPD_begin_assumes,
2051 descriptor::Directive(
2052 "begin_assumes",
2053 {
2054 {Version(51), {{{}}, "begin assumes", Association::Delimited, Category::Informational, {}, {ClauseSet::Assumption}}},
2055 {Version(52), {{{}}, "begin assumes", Association::Delimited, Category::Informational, {}, {ClauseSet::Assumption}}},
2056 {Version(60), {{{}}, "begin assumes", Association::Delimited, Category::Informational, {}, {ClauseSet::Assumption}}},
2057 {Version(61), {{{}}, "begin assumes", Association::Delimited, Category::Informational, {}, {ClauseSet::Assumption}}},
2058 }
2059 ),
2060 },
2061 {
2062 Directive::OMPD_begin_declare_target,
2063 descriptor::Directive(
2064 "begin_declare_target",
2065 {
2066 {Version(51), {{{Property::DeclareTarget, Property::Device, Property::VariantGenerating}}, "begin declare target", Association::Delimited, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_indirect}, {}}},
2067 {Version(52), {{{Property::DeclareTarget, Property::Device, Property::VariantGenerating}}, "begin declare target", Association::Delimited, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_indirect}, {}}},
2068 {Version(60), {{{Property::DeclareTarget, Property::Device, Property::VariantGenerating}}, "begin declare_target", Association::Delimited, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_indirect}, {}}},
2069 {Version(61), {{{Property::DeclareTarget, Property::Device, Property::VariantGenerating}}, "begin declare_target", Association::Delimited, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_indirect}, {}}},
2070 }
2071 ),
2072 },
2073 {
2074 Directive::OMPD_begin_declare_variant,
2075 descriptor::Directive(
2076 "begin_declare_variant",
2077 {
2078 {Version(51), {{{}}, "begin declare variant", Association::Delimited, Category::Declarative, {Clause::OMPC_match}, {}}},
2079 {Version(52), {{{}}, "begin declare variant", Association::Delimited, Category::Declarative, {Clause::OMPC_match}, {}}},
2080 {Version(60), {{{}}, "begin declare_variant", Association::Delimited, Category::Declarative, {Clause::OMPC_match}, {}}},
2081 {Version(61), {{{}}, "begin declare_variant", Association::Delimited, Category::Declarative, {Clause::OMPC_match}, {}}},
2082 }
2083 ),
2084 },
2085 {
2086 Directive::OMPD_begin_metadirective,
2087 descriptor::Directive(
2088 "begin_metadirective",
2089 {
2090 {Version(50), {{{Property::Pure}}, "begin metadirective", Association::Delimited, Category::Meta, {Clause::OMPC_default_variant, Clause::OMPC_when}, {}}},
2091 {Version(51), {{{Property::Pure}}, "begin metadirective", Association::Delimited, Category::Meta, {Clause::OMPC_default_variant, Clause::OMPC_when}, {}}},
2092 {Version(52), {{{Property::Pure}}, "begin metadirective", Association::Delimited, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2093 {Version(60), {{{Property::Pure}}, "begin metadirective", Association::Delimited, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2094 {Version(61), {{{Property::Pure}}, "begin metadirective", Association::Delimited, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2095 }
2096 ),
2097 },
2098 {
2099 Directive::OMPD_cancel,
2100 descriptor::Directive(
2101 "cancel",
2102 {
2103 {Version(45), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_cancellation_construct_type, Clause::OMPC_if}, {}}},
2104 {Version(50), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_if}, {ClauseSet::CancelDirectiveName}}},
2105 {Version(51), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_if}, {ClauseSet::CancelDirectiveName}}},
2106 {Version(52), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_if}, {ClauseSet::CancelDirectiveName}}},
2107 {Version(60), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_if}, {ClauseSet::CancelDirectiveName}}},
2108 {Version(61), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancel", Association::Unassociated, Category::Executable, {Clause::OMPC_if}, {ClauseSet::CancelDirectiveName}}},
2109 }
2110 ),
2111 },
2112 {
2113 Directive::OMPD_cancellation_point,
2114 descriptor::Directive(
2115 "cancellation_point",
2116 {
2117 {Version(45), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation point", Association::Unassociated, Category::Executable, {Clause::OMPC_cancellation_construct_type}, {}}},
2118 {Version(50), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation point", Association::Unassociated, Category::Executable, {}, {ClauseSet::CancelDirectiveName}}},
2119 {Version(51), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation point", Association::Unassociated, Category::Executable, {}, {ClauseSet::CancelDirectiveName}}},
2120 {Version(52), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation point", Association::Unassociated, Category::Executable, {}, {ClauseSet::CancelDirectiveName}}},
2121 {Version(60), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation_point", Association::Unassociated, Category::Executable, {}, {ClauseSet::CancelDirectiveName}}},
2122 {Version(61), {{{Property::CancellationPoint, Property::ImplicitFlush}}, "cancellation_point", Association::Unassociated, Category::Executable, {}, {ClauseSet::CancelDirectiveName}}},
2123 }
2124 ),
2125 },
2126 {
2127 Directive::OMPD_critical,
2128 descriptor::Directive(
2129 "critical",
2130 {
2131 {Version(45), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2132 {Version(50), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2133 {Version(51), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2134 {Version(52), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2135 {Version(60), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2136 {Version(61), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::ThreadExclusive, Property::ThreadLimiting}}, "critical", Association::Block, Category::Executable, {Clause::OMPC_hint}, {}}},
2137 }
2138 ),
2139 },
2140 {
2141 Directive::OMPD_declare_induction,
2142 descriptor::Directive(
2143 "declare_induction",
2144 {
2145 {Version(60), {{{Property::Pure}}, "declare_induction", Association::Unassociated, Category::Declarative, {Clause::OMPC_collector, Clause::OMPC_inductor}, {}}},
2146 {Version(61), {{{Property::Pure}}, "declare_induction", Association::Unassociated, Category::Declarative, {Clause::OMPC_collector, Clause::OMPC_inductor}, {}}},
2147 }
2148 ),
2149 },
2150 {
2151 Directive::OMPD_declare_mapper,
2152 descriptor::Directive(
2153 "declare_mapper",
2154 {
2155 {Version(50), {{{Property::Pure}}, "declare mapper", Association::Unassociated, Category::Declarative, {Clause::OMPC_map}, {ClauseSet::DeclareMapperClauseSet1}}},
2156 {Version(51), {{{Property::Pure}}, "declare mapper", Association::Unassociated, Category::Declarative, {Clause::OMPC_map}, {ClauseSet::DeclareMapperClauseSet1}}},
2157 {Version(52), {{{Property::Pure}}, "declare mapper", Association::Unassociated, Category::Declarative, {Clause::OMPC_map}, {ClauseSet::DeclareMapperClauseSet1}}},
2158 {Version(60), {{{Property::Pure}}, "declare_mapper", Association::Unassociated, Category::Declarative, {Clause::OMPC_map}, {ClauseSet::DeclareMapperClauseSet1}}},
2159 {Version(61), {{{Property::Pure}}, "declare_mapper", Association::Unassociated, Category::Declarative, {Clause::OMPC_map}, {ClauseSet::DeclareMapperClauseSet1}}},
2160 }
2161 ),
2162 },
2163 {
2164 Directive::OMPD_declare_reduction,
2165 descriptor::Directive(
2166 "declare_reduction",
2167 {
2168 {Version(45), {{{Property::Pure}}, "declare reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_initializer}, {}}},
2169 {Version(50), {{{Property::Pure}}, "declare reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_initializer}, {}}},
2170 {Version(51), {{{Property::Pure}}, "declare reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_initializer}, {}}},
2171 {Version(52), {{{Property::Pure}}, "declare reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_initializer}, {}}},
2172 {Version(60), {{{Property::Pure}}, "declare_reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_combiner, Clause::OMPC_initializer}, {}}},
2173 {Version(61), {{{Property::Pure}}, "declare_reduction", Association::Unassociated, Category::Declarative, {Clause::OMPC_combiner, Clause::OMPC_initializer, Clause::OMPC_reduction_kind}, {}}},
2174 }
2175 ),
2176 },
2177 {
2178 Directive::OMPD_declare_simd,
2179 descriptor::Directive(
2180 "declare_simd",
2181 {
2182 {Version(45), {{{Property::Pure, Property::VariantGenerating}}, "declare simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2183 {Version(50), {{{Property::Pure, Property::VariantGenerating}}, "declare simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2184 {Version(51), {{{Property::Pure, Property::VariantGenerating}}, "declare simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2185 {Version(52), {{{Property::Pure, Property::VariantGenerating}}, "declare simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2186 {Version(60), {{{Property::Pure, Property::VariantGenerating}}, "declare_simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2187 {Version(61), {{{Property::Pure, Property::VariantGenerating}}, "declare_simd", Association::Declaration, Category::Declarative, {Clause::OMPC_aligned, Clause::OMPC_linear, Clause::OMPC_simdlen, Clause::OMPC_uniform}, {ClauseSet::Branch}}},
2188 }
2189 ),
2190 },
2191 {
2192 Directive::OMPD_declare_target,
2193 descriptor::Directive(
2194 "declare_target",
2195 {
2196 {Version(45), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare target", Association::Explicit, Category::Declarative, {Clause::OMPC_link, Clause::OMPC_to}, {}}},
2197 {Version(50), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare target", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_link, Clause::OMPC_to}, {}}},
2198 {Version(51), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare target", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_indirect, Clause::OMPC_link, Clause::OMPC_to}, {}}},
2199 {Version(52), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare target", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_enter, Clause::OMPC_indirect, Clause::OMPC_link}, {}}},
2200 {Version(60), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare_target", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_enter, Clause::OMPC_indirect, Clause::OMPC_link, Clause::OMPC_local}, {}}},
2201 {Version(61), {{{Property::DeclareTarget, Property::Device, Property::Pure, Property::VariantGenerating}}, "declare_target", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type, Clause::OMPC_enter, Clause::OMPC_indirect, Clause::OMPC_link, Clause::OMPC_local}, {}}},
2202 }
2203 ),
2204 },
2205 {
2206 Directive::OMPD_declare_variant,
2207 descriptor::Directive(
2208 "declare_variant",
2209 {
2210 {Version(50), {{{Property::Pure}}, "declare variant", Association::Declaration, Category::Declarative, {Clause::OMPC_match}, {}}},
2211 {Version(51), {{{Property::Pure}}, "declare variant", Association::Declaration, Category::Declarative, {Clause::OMPC_adjust_args, Clause::OMPC_append_args, Clause::OMPC_match}, {}}},
2212 {Version(52), {{{Property::Pure}}, "declare variant", Association::Declaration, Category::Declarative, {Clause::OMPC_adjust_args, Clause::OMPC_append_args, Clause::OMPC_match}, {}}},
2213 {Version(60), {{{Property::Pure}}, "declare_variant", Association::Declaration, Category::Declarative, {Clause::OMPC_adjust_args, Clause::OMPC_append_args, Clause::OMPC_match}, {}}},
2214 {Version(61), {{{Property::Pure}}, "declare_variant", Association::Declaration, Category::Declarative, {Clause::OMPC_adjust_args, Clause::OMPC_append_args, Clause::OMPC_match}, {}}},
2215 }
2216 ),
2217 },
2218 {
2219 Directive::OMPD_depobj,
2220 descriptor::Directive(
2221 "depobj",
2222 {
2223 {Version(50), {{{}}, "depobj", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {ClauseSet::DepobjClauseSet1}}},
2224 {Version(51), {{{}}, "depobj", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {ClauseSet::DepobjClauseSet1}}},
2225 {Version(52), {{{}}, "depobj", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_update_depend_objects}, {ClauseSet::DepobjClauseSet1}}},
2226 {Version(60), {{{}}, "depobj", Association::Unassociated, Category::Executable, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_update_depend_objects}, {ClauseSet::DepobjClauseSet1}}},
2227 {Version(61), {{{}}, "depobj", Association::Unassociated, Category::Executable, {Clause::OMPC_destroy, Clause::OMPC_init, Clause::OMPC_update_depend_objects}, {ClauseSet::DepobjClauseSet1}}},
2228 }
2229 ),
2230 },
2231 {
2232 Directive::OMPD_dispatch,
2233 descriptor::Directive(
2234 "dispatch",
2235 {
2236 {Version(51), {{{Property::ContextMatching, Property::ImplicitTaskwait}}, "dispatch", Association::Block, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_is_device_ptr, Clause::OMPC_nocontext, Clause::OMPC_novariants, Clause::OMPC_nowait}, {}}},
2237 {Version(52), {{{Property::ContextMatching, Property::ImplicitTaskwait}}, "dispatch", Association::Block, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_is_device_ptr, Clause::OMPC_nocontext, Clause::OMPC_novariants, Clause::OMPC_nowait}, {}}},
2238 {Version(60), {{{Property::ContextMatching, Property::ImplicitTaskwait}}, "dispatch", Association::Block, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_has_device_addr, Clause::OMPC_interop, Clause::OMPC_is_device_ptr, Clause::OMPC_nocontext, Clause::OMPC_novariants, Clause::OMPC_nowait}, {}}},
2239 {Version(61), {{{Property::ContextMatching, Property::ImplicitTaskwait, Property::TaskSynchronizing}}, "dispatch", Association::Block, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_has_device_addr, Clause::OMPC_interop, Clause::OMPC_is_device_ptr, Clause::OMPC_nocontext, Clause::OMPC_novariants, Clause::OMPC_nowait}, {}}},
2240 }
2241 ),
2242 },
2243 {
2244 Directive::OMPD_distribute,
2245 descriptor::Directive(
2246 "distribute",
2247 {
2248 {Version(45), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_private}, {}}},
2249 {Version(50), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private}, {}}},
2250 {Version(51), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private}, {}}},
2251 {Version(52), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private}, {}}},
2252 {Version(60), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private}, {}}},
2253 {Version(61), {{{Property::Partitioned, Property::SimdPartitionable, Property::TeamsNestable, Property::WorkDistribution}}, "distribute", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_dist_schedule, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private}, {}}},
2254 }
2255 ),
2256 },
2257 {
2258 Directive::OMPD_do,
2259 descriptor::Directive(
2260 "do",
2261 {
2262 {Version(45), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2263 {Version(50), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2264 {Version(51), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2265 {Version(52), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2266 {Version(60), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2267 {Version(61), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TaskSynchronizing, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "do", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2268 }
2269 ),
2270 },
2271 {
2272 Directive::OMPD_error,
2273 descriptor::Directive(
2274 "error",
2275 {
2276 {Version(51), {{{Property::Pure}}, "error", Association::Unassociated, Category::Utility, {Clause::OMPC_at, Clause::OMPC_message, Clause::OMPC_severity}, {}}},
2277 {Version(52), {{{Property::Pure}}, "error", Association::Unassociated, Category::Utility, {Clause::OMPC_at, Clause::OMPC_message, Clause::OMPC_severity}, {}}},
2278 {Version(60), {{{Property::Pure}}, "error", Association::Unassociated, Category::Utility, {Clause::OMPC_at, Clause::OMPC_message, Clause::OMPC_severity}, {}}},
2279 {Version(61), {{{Property::Pure}}, "error", Association::Unassociated, Category::Utility, {Clause::OMPC_at, Clause::OMPC_message, Clause::OMPC_severity}, {}}},
2280 }
2281 ),
2282 },
2283 {
2284 Directive::OMPD_flatten,
2285 descriptor::Directive(
2286 "flatten",
2287 {
2288 {Version(61), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "flatten", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_depth}, {}}},
2289 }
2290 ),
2291 },
2292 {
2293 Directive::OMPD_flush,
2294 descriptor::Directive(
2295 "flush",
2296 {
2297 {Version(45), {{{}}, "flush", Association::Unassociated, Category::Executable, {}, {}}},
2298 {Version(50), {{{}}, "flush", Association::Unassociated, Category::Executable, {}, {ClauseSet::MemoryOrder}}},
2299 {Version(51), {{{}}, "flush", Association::Unassociated, Category::Executable, {}, {ClauseSet::MemoryOrder}}},
2300 {Version(52), {{{}}, "flush", Association::Unassociated, Category::Executable, {}, {ClauseSet::MemoryOrder}}},
2301 {Version(60), {{{}}, "flush", Association::Unassociated, Category::Executable, {Clause::OMPC_memscope}, {ClauseSet::MemoryOrder}}},
2302 {Version(61), {{{}}, "flush", Association::Unassociated, Category::Executable, {Clause::OMPC_memscope}, {ClauseSet::MemoryOrder}}},
2303 }
2304 ),
2305 },
2306 {
2307 Directive::OMPD_for,
2308 descriptor::Directive(
2309 "for",
2310 {
2311 {Version(45), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2312 {Version(50), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2313 {Version(51), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2314 {Version(52), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2315 {Version(60), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2316 {Version(61), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::SimdPartitionable, Property::TaskSynchronizing, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing, Property::WorksharingLoop}}, "for", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_firstprivate, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nowait, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_schedule}, {}}},
2317 }
2318 ),
2319 },
2320 {
2321 Directive::OMPD_fuse,
2322 descriptor::Directive(
2323 "fuse",
2324 {
2325 {Version(60), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "fuse", Association::LoopSequence, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_looprange}, {}}},
2326 {Version(61), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "fuse", Association::LoopSequence, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_depth, Clause::OMPC_looprange}, {}}},
2327 }
2328 ),
2329 },
2330 {
2331 Directive::OMPD_groupprivate,
2332 descriptor::Directive(
2333 "groupprivate",
2334 {
2335 {Version(60), {{{Property::Pure}}, "groupprivate", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type}, {}}},
2336 {Version(61), {{{Property::Pure}}, "groupprivate", Association::Explicit, Category::Declarative, {Clause::OMPC_device_type}, {}}},
2337 }
2338 ),
2339 },
2340 {
2341 Directive::OMPD_interchange,
2342 descriptor::Directive(
2343 "interchange",
2344 {
2345 {Version(60), {{{Property::LoopTransforming, Property::NonrectangularCompatible, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "interchange", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_permutation}, {}}},
2346 {Version(61), {{{Property::LoopTransforming, Property::NonrectangularCompatible, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "interchange", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_permutation}, {}}},
2347 }
2348 ),
2349 },
2350 {
2351 Directive::OMPD_interop,
2352 descriptor::Directive(
2353 "interop",
2354 {
2355 {Version(51), {{{Property::Device}}, "interop", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_device, Clause::OMPC_init, Clause::OMPC_nowait, Clause::OMPC_use}, {ClauseSet::ActionClause}}},
2356 {Version(52), {{{Property::Device}}, "interop", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_device, Clause::OMPC_init, Clause::OMPC_nowait, Clause::OMPC_use}, {ClauseSet::ActionClause}}},
2357 {Version(60), {{{Property::Device}}, "interop", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_device, Clause::OMPC_init, Clause::OMPC_nowait, Clause::OMPC_use}, {ClauseSet::ActionClause}}},
2358 {Version(61), {{{Property::Device, Property::TaskSynchronizing}}, "interop", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_device, Clause::OMPC_init, Clause::OMPC_nowait, Clause::OMPC_use}, {ClauseSet::ActionClause}}},
2359 }
2360 ),
2361 },
2362 {
2363 Directive::OMPD_loop,
2364 descriptor::Directive(
2365 "loop",
2366 {
2367 {Version(50), {{{Property::OrderConcurrentNestable, Property::Partitioned, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamExecuted, Property::TeamsNestable, Property::WorkDistribution, Property::Worksharing}}, "loop", Association::LoopNest, Category::Executable, {Clause::OMPC_bind, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2368 {Version(51), {{{Property::OrderConcurrentNestable, Property::Partitioned, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamExecuted, Property::TeamsNestable, Property::WorkDistribution, Property::Worksharing}}, "loop", Association::LoopNest, Category::Executable, {Clause::OMPC_bind, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2369 {Version(52), {{{Property::OrderConcurrentNestable, Property::Partitioned, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamExecuted, Property::TeamsNestable, Property::WorkDistribution, Property::Worksharing}}, "loop", Association::LoopNest, Category::Executable, {Clause::OMPC_bind, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2370 {Version(60), {{{Property::OrderConcurrentNestable, Property::Partitioned, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamExecuted, Property::TeamsNestable, Property::WorkDistribution, Property::Worksharing}}, "loop", Association::LoopNest, Category::Executable, {Clause::OMPC_bind, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2371 {Version(61), {{{Property::OrderConcurrentNestable, Property::Partitioned, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamExecuted, Property::TeamsNestable, Property::WorkDistribution, Property::Worksharing}}, "loop", Association::LoopNest, Category::Executable, {Clause::OMPC_bind, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2372 }
2373 ),
2374 },
2375 {
2376 Directive::OMPD_masked,
2377 descriptor::Directive(
2378 "masked",
2379 {
2380 {Version(51), {{{Property::ThreadLimiting, Property::ThreadSelecting}}, "masked", Association::Block, Category::Executable, {Clause::OMPC_filter}, {}}},
2381 {Version(52), {{{Property::ThreadLimiting, Property::ThreadSelecting}}, "masked", Association::Block, Category::Executable, {Clause::OMPC_filter}, {}}},
2382 {Version(60), {{{Property::ThreadLimiting, Property::ThreadSelecting}}, "masked", Association::Block, Category::Executable, {Clause::OMPC_filter}, {}}},
2383 {Version(61), {{{Property::ThreadLimiting, Property::ThreadSelecting}}, "masked", Association::Block, Category::Executable, {Clause::OMPC_filter}, {}}},
2384 }
2385 ),
2386 },
2387 {
2388 Directive::OMPD_master,
2389 descriptor::Directive(
2390 "master",
2391 {
2392 {Version(45), {{{Property::ThreadLimiting}}, "master", Association::Block, Category::Executable, {}, {}}},
2393 {Version(50), {{{Property::ThreadLimiting, Property::ThreadSelecting}}, "master", Association::Block, Category::Executable, {}, {}}},
2394 }
2395 ),
2396 },
2397 {
2398 Directive::OMPD_metadirective,
2399 descriptor::Directive(
2400 "metadirective",
2401 {
2402 {Version(50), {{{Property::Pure}}, "metadirective", Association::Unassociated, Category::Meta, {Clause::OMPC_default_variant, Clause::OMPC_when}, {}}},
2403 {Version(51), {{{Property::Pure}}, "metadirective", Association::Unassociated, Category::Meta, {Clause::OMPC_default_variant, Clause::OMPC_when}, {}}},
2404 {Version(52), {{{Property::Pure}}, "metadirective", Association::Unassociated, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2405 {Version(60), {{{Property::Pure}}, "metadirective", Association::Unassociated, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2406 {Version(61), {{{Property::Pure}}, "metadirective", Association::Unassociated, Category::Meta, {Clause::OMPC_otherwise, Clause::OMPC_when}, {}}},
2407 }
2408 ),
2409 },
2410 {
2411 Directive::OMPD_nothing,
2412 descriptor::Directive(
2413 "nothing",
2414 {
2415 {Version(51), {{{Property::LoopTransforming, Property::Pure}}, "nothing", Association::Unassociated, Category::Utility, {}, {}}},
2416 {Version(52), {{{Property::LoopTransforming, Property::Pure}}, "nothing", Association::Unassociated, Category::Utility, {}, {}}},
2417 {Version(60), {{{Property::LoopTransforming, Property::Pure}}, "nothing", Association::Unassociated, Category::Utility, {Clause::OMPC_apply}, {}}},
2418 {Version(61), {{{Property::LoopTransforming, Property::Pure}}, "nothing", Association::Unassociated, Category::Utility, {Clause::OMPC_apply}, {}}},
2419 }
2420 ),
2421 },
2422 {
2423 Directive::OMPD_ordered_blockassoc,
2424 descriptor::Directive(
2425 "ordered-blockassoc",
2426 {
2427 {Version(45), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {Clause::OMPC_simd, Clause::OMPC_threads}, {}}},
2428 {Version(50), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {}, {ClauseSet::ParallelizationLevel}}},
2429 {Version(51), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {}, {ClauseSet::ParallelizationLevel}}},
2430 {Version(52), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {}, {ClauseSet::ParallelizationLevel}}},
2431 {Version(60), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {}, {ClauseSet::ParallelizationLevel}}},
2432 {Version(61), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtExit, Property::MutualExclusion, Property::Simdizable, Property::ThreadExclusive, Property::ThreadLimiting}}, "ordered", Association::Block, Category::Executable, {}, {ClauseSet::ParallelizationLevel}}},
2433 }
2434 ),
2435 },
2436 {
2437 Directive::OMPD_ordered_standalone,
2438 descriptor::Directive(
2439 "ordered-standalone",
2440 {
2441 {Version(45), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_depend}, {}}},
2442 {Version(50), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_depend}, {}}},
2443 {Version(51), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_depend}, {}}},
2444 {Version(52), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_doacross}, {}}},
2445 {Version(60), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_doacross}, {}}},
2446 {Version(61), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::MutualExclusion}}, "ordered", Association::Unassociated, Category::Executable, {Clause::OMPC_doacross}, {}}},
2447 }
2448 ),
2449 },
2450 {
2451 Directive::OMPD_parallel,
2452 descriptor::Directive(
2453 "parallel",
2454 {
2455 {Version(45), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_shared}, {}}},
2456 {Version(50), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_shared}, {}}},
2457 {Version(51), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_shared}, {}}},
2458 {Version(52), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_shared}, {}}},
2459 {Version(60), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_message, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_safesync, Clause::OMPC_severity, Clause::OMPC_shared}, {}}},
2460 {Version(61), {{{Property::Cancellable, Property::CancellationPoint, Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSynchronizing, Property::TeamGenerating, Property::TeamsNestable, Property::ThreadLimiting, Property::ThreadsOrderable}}, "parallel", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyin, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_message, Clause::OMPC_num_threads, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_reduction, Clause::OMPC_safesync, Clause::OMPC_severity, Clause::OMPC_shared}, {}}},
2461 }
2462 ),
2463 },
2464 {
2465 Directive::OMPD_requires,
2466 descriptor::Directive(
2467 "requires",
2468 {
2469 {Version(50), {{{}}, "requires", Association::Unassociated, Category::Informational, {}, {ClauseSet::Requirement}}},
2470 {Version(51), {{{}}, "requires", Association::Unassociated, Category::Informational, {}, {ClauseSet::Requirement}}},
2471 {Version(52), {{{}}, "requires", Association::Unassociated, Category::Informational, {}, {ClauseSet::Requirement}}},
2472 {Version(60), {{{}}, "requires", Association::Unassociated, Category::Informational, {}, {ClauseSet::Requirement}}},
2473 {Version(61), {{{}}, "requires", Association::Unassociated, Category::Informational, {}, {ClauseSet::Requirement}}},
2474 }
2475 ),
2476 },
2477 {
2478 Directive::OMPD_reverse,
2479 descriptor::Directive(
2480 "reverse",
2481 {
2482 {Version(60), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "reverse", Association::LoopNest, Category::Executable, {Clause::OMPC_apply}, {}}},
2483 {Version(61), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "reverse", Association::LoopNest, Category::Executable, {Clause::OMPC_apply}, {}}},
2484 }
2485 ),
2486 },
2487 {
2488 Directive::OMPD_scan,
2489 descriptor::Directive(
2490 "scan",
2491 {
2492 {Version(50), {{{Property::Pure}}, "scan", Association::Separating, Category::Subsidiary, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {ClauseSet::ScanClauseSet1}}},
2493 {Version(51), {{{Property::Pure}}, "scan", Association::Separating, Category::Subsidiary, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {ClauseSet::ScanClauseSet1}}},
2494 {Version(52), {{{Property::Pure}}, "scan", Association::Separating, Category::Subsidiary, {Clause::OMPC_exclusive, Clause::OMPC_inclusive}, {ClauseSet::ScanClauseSet1}}},
2495 {Version(60), {{{Property::Pure}}, "scan", Association::Separating, Category::Subsidiary, {Clause::OMPC_exclusive, Clause::OMPC_inclusive, Clause::OMPC_init_complete}, {ClauseSet::ScanClauseSet1}}},
2496 {Version(61), {{{Property::Pure}}, "scan", Association::Separating, Category::Subsidiary, {Clause::OMPC_exclusive, Clause::OMPC_inclusive, Clause::OMPC_init_complete}, {ClauseSet::ScanClauseSet1}}},
2497 }
2498 ),
2499 },
2500 {
2501 Directive::OMPD_scope,
2502 descriptor::Directive(
2503 "scope",
2504 {
2505 {Version(51), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadsOrderable, Property::WorkDistribution, Property::Worksharing}}, "scope", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2506 {Version(52), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadsOrderable, Property::WorkDistribution, Property::Worksharing}}, "scope", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2507 {Version(60), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadsOrderable, Property::WorkDistribution, Property::Worksharing}}, "scope", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2508 {Version(61), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::TaskSynchronizing, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadsOrderable, Property::WorkDistribution, Property::Worksharing}}, "scope", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2509 }
2510 ),
2511 },
2512 {
2513 Directive::OMPD_section,
2514 descriptor::Directive(
2515 "section",
2516 {
2517 {Version(45), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2518 {Version(50), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2519 {Version(51), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2520 {Version(52), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2521 {Version(60), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2522 {Version(61), {{{}}, "section", Association::Separating, Category::Subsidiary, {}, {}}},
2523 }
2524 ),
2525 },
2526 {
2527 Directive::OMPD_sections,
2528 descriptor::Directive(
2529 "sections",
2530 {
2531 {Version(45), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2532 {Version(50), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2533 {Version(51), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2534 {Version(52), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2535 {Version(60), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2536 {Version(61), {{{Property::Cancellable, Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::SequentiallyOrderable, Property::TaskSynchronizing, Property::TeamExecuted, Property::ThreadLimiting, Property::WorkDistribution, Property::Worksharing}}, "sections", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_firstprivate, Clause::OMPC_lastprivate, Clause::OMPC_nowait, Clause::OMPC_private, Clause::OMPC_reduction}, {}}},
2537 }
2538 ),
2539 },
2540 {
2541 Directive::OMPD_simd,
2542 descriptor::Directive(
2543 "simd",
2544 {
2545 {Version(45), {{{Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2546 {Version(50), {{{Property::ContextMatching, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_if, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nontemporal, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2547 {Version(51), {{{Property::ContextMatching, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_if, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nontemporal, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2548 {Version(52), {{{Property::ContextMatching, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_if, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nontemporal, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2549 {Version(60), {{{Property::ContextMatching, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_if, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nontemporal, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2550 {Version(61), {{{Property::ContextMatching, Property::OrderConcurrentNestable, Property::ParallelismGenerating, Property::Pure, Property::SequentiallyOrderable, Property::Simdizable, Property::TeamsNestable}}, "simd", Association::LoopNest, Category::Executable, {Clause::OMPC_aligned, Clause::OMPC_collapse, Clause::OMPC_if, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_nontemporal, Clause::OMPC_order, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_safelen, Clause::OMPC_simdlen}, {}}},
2551 }
2552 ),
2553 },
2554 {
2555 Directive::OMPD_single,
2556 descriptor::Directive(
2557 "single",
2558 {
2559 {Version(45), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2560 {Version(50), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2561 {Version(51), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2562 {Version(52), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2563 {Version(60), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2564 {Version(61), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TaskSynchronizing, Property::TeamExecuted, Property::ThreadLimiting, Property::ThreadSelecting, Property::WorkDistribution, Property::Worksharing}}, "single", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_copyprivate, Clause::OMPC_firstprivate, Clause::OMPC_nowait, Clause::OMPC_private}, {ClauseSet::SingleClauseSet1}}},
2565 }
2566 ),
2567 },
2568 {
2569 Directive::OMPD_split,
2570 descriptor::Directive(
2571 "split",
2572 {
2573 {Version(60), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "split", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_counts}, {}}},
2574 {Version(61), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "split", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_counts}, {}}},
2575 }
2576 ),
2577 },
2578 {
2579 Directive::OMPD_stripe,
2580 descriptor::Directive(
2581 "stripe",
2582 {
2583 {Version(60), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "stripe", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_sizes}, {}}},
2584 {Version(61), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "stripe", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_sizes}, {}}},
2585 }
2586 ),
2587 },
2588 {
2589 Directive::OMPD_target,
2590 descriptor::Directive(
2591 "target",
2592 {
2593 {Version(45), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_private}, {}}},
2594 {Version(50), {{{Property::ContextMatching, Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_thread_limit, Clause::OMPC_uses_allocators}, {}}},
2595 {Version(51), {{{Property::ContextMatching, Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_has_device_addr, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_thread_limit, Clause::OMPC_uses_allocators}, {}}},
2596 {Version(52), {{{Property::ContextMatching, Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_has_device_addr, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_thread_limit, Clause::OMPC_uses_allocators}, {}}},
2597 {Version(60), {{{Property::ContextMatching, Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::GroupprivateInstantiating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_device_type, Clause::OMPC_firstprivate, Clause::OMPC_has_device_addr, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_replayable, Clause::OMPC_thread_limit, Clause::OMPC_uses_allocators}, {}}},
2598 {Version(61), {{{Property::ContextMatching, Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExceptionAborting, Property::ExplicitTaskGenerating, Property::GroupprivateInstantiating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing, Property::TeamGenerating, Property::ThreadLimiting}}, "target", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_device_type, Clause::OMPC_dyn_groupprivate, Clause::OMPC_firstprivate, Clause::OMPC_has_device_addr, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_is_device_ptr, Clause::OMPC_map, Clause::OMPC_message, Clause::OMPC_nowait, Clause::OMPC_ompx_bare, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_replayable, Clause::OMPC_severity, Clause::OMPC_thread_limit, Clause::OMPC_uses_allocators}, {}}},
2599 }
2600 ),
2601 },
2602 {
2603 Directive::OMPD_target_data,
2604 descriptor::Directive(
2605 "target_data",
2606 {
2607 {Version(45), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target data", Association::Block, Category::Executable, {Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_use_device_ptr}, {ClauseSet::TargetDataClauseSet1}}},
2608 {Version(50), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target data", Association::Block, Category::Executable, {Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {ClauseSet::DataEnvironmentClause}}},
2609 {Version(51), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target data", Association::Block, Category::Executable, {Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {ClauseSet::DataEnvironmentClause}}},
2610 {Version(52), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target data", Association::Block, Category::Executable, {Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {ClauseSet::DataEnvironmentClause}}},
2611 {Version(60), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::SharingTask, Property::SimpleComposite, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target_data", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_map, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_transparent, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {ClauseSet::DataEnvironmentClause}}},
2612 {Version(61), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::MapEntering, Property::MapExiting, Property::ParallelismGenerating, Property::SharingTask, Property::SimpleComposite, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing}}, "target_data", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_device, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_map, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_transparent, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr}, {ClauseSet::DataEnvironmentClause}}},
2613 }
2614 ),
2615 },
2616 {
2617 Directive::OMPD_target_enter_data,
2618 descriptor::Directive(
2619 "target_enter_data",
2620 {
2621 {Version(45), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target enter data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetEnterDataClauseSet1}}},
2622 {Version(50), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target enter data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetEnterDataClauseSet1}}},
2623 {Version(51), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target enter data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetEnterDataClauseSet1}}},
2624 {Version(52), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target enter data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetEnterDataClauseSet1}}},
2625 {Version(60), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target_enter_data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable}, {ClauseSet::TargetEnterDataClauseSet1}}},
2626 {Version(61), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapEntering, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing}}, "target_enter_data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable}, {ClauseSet::TargetEnterDataClauseSet1}}},
2627 }
2628 ),
2629 },
2630 {
2631 Directive::OMPD_target_exit_data,
2632 descriptor::Directive(
2633 "target_exit_data",
2634 {
2635 {Version(45), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target exit data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetExitDataClauseSet1}}},
2636 {Version(50), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target exit data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetExitDataClauseSet1}}},
2637 {Version(51), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target exit data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetExitDataClauseSet1}}},
2638 {Version(52), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target exit data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait}, {ClauseSet::TargetExitDataClauseSet1}}},
2639 {Version(60), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target_exit_data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable}, {ClauseSet::TargetExitDataClauseSet1}}},
2640 {Version(61), {{{Property::DataMapping, Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::MapExiting, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing}}, "target_exit_data", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_if, Clause::OMPC_map, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable}, {ClauseSet::TargetExitDataClauseSet1}}},
2641 }
2642 ),
2643 },
2644 {
2645 Directive::OMPD_target_update,
2646 descriptor::Directive(
2647 "target_update",
2648 {
2649 {Version(45), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2650 {Version(50), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2651 {Version(51), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2652 {Version(52), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2653 {Version(60), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "target_update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2654 {Version(61), {{{Property::Device, Property::DeviceAffecting, Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing}}, "target_update", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_device, Clause::OMPC_from, Clause::OMPC_if, Clause::OMPC_nowait, Clause::OMPC_priority, Clause::OMPC_replayable, Clause::OMPC_to}, {ClauseSet::TargetUpdateClauseSet1}}},
2655 }
2656 ),
2657 },
2658 {
2659 Directive::OMPD_task,
2660 descriptor::Directive(
2661 "task",
2662 {
2663 {Version(45), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_untied}, {}}},
2664 {Version(50), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::TaskClauseSet1}}},
2665 {Version(51), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::TaskClauseSet1}}},
2666 {Version(52), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::TaskClauseSet1}}},
2667 {Version(60), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_replayable, Clause::OMPC_shared, Clause::OMPC_threadset, Clause::OMPC_transparent, Clause::OMPC_untied}, {ClauseSet::TaskClauseSet1}}},
2668 {Version(61), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ParallelismGenerating, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing, Property::TeamsNestable, Property::ThreadLimiting}}, "task", Association::Block, Category::Executable, {Clause::OMPC_affinity, Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_depend, Clause::OMPC_detach, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_mergeable, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_replayable, Clause::OMPC_shared, Clause::OMPC_threadset, Clause::OMPC_transparent, Clause::OMPC_untied}, {ClauseSet::TaskClauseSet1}}},
2669 }
2670 ),
2671 },
2672 {
2673 Directive::OMPD_task_iteration,
2674 descriptor::Directive(
2675 "task_iteration",
2676 {
2677 {Version(60), {{{}}, "task_iteration", Association::Unassociated, Category::Subsidiary, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_if}, {}}},
2678 {Version(61), {{{Property::TaskSynchronizing}}, "task_iteration", Association::Unassociated, Category::Subsidiary, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_if}, {}}},
2679 }
2680 ),
2681 },
2682 {
2683 Directive::OMPD_taskgraph,
2684 descriptor::Directive(
2685 "taskgraph",
2686 {
2687 {Version(60), {{{Property::ImplicitTaskgroup, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskgraph", Association::Block, Category::Executable, {Clause::OMPC_graph_id, Clause::OMPC_graph_reset, Clause::OMPC_if, Clause::OMPC_nogroup, Clause::OMPC_priority}, {}}},
2688 {Version(61), {{{Property::ImplicitTaskgroup, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing}}, "taskgraph", Association::Block, Category::Executable, {Clause::OMPC_graph_id, Clause::OMPC_graph_reset, Clause::OMPC_if, Clause::OMPC_nogroup, Clause::OMPC_priority}, {}}},
2689 }
2690 ),
2691 },
2692 {
2693 Directive::OMPD_taskgroup,
2694 descriptor::Directive(
2695 "taskgroup",
2696 {
2697 {Version(45), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskgroup", Association::Block, Category::Executable, {}, {}}},
2698 {Version(50), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskgroup", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_task_reduction}, {}}},
2699 {Version(51), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskgroup", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_task_reduction}, {}}},
2700 {Version(52), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskgroup", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_task_reduction}, {}}},
2701 {Version(60), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskgroup", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_task_reduction}, {}}},
2702 {Version(61), {{{Property::Cancellable, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing, Property::TeamsNestable}}, "taskgroup", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_task_reduction}, {}}},
2703 }
2704 ),
2705 },
2706 {
2707 Directive::OMPD_taskloop,
2708 descriptor::Directive(
2709 "taskloop",
2710 {
2711 {Version(45), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::GranularityClause}}},
2712 {Version(50), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::GranularityClause, ClauseSet::SynchronizationClause}}},
2713 {Version(51), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::GranularityClause, ClauseSet::SynchronizationClause}}},
2714 {Version(52), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_untied}, {ClauseSet::GranularityClause, ClauseSet::SynchronizationClause}}},
2715 {Version(60), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_replayable, Clause::OMPC_shared, Clause::OMPC_threadset, Clause::OMPC_transparent, Clause::OMPC_untied}, {ClauseSet::GranularityClause, ClauseSet::SynchronizationClause}}},
2716 {Version(61), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskgroup, Property::ParallelismGenerating, Property::SimdPartitionable, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing, Property::TeamsNestable}}, "taskloop", Association::LoopNest, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_collapse, Clause::OMPC_default, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_grainsize, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_induction, Clause::OMPC_lastprivate, Clause::OMPC_mergeable, Clause::OMPC_nogroup, Clause::OMPC_num_tasks, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_replayable, Clause::OMPC_shared, Clause::OMPC_threadset, Clause::OMPC_transparent, Clause::OMPC_untied}, {ClauseSet::GranularityClause, ClauseSet::SynchronizationClause}}},
2717 }
2718 ),
2719 },
2720 {
2721 Directive::OMPD_taskwait,
2722 descriptor::Directive(
2723 "taskwait",
2724 {
2725 {Version(45), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskwait", Association::Unassociated, Category::Executable, {}, {}}},
2726 {Version(50), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskwait", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_nowait}, {}}},
2727 {Version(51), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskwait", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_nowait}, {}}},
2728 {Version(52), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskwait", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_nowait}, {}}},
2729 {Version(60), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit}}, "taskwait", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_nowait, Clause::OMPC_replayable}, {}}},
2730 {Version(61), {{{Property::ExplicitTaskGenerating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::TaskGenerating, Property::TaskSchedulingPoint, Property::TaskSchedulingPointAfterTaskGeneration, Property::TaskSchedulingPointAtEntry, Property::TaskSchedulingPointAtExit, Property::TaskSynchronizing, Property::TeamsNestable}}, "taskwait", Association::Unassociated, Category::Executable, {Clause::OMPC_depend, Clause::OMPC_nowait, Clause::OMPC_replayable}, {}}},
2731 }
2732 ),
2733 },
2734 {
2735 Directive::OMPD_taskyield,
2736 descriptor::Directive(
2737 "taskyield",
2738 {
2739 {Version(45), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2740 {Version(50), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2741 {Version(51), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2742 {Version(52), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2743 {Version(60), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2744 {Version(61), {{{Property::TaskSchedulingPoint, Property::TaskSchedulingPointAtExit, Property::TeamsNestable}}, "taskyield", Association::Unassociated, Category::Executable, {}, {}}},
2745 }
2746 ),
2747 },
2748 {
2749 Directive::OMPD_teams,
2750 descriptor::Directive(
2751 "teams",
2752 {
2753 {Version(45), {{{Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2754 {Version(50), {{{Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2755 {Version(51), {{{Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2756 {Version(52), {{{Property::ContextMatching, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2757 {Version(60), {{{Property::ContextMatching, Property::GroupprivateInstantiating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2758 {Version(61), {{{Property::ContextMatching, Property::GroupprivateInstantiating, Property::ImplicitAcquireFlush, Property::ImplicitAcquireFlushAtEntry, Property::ImplicitAcquireFlushAtExit, Property::ImplicitFlush, Property::ImplicitReleaseFlush, Property::ImplicitReleaseFlushAtEntry, Property::ImplicitReleaseFlushAtExit, Property::ImplicitTaskGenerating, Property::LeagueGenerating, Property::ParallelismGenerating, Property::TaskGenerating, Property::TeamGenerating, Property::TeamsOrderable, Property::ThreadLimiting}}, "teams", Association::Block, Category::Executable, {Clause::OMPC_allocate, Clause::OMPC_default, Clause::OMPC_dyn_groupprivate, Clause::OMPC_firstprivate, Clause::OMPC_if, Clause::OMPC_message, Clause::OMPC_num_teams, Clause::OMPC_ompx_bare, Clause::OMPC_private, Clause::OMPC_reduction, Clause::OMPC_severity, Clause::OMPC_shared, Clause::OMPC_thread_limit}, {}}},
2759 }
2760 ),
2761 },
2762 {
2763 Directive::OMPD_threadprivate,
2764 descriptor::Directive(
2765 "threadprivate",
2766 {
2767 {Version(45), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2768 {Version(50), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2769 {Version(51), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2770 {Version(52), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2771 {Version(60), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2772 {Version(61), {{{Property::Pure}}, "threadprivate", Association::Explicit, Category::Declarative, {}, {}}},
2773 }
2774 ),
2775 },
2776 {
2777 Directive::OMPD_tile,
2778 descriptor::Directive(
2779 "tile",
2780 {
2781 {Version(51), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "tile", Association::LoopNest, Category::Executable, {Clause::OMPC_sizes}, {}}},
2782 {Version(52), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "tile", Association::LoopNest, Category::Executable, {Clause::OMPC_sizes}, {}}},
2783 {Version(60), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "tile", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_sizes}, {}}},
2784 {Version(61), {{{Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "tile", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_shift, Clause::OMPC_sizes}, {}}},
2785 }
2786 ),
2787 },
2788 {
2789 Directive::OMPD_unroll,
2790 descriptor::Directive(
2791 "unroll",
2792 {
2793 {Version(51), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "unroll", Association::LoopNest, Category::Executable, {Clause::OMPC_full, Clause::OMPC_partial}, {ClauseSet::UnrollClauseSet1}}},
2794 {Version(52), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "unroll", Association::LoopNest, Category::Executable, {Clause::OMPC_full, Clause::OMPC_partial}, {ClauseSet::UnrollClauseSet1}}},
2795 {Version(60), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "unroll", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_full, Clause::OMPC_partial}, {ClauseSet::UnrollClauseSet1}}},
2796 {Version(61), {{{Property::GenerallyComposable, Property::LoopTransforming, Property::OrderConcurrentNestable, Property::Pure, Property::Simdizable, Property::TeamsNestable}}, "unroll", Association::LoopNest, Category::Executable, {Clause::OMPC_apply, Clause::OMPC_full, Clause::OMPC_partial}, {ClauseSet::UnrollClauseSet1}}},
2797 }
2798 ),
2799 },
2800 {
2801 Directive::OMPD_workdistribute,
2802 descriptor::Directive(
2803 "workdistribute",
2804 {
2805 {Version(60), {{{Property::Partitioned, Property::WorkDistribution}}, "workdistribute", Association::Block, Category::Executable, {}, {}}},
2806 {Version(61), {{{Property::Partitioned, Property::TeamsNestable, Property::WorkDistribution}}, "workdistribute", Association::Block, Category::Executable, {}, {}}},
2807 }
2808 ),
2809 },
2810 {
2811 Directive::OMPD_workshare,
2812 descriptor::Directive(
2813 "workshare",
2814 {
2815 {Version(45), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2816 {Version(50), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2817 {Version(51), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2818 {Version(52), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2819 {Version(60), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2820 {Version(61), {{{Property::CancellationPoint, Property::ImplicitBarrier, Property::ImplicitBarrierFlushes, Property::ImplicitFlush, Property::Partitioned, Property::TaskSynchronizing, Property::TeamExecuted, Property::WorkDistribution, Property::Worksharing}}, "workshare", Association::Block, Category::Executable, {Clause::OMPC_nowait}, {}}},
2821 }
2822 ),
2823 },
2824#endif // GEN_OMP_DIRECTIVE_DESCRIPTORS
2825#ifdef GEN_OMP_MODIFIER_DESCRIPTORS
2826 {
2827 Modifier::AccessGroup,
2828 descriptor::Modifier(
2829 "access-group",
2830 {
2831 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_dyn_groupprivate}}},
2832 }
2833 ),
2834 },
2835 {
2836 Modifier::AdjustOp,
2837 descriptor::Modifier(
2838 "adjust-op",
2839 {
2840 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_adjust_args}}},
2841 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_adjust_args}}},
2842 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_adjust_args}}},
2843 }
2844 ),
2845 },
2846 {
2847 Modifier::AlignModifier,
2848 descriptor::Modifier(
2849 "align-modifier",
2850 {
2851 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2852 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2853 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2854 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2855 }
2856 ),
2857 },
2858 {
2859 Modifier::Alignment,
2860 descriptor::Modifier(
2861 "alignment",
2862 {
2863 {Version(45), {{{Property::Compatible, Property::Constant, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2864 {Version(50), {{{Property::Compatible, Property::Constant, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2865 {Version(51), {{{Property::Compatible, Property::Optional, Property::Positive, Property::RegionInvariant, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2866 {Version(52), {{{Property::Compatible, Property::Optional, Property::Positive, Property::RegionInvariant, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2867 {Version(60), {{{Property::Compatible, Property::Constant, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2868 {Version(61), {{{Property::Compatible, Property::Constant, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_aligned}}},
2869 }
2870 ),
2871 },
2872 {
2873 Modifier::AllocatorComplexModifier,
2874 descriptor::Modifier(
2875 "allocator-complex-modifier",
2876 {
2877 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2878 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2879 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2880 }
2881 ),
2882 },
2883 {
2884 Modifier::AllocatorSimpleModifier,
2885 descriptor::Modifier(
2886 "allocator-simple-modifier",
2887 {
2888 {Version(50), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2889 {Version(51), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2890 {Version(52), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2891 {Version(60), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2892 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_allocate}}},
2893 }
2894 ),
2895 },
2896 {
2897 Modifier::AlwaysModifier,
2898 descriptor::Modifier(
2899 "always-modifier",
2900 {
2901 {Version(60), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2902 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2903 }
2904 ),
2905 },
2906 {
2907 Modifier::AttachModifier,
2908 descriptor::Modifier(
2909 "attach-modifier",
2910 {
2911 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2912 }
2913 ),
2914 },
2915 {
2916 Modifier::AutomapModifier,
2917 descriptor::Modifier(
2918 "automap-modifier",
2919 {
2920 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_enter}}},
2921 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_enter}}},
2922 }
2923 ),
2924 },
2925 {
2926 Modifier::ChunkModifier,
2927 descriptor::Modifier(
2928 "chunk-modifier",
2929 {
2930 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2931 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2932 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2933 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2934 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2935 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
2936 }
2937 ),
2938 },
2939 {
2940 Modifier::CloseModifier,
2941 descriptor::Modifier(
2942 "close-modifier",
2943 {
2944 {Version(60), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2945 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2946 }
2947 ),
2948 },
2949 {
2950 Modifier::ContextSelector,
2951 descriptor::Modifier(
2952 "context-selector",
2953 {
2954 {Version(50), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_when}}},
2955 {Version(51), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_when}}},
2956 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_when}}},
2957 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_when}}},
2958 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_when}}},
2959 }
2960 ),
2961 },
2962 {
2963 Modifier::DefaultModifier,
2964 descriptor::Modifier(
2965 "default-modifier",
2966 {
2967 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
2968 }
2969 ),
2970 },
2971 {
2972 Modifier::DeleteModifier,
2973 descriptor::Modifier(
2974 "delete-modifier",
2975 {
2976 {Version(60), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2977 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
2978 }
2979 ),
2980 },
2981 {
2982 Modifier::DependenceType,
2983 descriptor::Modifier(
2984 "dependence-type",
2985 {
2986 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend}}},
2987 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend}}},
2988 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend}}},
2989 {Version(52), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_doacross}}},
2990 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_doacross}}},
2991 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_doacross}}},
2992 }
2993 ),
2994 },
2995 {
2996 Modifier::DepinfoModifier,
2997 descriptor::Modifier(
2998 "depinfo-modifier",
2999 {
3000 {Version(60), {{{Property::Compatible, Property::Complex, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3001 {Version(61), {{{Property::Compatible, Property::Complex, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3002 }
3003 ),
3004 },
3005 {
3006 Modifier::DepobjModifier,
3007 descriptor::Modifier(
3008 "depobj-modifier",
3009 {
3010 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend}}},
3011 }
3012 ),
3013 },
3014 {
3015 Modifier::DeviceModifier,
3016 descriptor::Modifier(
3017 "device-modifier",
3018 {
3019 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_device}}},
3020 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_device}}},
3021 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_device}}},
3022 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_device}}},
3023 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_device}}},
3024 }
3025 ),
3026 },
3027 {
3028 Modifier::DimsModifier,
3029 descriptor::Modifier(
3030 "dims-modifier",
3031 {
3032 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_num_teams, Clause::OMPC_num_threads, Clause::OMPC_thread_limit}}},
3033 }
3034 ),
3035 },
3036 {
3037 Modifier::DirectiveNameModifier,
3038 descriptor::Modifier(
3039 "directive-name-modifier",
3040 {
3041 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_if}}},
3042 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_if}}},
3043 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_if}}},
3044 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_if}}},
3045 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_adjust_args, Clause::OMPC_affinity, Clause::OMPC_align, Clause::OMPC_aligned, Clause::OMPC_allocate, Clause::OMPC_allocator, Clause::OMPC_append_args, Clause::OMPC_apply, Clause::OMPC_at, Clause::OMPC_atomic_default_mem_order, Clause::OMPC_bind, Clause::OMPC_cancellation_construct_type, Clause::OMPC_capture, Clause::OMPC_collapse, Clause::OMPC_collector, Clause::OMPC_combiner, Clause::OMPC_compare, Clause::OMPC_contains, Clause::OMPC_copyin, Clause::OMPC_copyprivate, Clause::OMPC_counts, Clause::OMPC_default, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_destroy, Clause::OMPC_detach, Clause::OMPC_device, Clause::OMPC_device_safesync, Clause::OMPC_device_type, Clause::OMPC_dist_schedule, Clause::OMPC_doacross, Clause::OMPC_dynamic_allocators, Clause::OMPC_enter, Clause::OMPC_exclusive, Clause::OMPC_fail, Clause::OMPC_filter, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_from, Clause::OMPC_full, Clause::OMPC_grainsize, Clause::OMPC_graph_id, Clause::OMPC_graph_reset, Clause::OMPC_has_device_addr, Clause::OMPC_hint, Clause::OMPC_holds, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_inbranch, Clause::OMPC_inclusive, Clause::OMPC_indirect, Clause::OMPC_induction, Clause::OMPC_inductor, Clause::OMPC_init, Clause::OMPC_init_complete, Clause::OMPC_initializer, Clause::OMPC_interop, Clause::OMPC_is_device_ptr, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_link, Clause::OMPC_local, Clause::OMPC_looprange, Clause::OMPC_map, Clause::OMPC_match, Clause::OMPC_memscope, Clause::OMPC_mergeable, Clause::OMPC_message, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_constructs, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism, Clause::OMPC_nocontext, Clause::OMPC_nogroup, Clause::OMPC_nontemporal, Clause::OMPC_notinbranch, Clause::OMPC_novariants, Clause::OMPC_nowait, Clause::OMPC_num_tasks, Clause::OMPC_num_teams, Clause::OMPC_num_threads, Clause::OMPC_ompx_bare, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_otherwise, Clause::OMPC_partial, Clause::OMPC_permutation, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_read, Clause::OMPC_reduction, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_replayable, Clause::OMPC_reverse_offload, Clause::OMPC_safelen, Clause::OMPC_safesync, Clause::OMPC_schedule, Clause::OMPC_self_maps, Clause::OMPC_seq_cst, Clause::OMPC_severity, Clause::OMPC_shared, Clause::OMPC_simd, Clause::OMPC_simdlen, Clause::OMPC_sizes, Clause::OMPC_task_reduction, Clause::OMPC_thread_limit, Clause::OMPC_threads, Clause::OMPC_threadset, Clause::OMPC_to, Clause::OMPC_transparent, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory, Clause::OMPC_uniform, Clause::OMPC_untied, Clause::OMPC_update, Clause::OMPC_update_depend_objects, Clause::OMPC_use, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr, Clause::OMPC_uses_allocators, Clause::OMPC_weak, Clause::OMPC_when, Clause::OMPC_write}}},
3046 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_absent, Clause::OMPC_acq_rel, Clause::OMPC_acquire, Clause::OMPC_adjust_args, Clause::OMPC_affinity, Clause::OMPC_align, Clause::OMPC_aligned, Clause::OMPC_allocate, Clause::OMPC_allocator, Clause::OMPC_append_args, Clause::OMPC_apply, Clause::OMPC_at, Clause::OMPC_atomic_default_mem_order, Clause::OMPC_bind, Clause::OMPC_cancellation_construct_type, Clause::OMPC_capture, Clause::OMPC_collapse, Clause::OMPC_collector, Clause::OMPC_combiner, Clause::OMPC_compare, Clause::OMPC_contains, Clause::OMPC_copyin, Clause::OMPC_copyprivate, Clause::OMPC_counts, Clause::OMPC_default, Clause::OMPC_defaultmap, Clause::OMPC_depend, Clause::OMPC_depth, Clause::OMPC_destroy, Clause::OMPC_detach, Clause::OMPC_device, Clause::OMPC_device_safesync, Clause::OMPC_device_type, Clause::OMPC_dist_schedule, Clause::OMPC_doacross, Clause::OMPC_dyn_groupprivate, Clause::OMPC_dynamic_allocators, Clause::OMPC_enter, Clause::OMPC_exclusive, Clause::OMPC_fail, Clause::OMPC_filter, Clause::OMPC_final, Clause::OMPC_firstprivate, Clause::OMPC_from, Clause::OMPC_full, Clause::OMPC_grainsize, Clause::OMPC_graph_id, Clause::OMPC_graph_reset, Clause::OMPC_has_device_addr, Clause::OMPC_hint, Clause::OMPC_holds, Clause::OMPC_if, Clause::OMPC_in_reduction, Clause::OMPC_inbranch, Clause::OMPC_inclusive, Clause::OMPC_indirect, Clause::OMPC_induction, Clause::OMPC_inductor, Clause::OMPC_init, Clause::OMPC_init_complete, Clause::OMPC_initializer, Clause::OMPC_interop, Clause::OMPC_is_device_ptr, Clause::OMPC_lastprivate, Clause::OMPC_linear, Clause::OMPC_link, Clause::OMPC_local, Clause::OMPC_looprange, Clause::OMPC_map, Clause::OMPC_match, Clause::OMPC_memscope, Clause::OMPC_mergeable, Clause::OMPC_message, Clause::OMPC_no_openmp, Clause::OMPC_no_openmp_constructs, Clause::OMPC_no_openmp_routines, Clause::OMPC_no_parallelism, Clause::OMPC_nocontext, Clause::OMPC_nogroup, Clause::OMPC_nontemporal, Clause::OMPC_notinbranch, Clause::OMPC_novariants, Clause::OMPC_nowait, Clause::OMPC_num_tasks, Clause::OMPC_num_teams, Clause::OMPC_num_threads, Clause::OMPC_ompx_bare, Clause::OMPC_order, Clause::OMPC_ordered, Clause::OMPC_otherwise, Clause::OMPC_partial, Clause::OMPC_permutation, Clause::OMPC_priority, Clause::OMPC_private, Clause::OMPC_proc_bind, Clause::OMPC_read, Clause::OMPC_reduction, Clause::OMPC_reduction_kind, Clause::OMPC_relaxed, Clause::OMPC_release, Clause::OMPC_replayable, Clause::OMPC_reverse_offload, Clause::OMPC_safelen, Clause::OMPC_safesync, Clause::OMPC_schedule, Clause::OMPC_self_maps, Clause::OMPC_seq_cst, Clause::OMPC_severity, Clause::OMPC_shared, Clause::OMPC_shift, Clause::OMPC_simd, Clause::OMPC_simdlen, Clause::OMPC_sizes, Clause::OMPC_task_reduction, Clause::OMPC_thread_limit, Clause::OMPC_threads, Clause::OMPC_threadset, Clause::OMPC_to, Clause::OMPC_transparent, Clause::OMPC_unified_address, Clause::OMPC_unified_shared_memory, Clause::OMPC_uniform, Clause::OMPC_untied, Clause::OMPC_update, Clause::OMPC_update_depend_objects, Clause::OMPC_use, Clause::OMPC_use_device_addr, Clause::OMPC_use_device_ptr, Clause::OMPC_uses_allocators, Clause::OMPC_weak, Clause::OMPC_when, Clause::OMPC_write}}},
3047 }
3048 ),
3049 },
3050 {
3051 Modifier::Expectation,
3052 descriptor::Modifier(
3053 "expectation",
3054 {
3055 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_to}}},
3056 }
3057 ),
3058 },
3059 {
3060 Modifier::Fallback,
3061 descriptor::Modifier(
3062 "fallback",
3063 {
3064 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_use_device_ptr}}},
3065 }
3066 ),
3067 },
3068 {
3069 Modifier::FallbackModifier,
3070 descriptor::Modifier(
3071 "fallback-modifier",
3072 {
3073 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_dyn_groupprivate}}},
3074 }
3075 ),
3076 },
3077 {
3078 Modifier::InductionIdentifier,
3079 descriptor::Modifier(
3080 "induction-identifier",
3081 {
3082 {Version(60), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_induction}}},
3083 {Version(61), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_induction}}},
3084 }
3085 ),
3086 },
3087 {
3088 Modifier::InductionModifier,
3089 descriptor::Modifier(
3090 "induction-modifier",
3091 {
3092 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_induction}}},
3093 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_induction}}},
3094 }
3095 ),
3096 },
3097 {
3098 Modifier::InscanModifier,
3099 descriptor::Modifier(
3100 "inscan-modifier",
3101 {
3102 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3103 }
3104 ),
3105 },
3106 {
3107 Modifier::InteropType,
3108 descriptor::Modifier(
3109 "interop-type",
3110 {
3111 {Version(51), {{{Property::Compatible, Property::Free, Property::Repeatable, Property::Required}}, {Clause::OMPC_init}}},
3112 {Version(52), {{{Property::Compatible, Property::Free, Property::Repeatable, Property::Required}}, {Clause::OMPC_init}}},
3113 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Repeatable}}, {Clause::OMPC_init}}},
3114 }
3115 ),
3116 },
3117 {
3118 Modifier::Iterator,
3119 descriptor::Modifier(
3120 "iterator",
3121 {
3122 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_affinity, Clause::OMPC_depend}}},
3123 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3124 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3125 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3126 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_affinity, Clause::OMPC_depend, Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3127 }
3128 ),
3129 },
3130 {
3131 Modifier::LastprivateModifier,
3132 descriptor::Modifier(
3133 "lastprivate-modifier",
3134 {
3135 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_lastprivate}}},
3136 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_lastprivate}}},
3137 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_lastprivate}}},
3138 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_lastprivate}}},
3139 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_lastprivate}}},
3140 }
3141 ),
3142 },
3143 {
3144 Modifier::LinearModifier,
3145 descriptor::Modifier(
3146 "linear-modifier",
3147 {
3148 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3149 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3150 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3151 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3152 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3153 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3154 }
3155 ),
3156 },
3157 {
3158 Modifier::LinearStep,
3159 descriptor::Modifier(
3160 "linear-step",
3161 {
3162 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3163 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3164 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3165 }
3166 ),
3167 },
3168 {
3169 Modifier::LocModifier,
3170 descriptor::Modifier(
3171 "loc-modifier",
3172 {
3173 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend}}},
3174 }
3175 ),
3176 },
3177 {
3178 Modifier::LoopModifier,
3179 descriptor::Modifier(
3180 "loop-modifier",
3181 {
3182 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_apply}}},
3183 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_apply}}},
3184 }
3185 ),
3186 },
3187 {
3188 Modifier::LowerBound,
3189 descriptor::Modifier(
3190 "lower-bound",
3191 {
3192 {Version(50), {{{Property::Compatible, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_num_teams}}},
3193 {Version(51), {{{Property::Compatible, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_num_teams}}},
3194 {Version(52), {{{Property::Compatible, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_num_teams}}},
3195 {Version(60), {{{Property::Compatible, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_num_teams}}},
3196 {Version(61), {{{Property::Compatible, Property::Optional, Property::Positive, Property::Ultimate, Property::Unique}}, {Clause::OMPC_num_teams}}},
3197 }
3198 ),
3199 },
3200 {
3201 Modifier::MapType,
3202 descriptor::Modifier(
3203 "map-type",
3204 {
3205 {Version(45), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_map}}},
3206 {Version(50), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_map}}},
3207 {Version(51), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_map}}},
3208 {Version(52), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_map}}},
3209 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3210 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3211 }
3212 ),
3213 },
3214 {
3215 Modifier::MapTypeModifier,
3216 descriptor::Modifier(
3217 "map-type-modifier",
3218 {
3219 {Version(45), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Repeatable}}, {Clause::OMPC_map}}},
3220 {Version(50), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Repeatable}}, {Clause::OMPC_map}}},
3221 {Version(51), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Repeatable}}, {Clause::OMPC_map}}},
3222 {Version(52), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Repeatable}}, {Clause::OMPC_map}}},
3223 }
3224 ),
3225 },
3226 {
3227 Modifier::Mapper,
3228 descriptor::Modifier(
3229 "mapper",
3230 {
3231 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3232 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3233 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3234 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3235 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3236 }
3237 ),
3238 },
3239 {
3240 Modifier::MemSpace,
3241 descriptor::Modifier(
3242 "mem-space",
3243 {
3244 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3245 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3246 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3247 }
3248 ),
3249 },
3250 {
3251 Modifier::MotionModifier,
3252 descriptor::Modifier(
3253 "motion-modifier",
3254 {
3255 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_to}}},
3256 }
3257 ),
3258 },
3259 {
3260 Modifier::NeedDeviceAddr,
3261 descriptor::Modifier(
3262 "need-device-addr",
3263 {
3264 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_adjust_args}}},
3265 }
3266 ),
3267 },
3268 {
3269 Modifier::NeedDevicePtr,
3270 descriptor::Modifier(
3271 "need-device-ptr",
3272 {
3273 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_adjust_args}}},
3274 }
3275 ),
3276 },
3277 {
3278 Modifier::NoncommutativeModifier,
3279 descriptor::Modifier(
3280 "noncommutative-modifier",
3281 {
3282 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3283 }
3284 ),
3285 },
3286 {
3287 Modifier::Nothing,
3288 descriptor::Modifier(
3289 "nothing",
3290 {
3291 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_adjust_args}}},
3292 }
3293 ),
3294 },
3295 {
3296 Modifier::OmpxHoldModifier,
3297 descriptor::Modifier(
3298 "ompx-hold-modifier",
3299 {
3300 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3301 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3302 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3303 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3304 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3305 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3306 }
3307 ),
3308 },
3309 {
3310 Modifier::OptionalModifier,
3311 descriptor::Modifier(
3312 "optional-modifier",
3313 {
3314 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3315 }
3316 ),
3317 },
3318 {
3319 Modifier::OrderModifier,
3320 descriptor::Modifier(
3321 "order-modifier",
3322 {
3323 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_order}}},
3324 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_order}}},
3325 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_order}}},
3326 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_order}}},
3327 }
3328 ),
3329 },
3330 {
3331 Modifier::OrderingModifier,
3332 descriptor::Modifier(
3333 "ordering-modifier",
3334 {
3335 {Version(45), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3336 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3337 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3338 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3339 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3340 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_schedule}}},
3341 }
3342 ),
3343 },
3344 {
3345 Modifier::OriginalSharingModifier,
3346 descriptor::Modifier(
3347 "original-sharing-modifier",
3348 {
3349 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3350 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3351 }
3352 ),
3353 },
3354 {
3355 Modifier::PerThreadModifier,
3356 descriptor::Modifier(
3357 "per-thread-modifier",
3358 {
3359 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3360 }
3361 ),
3362 },
3363 {
3364 Modifier::PreferType,
3365 descriptor::Modifier(
3366 "prefer-type",
3367 {
3368 {Version(60), {{{Property::Compatible, Property::Complex, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3369 {Version(61), {{{Property::Compatible, Property::Complex, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3370 }
3371 ),
3372 },
3373 {
3374 Modifier::Prescriptiveness,
3375 descriptor::Modifier(
3376 "prescriptiveness",
3377 {
3378 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}}},
3379 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}}},
3380 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks, Clause::OMPC_num_threads}}},
3381 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_grainsize, Clause::OMPC_num_tasks}}},
3382 }
3383 ),
3384 },
3385 {
3386 Modifier::PrescriptivenessModifier,
3387 descriptor::Modifier(
3388 "prescriptiveness-modifier",
3389 {
3390 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_num_threads, Clause::OMPC_thread_limit}}},
3391 }
3392 ),
3393 },
3394 {
3395 Modifier::PresentModifier,
3396 descriptor::Modifier(
3397 "present-modifier",
3398 {
3399 {Version(60), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3400 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}},
3401 }
3402 ),
3403 },
3404 {
3405 Modifier::ReductionIdentifier,
3406 descriptor::Modifier(
3407 "reduction-identifier",
3408 {
3409 {Version(45), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_reduction}}},
3410 {Version(50), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_in_reduction, Clause::OMPC_reduction, Clause::OMPC_task_reduction}}},
3411 {Version(51), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_in_reduction, Clause::OMPC_reduction, Clause::OMPC_task_reduction}}},
3412 {Version(52), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_in_reduction, Clause::OMPC_reduction, Clause::OMPC_task_reduction}}},
3413 {Version(60), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_in_reduction, Clause::OMPC_reduction, Clause::OMPC_task_reduction}}},
3414 {Version(61), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_in_reduction, Clause::OMPC_reduction, Clause::OMPC_task_reduction}}},
3415 }
3416 ),
3417 },
3418 {
3419 Modifier::ReductionModifier,
3420 descriptor::Modifier(
3421 "reduction-modifier",
3422 {
3423 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3424 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3425 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3426 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3427 }
3428 ),
3429 },
3430 {
3431 Modifier::RefModifier,
3432 descriptor::Modifier(
3433 "ref-modifier",
3434 {
3435 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3436 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3437 }
3438 ),
3439 },
3440 {
3441 Modifier::Saved,
3442 descriptor::Modifier(
3443 "saved",
3444 {
3445 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_firstprivate}}},
3446 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_firstprivate}}},
3447 }
3448 ),
3449 },
3450 {
3451 Modifier::ScaledModifier,
3452 descriptor::Modifier(
3453 "scaled-modifier",
3454 {
3455 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_simdlen}}},
3456 }
3457 ),
3458 },
3459 {
3460 Modifier::SelfModifier,
3461 descriptor::Modifier(
3462 "self-modifier",
3463 {
3464 {Version(60), {{{Property::Compatible, Property::Free, Property::MapTypeModifying, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3465 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_map}}},
3466 }
3467 ),
3468 },
3469 {
3470 Modifier::SizesSelector,
3471 descriptor::Modifier(
3472 "sizes-selector",
3473 {
3474 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_sizes}}},
3475 }
3476 ),
3477 },
3478 {
3479 Modifier::StepComplexModifier,
3480 descriptor::Modifier(
3481 "step-complex-modifier",
3482 {
3483 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3484 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3485 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_linear}}},
3486 }
3487 ),
3488 },
3489 {
3490 Modifier::StepModifier,
3491 descriptor::Modifier(
3492 "step-modifier",
3493 {
3494 {Version(60), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_induction}}},
3495 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_induction}}},
3496 }
3497 ),
3498 },
3499 {
3500 Modifier::StepSimpleModifier,
3501 descriptor::Modifier(
3502 "step-simple-modifier",
3503 {
3504 {Version(52), {{{Property::Exclusive, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3505 {Version(60), {{{Property::Exclusive, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3506 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::RegionInvariant, Property::Unique}}, {Clause::OMPC_linear}}},
3507 }
3508 ),
3509 },
3510 {
3511 Modifier::TargetType,
3512 descriptor::Modifier(
3513 "target-type",
3514 {
3515 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3516 }
3517 ),
3518 },
3519 {
3520 Modifier::TargetsyncType,
3521 descriptor::Modifier(
3522 "targetsync-type",
3523 {
3524 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_init}}},
3525 }
3526 ),
3527 },
3528 {
3529 Modifier::TaskDependenceType,
3530 descriptor::Modifier(
3531 "task-dependence-type",
3532 {
3533 {Version(45), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_depend}}},
3534 {Version(50), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_depend}}},
3535 {Version(51), {{{Property::Compatible, Property::Optional, Property::Ultimate, Property::Unique}}, {Clause::OMPC_depend}}},
3536 {Version(52), {{{Property::Compatible, Property::Required, Property::Ultimate, Property::Unique}}, {Clause::OMPC_depend}}},
3537 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend, Clause::OMPC_update_depend_objects}}},
3538 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_depend, Clause::OMPC_update_depend_objects}}},
3539 }
3540 ),
3541 },
3542 {
3543 Modifier::TaskModifier,
3544 descriptor::Modifier(
3545 "task-modifier",
3546 {
3547 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_reduction}}},
3548 }
3549 ),
3550 },
3551 {
3552 Modifier::TraitsArray,
3553 descriptor::Modifier(
3554 "traits-array",
3555 {
3556 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3557 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3558 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_uses_allocators}}},
3559 }
3560 ),
3561 },
3562 {
3563 Modifier::VariableCategory,
3564 descriptor::Modifier(
3565 "variable-category",
3566 {
3567 {Version(45), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Clause::OMPC_defaultmap}}},
3568 {Version(50), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3569 {Version(51), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3570 {Version(52), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3571 {Version(60), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3572 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3573 }
3574 ),
3575 },
3576#endif // GEN_OMP_MODIFIER_DESCRIPTORS
3577#ifdef GEN_OMP_MODIFIER_GROUP_DESCRIPTORS
3578 {
3579 ModifierSet::AdjustOp,
3580 descriptor::ModifierSet(
3581 "adjust-op",
3582 {
3583 {Version(61), {{{Property::Exclusive, Property::Free, Property::Required, Property::Unique}}, {Modifier::NeedDeviceAddr, Modifier::NeedDevicePtr, Modifier::Nothing}, {Clause::OMPC_adjust_args}}},
3584 }
3585 ),
3586 },
3587 {
3588 ModifierSet::DependListType,
3589 descriptor::ModifierSet(
3590 "depend-list-type",
3591 {
3592 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Modifier::DepobjModifier, Modifier::LocModifier}, {Clause::OMPC_depend}}},
3593 }
3594 ),
3595 },
3596 {
3597 ModifierSet::InteropType,
3598 descriptor::ModifierSet(
3599 "interop-type",
3600 {
3601 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Modifier::TargetType, Modifier::TargetsyncType}, {Clause::OMPC_init}}},
3602 }
3603 ),
3604 },
3605 {
3606 ModifierSet::MapTypeModifying,
3607 descriptor::ModifierSet(
3608 "map-type-modifying",
3609 {
3610 {Version(61), {{{Property::Compatible, Property::Free, Property::Optional, Property::Unique}}, {Modifier::AlwaysModifier, Modifier::CloseModifier, Modifier::DeleteModifier, Modifier::PresentModifier, Modifier::SelfModifier}, {Clause::OMPC_map}}},
3611 }
3612 ),
3613 },
3614 {
3615 ModifierSet::ReductionType,
3616 descriptor::ModifierSet(
3617 "reduction-type",
3618 {
3619 {Version(61), {{{Property::Exclusive, Property::Free, Property::Optional, Property::Unique}}, {Modifier::DefaultModifier, Modifier::InscanModifier, Modifier::NoncommutativeModifier, Modifier::TaskModifier}, {Clause::OMPC_reduction}}},
3620 }
3621 ),
3622 },
3623 {
3624 ModifierSet::VariableSelector,
3625 descriptor::ModifierSet(
3626 "variable-selector",
3627 {
3628 {Version(61), {{{Property::Compatible, Property::Free, Property::Required, Property::Unique}}, {Modifier::OptionalModifier, Modifier::VariableCategory}, {Clause::OMPC_default, Clause::OMPC_defaultmap}}},
3629 }
3630 ),
3631 },
3632#endif // GEN_OMP_MODIFIER_GROUP_DESCRIPTORS
3633#ifdef GEN_OMP_MODIFIER_SET_DESCRIPTORS
3634 {
3635 ModifierSet::DependModifierSet1,
3636 descriptor::ModifierSet(
3637 "depend_modifier_set_1",
3638 {
3639 {Version(45), {{{Property::Exclusive, Property::Required}}, {Modifier::DependenceType, Modifier::TaskDependenceType}, {Clause::OMPC_depend}}},
3640 {Version(50), {{{Property::Exclusive, Property::Required}}, {Modifier::DependenceType, Modifier::TaskDependenceType}, {Clause::OMPC_depend}}},
3641 {Version(51), {{{Property::Exclusive, Property::Required}}, {Modifier::DependenceType, Modifier::TaskDependenceType}, {Clause::OMPC_depend}}},
3642 {Version(61), {{{Property::Exclusive}}, {Modifier::DepobjModifier, Modifier::TaskDependenceType}, {Clause::OMPC_depend}}},
3643 }
3644 ),
3645 },
3646 {
3647 ModifierSet::NumTeamsModifierSet1,
3648 descriptor::ModifierSet(
3649 "num_teams_modifier_set_1",
3650 {
3651 {Version(61), {{{Property::Exclusive}}, {Modifier::DimsModifier, Modifier::LowerBound}, {Clause::OMPC_num_teams}}},
3652 }
3653 ),
3654 },
3655 {
3656 ModifierSet::ReductionModifierSet1,
3657 descriptor::ModifierSet(
3658 "reduction_modifier_set_1",
3659 {
3660 {Version(61), {{{Property::Exclusive}}, {Modifier::InscanModifier, Modifier::NoncommutativeModifier, Modifier::PerThreadModifier}, {Clause::OMPC_reduction}}},
3661 }
3662 ),
3663 },
3664#endif // GEN_OMP_MODIFIER_SET_DESCRIPTORS
3665 // clang-format on