]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/include/clang/Basic/OpenMPKinds.def
zfs: merge openzfs/zfs@508fff0e4 (zfs-2.1-release) into stable/13
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / include / clang / Basic / OpenMPKinds.def
1 //===--- OpenMPKinds.def - OpenMP directives and clauses list ---*- 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 /// \file
9 /// This file defines the list of supported OpenMP directives and
10 /// clauses.
11 ///
12 //===----------------------------------------------------------------------===//
13
14 #ifndef OPENMP_SCHEDULE_KIND
15 #define OPENMP_SCHEDULE_KIND(Name)
16 #endif
17 #ifndef OPENMP_SCHEDULE_MODIFIER
18 #define OPENMP_SCHEDULE_MODIFIER(Name)
19 #endif
20 #ifndef OPENMP_DEPEND_KIND
21 #define OPENMP_DEPEND_KIND(Name)
22 #endif
23 #ifndef OPENMP_LINEAR_KIND
24 #define OPENMP_LINEAR_KIND(Name)
25 #endif
26 #ifndef OPENMP_MAP_KIND
27 #define OPENMP_MAP_KIND(Name)
28 #endif
29 #ifndef OPENMP_MAP_MODIFIER_KIND
30 #define OPENMP_MAP_MODIFIER_KIND(Name)
31 #endif
32 #ifndef OPENMP_TO_MODIFIER_KIND
33 #define OPENMP_TO_MODIFIER_KIND(Name)
34 #endif
35 #ifndef OPENMP_FROM_MODIFIER_KIND
36 #define OPENMP_FROM_MODIFIER_KIND(Name)
37 #endif
38 #ifndef OPENMP_DIST_SCHEDULE_KIND
39 #define OPENMP_DIST_SCHEDULE_KIND(Name)
40 #endif
41 #ifndef OPENMP_DEFAULTMAP_KIND
42 #define OPENMP_DEFAULTMAP_KIND(Name)
43 #endif
44 #ifndef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
45 #define OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(Name)
46 #endif
47 #ifndef OPENMP_DEFAULTMAP_MODIFIER
48 #define OPENMP_DEFAULTMAP_MODIFIER(Name)
49 #endif
50 #ifndef OPENMP_DEVICE_TYPE_KIND
51 #define OPENMP_DEVICE_TYPE_KIND(Name)
52 #endif
53 #ifndef OPENMP_LASTPRIVATE_KIND
54 #define OPENMP_LASTPRIVATE_KIND(Name)
55 #endif
56 #ifndef OPENMP_ORDER_KIND
57 #define OPENMP_ORDER_KIND(Name)
58 #endif
59 #ifndef OPENMP_DEVICE_MODIFIER
60 #define OPENMP_DEVICE_MODIFIER(Name)
61 #endif
62 #ifndef OPENMP_REDUCTION_MODIFIER
63 #define OPENMP_REDUCTION_MODIFIER(Name)
64 #endif
65
66 // Static attributes for 'schedule' clause.
67 OPENMP_SCHEDULE_KIND(static)
68 OPENMP_SCHEDULE_KIND(dynamic)
69 OPENMP_SCHEDULE_KIND(guided)
70 OPENMP_SCHEDULE_KIND(auto)
71 OPENMP_SCHEDULE_KIND(runtime)
72
73 // Modifiers for 'schedule' clause.
74 OPENMP_SCHEDULE_MODIFIER(monotonic)
75 OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
76 OPENMP_SCHEDULE_MODIFIER(simd)
77
78 // Modifiers for 'device' clause.
79 OPENMP_DEVICE_MODIFIER(ancestor)
80 OPENMP_DEVICE_MODIFIER(device_num)
81
82 // Static attributes for 'defaultmap' clause.
83 OPENMP_DEFAULTMAP_KIND(scalar)
84 OPENMP_DEFAULTMAP_KIND(aggregate)
85 OPENMP_DEFAULTMAP_KIND(pointer)
86
87 // Modifiers for 'defaultmap' clause.
88 OPENMP_DEFAULTMAP_MODIFIER(alloc)
89 OPENMP_DEFAULTMAP_MODIFIER(to)
90 OPENMP_DEFAULTMAP_MODIFIER(from)
91 OPENMP_DEFAULTMAP_MODIFIER(tofrom)
92 OPENMP_DEFAULTMAP_MODIFIER(firstprivate)
93 OPENMP_DEFAULTMAP_MODIFIER(none)
94 OPENMP_DEFAULTMAP_MODIFIER(default)
95
96 // Static attributes for 'depend' clause.
97 OPENMP_DEPEND_KIND(in)
98 OPENMP_DEPEND_KIND(out)
99 OPENMP_DEPEND_KIND(inout)
100 OPENMP_DEPEND_KIND(mutexinoutset)
101 OPENMP_DEPEND_KIND(depobj)
102 OPENMP_DEPEND_KIND(source)
103 OPENMP_DEPEND_KIND(sink)
104
105 // Modifiers for 'linear' clause.
106 OPENMP_LINEAR_KIND(val)
107 OPENMP_LINEAR_KIND(ref)
108 OPENMP_LINEAR_KIND(uval)
109
110 // Modifiers for 'atomic_default_mem_order' clause.
111 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst)
112 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel)
113 OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed)
114
115 // Map types for 'map' clause.
116 OPENMP_MAP_KIND(alloc)
117 OPENMP_MAP_KIND(to)
118 OPENMP_MAP_KIND(from)
119 OPENMP_MAP_KIND(tofrom)
120 OPENMP_MAP_KIND(delete)
121 OPENMP_MAP_KIND(release)
122
123 // Map-type-modifiers for 'map' clause.
124 OPENMP_MAP_MODIFIER_KIND(always)
125 OPENMP_MAP_MODIFIER_KIND(close)
126 OPENMP_MAP_MODIFIER_KIND(mapper)
127
128 // Modifiers for 'to' clause.
129 OPENMP_TO_MODIFIER_KIND(mapper)
130
131 // Modifiers for 'from' clause.
132 OPENMP_FROM_MODIFIER_KIND(mapper)
133
134 // Static attributes for 'dist_schedule' clause.
135 OPENMP_DIST_SCHEDULE_KIND(static)
136
137 // Device types for 'device_type' clause.
138 OPENMP_DEVICE_TYPE_KIND(host)
139 OPENMP_DEVICE_TYPE_KIND(nohost)
140 OPENMP_DEVICE_TYPE_KIND(any)
141
142 // Type of the 'lastprivate' clause.
143 OPENMP_LASTPRIVATE_KIND(conditional)
144
145 // Type of the 'order' clause.
146 OPENMP_ORDER_KIND(concurrent)
147
148 // Modifiers for 'reduction' clause.
149 OPENMP_REDUCTION_MODIFIER(default)
150 OPENMP_REDUCTION_MODIFIER(inscan)
151 OPENMP_REDUCTION_MODIFIER(task)
152
153 #undef OPENMP_REDUCTION_MODIFIER
154 #undef OPENMP_DEVICE_MODIFIER
155 #undef OPENMP_ORDER_KIND
156 #undef OPENMP_LASTPRIVATE_KIND
157 #undef OPENMP_DEVICE_TYPE_KIND
158 #undef OPENMP_LINEAR_KIND
159 #undef OPENMP_DEPEND_KIND
160 #undef OPENMP_SCHEDULE_MODIFIER
161 #undef OPENMP_SCHEDULE_KIND
162 #undef OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND
163 #undef OPENMP_MAP_KIND
164 #undef OPENMP_MAP_MODIFIER_KIND
165 #undef OPENMP_TO_MODIFIER_KIND
166 #undef OPENMP_FROM_MODIFIER_KIND
167 #undef OPENMP_DIST_SCHEDULE_KIND
168 #undef OPENMP_DEFAULTMAP_KIND
169 #undef OPENMP_DEFAULTMAP_MODIFIER
170