]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def
Update compiler-rt to trunk r230183. This has some of our patches
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / clang / include / clang / Basic / OpenMPKinds.def
1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 /// \file
10 /// \brief This file defines the list of supported OpenMP directives and
11 /// clauses.
12 ///
13 //===----------------------------------------------------------------------===//
14
15 #ifndef OPENMP_DIRECTIVE
16 #  define OPENMP_DIRECTIVE(Name)
17 #endif
18 #ifndef OPENMP_DIRECTIVE_EXT
19 #define OPENMP_DIRECTIVE_EXT(Name, Str)
20 #endif
21 #ifndef OPENMP_CLAUSE
22 #  define OPENMP_CLAUSE(Name, Class)
23 #endif
24 #ifndef OPENMP_PARALLEL_CLAUSE
25 #  define OPENMP_PARALLEL_CLAUSE(Name)
26 #endif
27 #ifndef OPENMP_SIMD_CLAUSE
28 #  define OPENMP_SIMD_CLAUSE(Name)
29 #endif
30 #ifndef OPENMP_FOR_CLAUSE
31 #  define OPENMP_FOR_CLAUSE(Name)
32 #endif
33 #ifndef OPENMP_FOR_SIMD_CLAUSE
34 #  define OPENMP_FOR_SIMD_CLAUSE(Name)
35 #endif
36 #ifndef OPENMP_SECTIONS_CLAUSE
37 #  define OPENMP_SECTIONS_CLAUSE(Name)
38 #endif
39 #ifndef OPENMP_SINGLE_CLAUSE
40 #  define OPENMP_SINGLE_CLAUSE(Name)
41 #endif
42 #ifndef OPENMP_PARALLEL_FOR_CLAUSE
43 #  define OPENMP_PARALLEL_FOR_CLAUSE(Name)
44 #endif
45 #ifndef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
46 #  define OPENMP_PARALLEL_FOR_SIMD_CLAUSE(Name)
47 #endif
48 #ifndef OPENMP_PARALLEL_SECTIONS_CLAUSE
49 #  define OPENMP_PARALLEL_SECTIONS_CLAUSE(Name)
50 #endif
51 #ifndef OPENMP_TASK_CLAUSE
52 #  define OPENMP_TASK_CLAUSE(Name)
53 #endif
54 #ifndef OPENMP_ATOMIC_CLAUSE
55 #  define OPENMP_ATOMIC_CLAUSE(Name)
56 #endif
57 #ifndef OPENMP_TARGET_CLAUSE
58 #  define OPENMP_TARGET_CLAUSE(Name)
59 #endif
60 #ifndef OPENMP_TEAMS_CLAUSE
61 #  define OPENMP_TEAMS_CLAUSE(Name)
62 #endif
63 #ifndef OPENMP_DEFAULT_KIND
64 #  define OPENMP_DEFAULT_KIND(Name)
65 #endif
66 #ifndef OPENMP_PROC_BIND_KIND
67 #  define OPENMP_PROC_BIND_KIND(Name)
68 #endif
69 #ifndef OPENMP_SCHEDULE_KIND
70 #define OPENMP_SCHEDULE_KIND(Name)
71 #endif
72
73 // OpenMP directives.
74 OPENMP_DIRECTIVE(threadprivate)
75 OPENMP_DIRECTIVE(parallel)
76 OPENMP_DIRECTIVE(task)
77 OPENMP_DIRECTIVE(simd)
78 OPENMP_DIRECTIVE(for)
79 OPENMP_DIRECTIVE(sections)
80 OPENMP_DIRECTIVE(section)
81 OPENMP_DIRECTIVE(single)
82 OPENMP_DIRECTIVE(master)
83 OPENMP_DIRECTIVE(critical)
84 OPENMP_DIRECTIVE(taskyield)
85 OPENMP_DIRECTIVE(barrier)
86 OPENMP_DIRECTIVE(taskwait)
87 OPENMP_DIRECTIVE(flush)
88 OPENMP_DIRECTIVE(ordered)
89 OPENMP_DIRECTIVE(atomic)
90 OPENMP_DIRECTIVE(target)
91 OPENMP_DIRECTIVE(teams)
92 OPENMP_DIRECTIVE_EXT(parallel_for, "parallel for")
93 OPENMP_DIRECTIVE_EXT(parallel_for_simd, "parallel for simd")
94 OPENMP_DIRECTIVE_EXT(parallel_sections, "parallel sections")
95 OPENMP_DIRECTIVE_EXT(for_simd, "for simd")
96
97 // OpenMP clauses.
98 OPENMP_CLAUSE(if, OMPIfClause)
99 OPENMP_CLAUSE(final, OMPFinalClause)
100 OPENMP_CLAUSE(num_threads, OMPNumThreadsClause)
101 OPENMP_CLAUSE(safelen, OMPSafelenClause)
102 OPENMP_CLAUSE(collapse, OMPCollapseClause)
103 OPENMP_CLAUSE(default, OMPDefaultClause)
104 OPENMP_CLAUSE(private, OMPPrivateClause)
105 OPENMP_CLAUSE(firstprivate, OMPFirstprivateClause)
106 OPENMP_CLAUSE(lastprivate, OMPLastprivateClause)
107 OPENMP_CLAUSE(shared,  OMPSharedClause)
108 OPENMP_CLAUSE(reduction,  OMPReductionClause)
109 OPENMP_CLAUSE(linear,  OMPLinearClause)
110 OPENMP_CLAUSE(aligned, OMPAlignedClause)
111 OPENMP_CLAUSE(copyin,  OMPCopyinClause)
112 OPENMP_CLAUSE(copyprivate,  OMPCopyprivateClause)
113 OPENMP_CLAUSE(proc_bind, OMPProcBindClause)
114 OPENMP_CLAUSE(schedule, OMPScheduleClause)
115 OPENMP_CLAUSE(ordered, OMPOrderedClause)
116 OPENMP_CLAUSE(nowait, OMPNowaitClause)
117 OPENMP_CLAUSE(untied, OMPUntiedClause)
118 OPENMP_CLAUSE(mergeable, OMPMergeableClause)
119 OPENMP_CLAUSE(flush, OMPFlushClause)
120 OPENMP_CLAUSE(read, OMPReadClause)
121 OPENMP_CLAUSE(write, OMPWriteClause)
122 OPENMP_CLAUSE(update, OMPUpdateClause)
123 OPENMP_CLAUSE(capture, OMPCaptureClause)
124 OPENMP_CLAUSE(seq_cst, OMPSeqCstClause)
125
126 // Clauses allowed for OpenMP directive 'parallel'.
127 OPENMP_PARALLEL_CLAUSE(if)
128 OPENMP_PARALLEL_CLAUSE(num_threads)
129 OPENMP_PARALLEL_CLAUSE(default)
130 OPENMP_PARALLEL_CLAUSE(proc_bind)
131 OPENMP_PARALLEL_CLAUSE(private)
132 OPENMP_PARALLEL_CLAUSE(firstprivate)
133 OPENMP_PARALLEL_CLAUSE(shared)
134 OPENMP_PARALLEL_CLAUSE(reduction)
135 OPENMP_PARALLEL_CLAUSE(copyin)
136
137 // Clauses allowed for directive 'omp simd'.
138 OPENMP_SIMD_CLAUSE(private)
139 OPENMP_SIMD_CLAUSE(lastprivate)
140 OPENMP_SIMD_CLAUSE(linear)
141 OPENMP_SIMD_CLAUSE(aligned)
142 OPENMP_SIMD_CLAUSE(safelen)
143 OPENMP_SIMD_CLAUSE(collapse)
144 OPENMP_SIMD_CLAUSE(reduction)
145
146 // Clauses allowed for directive 'omp for'.
147 OPENMP_FOR_CLAUSE(private)
148 OPENMP_FOR_CLAUSE(lastprivate)
149 OPENMP_FOR_CLAUSE(firstprivate)
150 OPENMP_FOR_CLAUSE(reduction)
151 OPENMP_FOR_CLAUSE(collapse)
152 OPENMP_FOR_CLAUSE(schedule)
153 OPENMP_FOR_CLAUSE(ordered)
154 OPENMP_FOR_CLAUSE(nowait)
155
156 // Clauses allowed for directive 'omp for simd'.
157 OPENMP_FOR_SIMD_CLAUSE(private)
158 OPENMP_FOR_SIMD_CLAUSE(firstprivate)
159 OPENMP_FOR_SIMD_CLAUSE(lastprivate)
160 OPENMP_FOR_SIMD_CLAUSE(reduction)
161 OPENMP_FOR_SIMD_CLAUSE(schedule)
162 OPENMP_FOR_SIMD_CLAUSE(collapse)
163 OPENMP_FOR_SIMD_CLAUSE(nowait)
164 OPENMP_FOR_SIMD_CLAUSE(safelen)
165 OPENMP_FOR_SIMD_CLAUSE(linear)
166 OPENMP_FOR_SIMD_CLAUSE(aligned)
167
168 // Clauses allowed for OpenMP directive 'omp sections'.
169 OPENMP_SECTIONS_CLAUSE(private)
170 OPENMP_SECTIONS_CLAUSE(lastprivate)
171 OPENMP_SECTIONS_CLAUSE(firstprivate)
172 OPENMP_SECTIONS_CLAUSE(reduction)
173 OPENMP_SECTIONS_CLAUSE(nowait)
174
175 // Clauses allowed for directive 'omp single'.
176 OPENMP_SINGLE_CLAUSE(private)
177 OPENMP_SINGLE_CLAUSE(firstprivate)
178 OPENMP_SINGLE_CLAUSE(copyprivate)
179 OPENMP_SINGLE_CLAUSE(nowait)
180
181 // Static attributes for 'default' clause.
182 OPENMP_DEFAULT_KIND(none)
183 OPENMP_DEFAULT_KIND(shared)
184
185 // Static attributes for 'proc_bind' clause.
186 OPENMP_PROC_BIND_KIND(master)
187 OPENMP_PROC_BIND_KIND(close)
188 OPENMP_PROC_BIND_KIND(spread)
189
190 // Static attributes for 'schedule' clause.
191 OPENMP_SCHEDULE_KIND(static)
192 OPENMP_SCHEDULE_KIND(dynamic)
193 OPENMP_SCHEDULE_KIND(guided)
194 OPENMP_SCHEDULE_KIND(auto)
195 OPENMP_SCHEDULE_KIND(runtime)
196
197 // Clauses allowed for OpenMP directive 'parallel for'.
198 OPENMP_PARALLEL_FOR_CLAUSE(if)
199 OPENMP_PARALLEL_FOR_CLAUSE(num_threads)
200 OPENMP_PARALLEL_FOR_CLAUSE(default)
201 OPENMP_PARALLEL_FOR_CLAUSE(proc_bind)
202 OPENMP_PARALLEL_FOR_CLAUSE(private)
203 OPENMP_PARALLEL_FOR_CLAUSE(firstprivate)
204 OPENMP_PARALLEL_FOR_CLAUSE(shared)
205 OPENMP_PARALLEL_FOR_CLAUSE(reduction)
206 OPENMP_PARALLEL_FOR_CLAUSE(copyin)
207 OPENMP_PARALLEL_FOR_CLAUSE(lastprivate)
208 OPENMP_PARALLEL_FOR_CLAUSE(collapse)
209 OPENMP_PARALLEL_FOR_CLAUSE(schedule)
210 OPENMP_PARALLEL_FOR_CLAUSE(ordered)
211
212 // Clauses allowed for OpenMP directive 'parallel for simd'.
213 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(if)
214 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(num_threads)
215 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(default)
216 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(proc_bind)
217 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(private)
218 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(firstprivate)
219 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(shared)
220 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(reduction)
221 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(copyin)
222 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(lastprivate)
223 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(collapse)
224 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(schedule)
225 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(safelen)
226 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(linear)
227 OPENMP_PARALLEL_FOR_SIMD_CLAUSE(aligned)
228
229 // Clauses allowed for OpenMP directive 'parallel sections'.
230 OPENMP_PARALLEL_SECTIONS_CLAUSE(if)
231 OPENMP_PARALLEL_SECTIONS_CLAUSE(num_threads)
232 OPENMP_PARALLEL_SECTIONS_CLAUSE(default)
233 OPENMP_PARALLEL_SECTIONS_CLAUSE(proc_bind)
234 OPENMP_PARALLEL_SECTIONS_CLAUSE(private)
235 OPENMP_PARALLEL_SECTIONS_CLAUSE(firstprivate)
236 OPENMP_PARALLEL_SECTIONS_CLAUSE(shared)
237 OPENMP_PARALLEL_SECTIONS_CLAUSE(reduction)
238 OPENMP_PARALLEL_SECTIONS_CLAUSE(copyin)
239 OPENMP_PARALLEL_SECTIONS_CLAUSE(lastprivate)
240
241 // Clauses allowed for OpenMP directive 'task'.
242 OPENMP_TASK_CLAUSE(if)
243 OPENMP_TASK_CLAUSE(final)
244 OPENMP_TASK_CLAUSE(default)
245 OPENMP_TASK_CLAUSE(private)
246 OPENMP_TASK_CLAUSE(firstprivate)
247 OPENMP_TASK_CLAUSE(shared)
248 OPENMP_TASK_CLAUSE(untied)
249 OPENMP_TASK_CLAUSE(mergeable)
250
251 // Clauses allowed for OpenMP directive 'atomic'.
252 OPENMP_ATOMIC_CLAUSE(read)
253 OPENMP_ATOMIC_CLAUSE(write)
254 OPENMP_ATOMIC_CLAUSE(update)
255 OPENMP_ATOMIC_CLAUSE(capture)
256 OPENMP_ATOMIC_CLAUSE(seq_cst)
257
258 // Clauses allowed for OpenMP directive 'target'.
259 // TODO More clauses for 'target' directive.
260 OPENMP_TARGET_CLAUSE(if)
261
262 // Clauses allowed for OpenMP directive 'teams'.
263 // TODO More clauses for 'teams' directive.
264 OPENMP_TEAMS_CLAUSE(default)
265 OPENMP_TEAMS_CLAUSE(private)
266 OPENMP_TEAMS_CLAUSE(firstprivate)
267 OPENMP_TEAMS_CLAUSE(shared)
268 OPENMP_TEAMS_CLAUSE(reduction)
269
270 #undef OPENMP_SCHEDULE_KIND
271 #undef OPENMP_PROC_BIND_KIND
272 #undef OPENMP_DEFAULT_KIND
273 #undef OPENMP_DIRECTIVE
274 #undef OPENMP_DIRECTIVE_EXT
275 #undef OPENMP_CLAUSE
276 #undef OPENMP_SINGLE_CLAUSE
277 #undef OPENMP_SECTIONS_CLAUSE
278 #undef OPENMP_PARALLEL_CLAUSE
279 #undef OPENMP_PARALLEL_FOR_CLAUSE
280 #undef OPENMP_PARALLEL_FOR_SIMD_CLAUSE
281 #undef OPENMP_PARALLEL_SECTIONS_CLAUSE
282 #undef OPENMP_TASK_CLAUSE
283 #undef OPENMP_ATOMIC_CLAUSE
284 #undef OPENMP_TARGET_CLAUSE
285 #undef OPENMP_TEAMS_CLAUSE
286 #undef OPENMP_SIMD_CLAUSE
287 #undef OPENMP_FOR_CLAUSE
288 #undef OPENMP_FOR_SIMD_CLAUSE
289