xref: /freebsd-src/contrib/llvm-project/clang/include/clang/Basic/OpenMPKinds.def (revision 2aa3ef285a23d802f0bd6c7281612e16834e9b68)
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.
67OPENMP_SCHEDULE_KIND(static)
68OPENMP_SCHEDULE_KIND(dynamic)
69OPENMP_SCHEDULE_KIND(guided)
70OPENMP_SCHEDULE_KIND(auto)
71OPENMP_SCHEDULE_KIND(runtime)
72
73// Modifiers for 'schedule' clause.
74OPENMP_SCHEDULE_MODIFIER(monotonic)
75OPENMP_SCHEDULE_MODIFIER(nonmonotonic)
76OPENMP_SCHEDULE_MODIFIER(simd)
77
78// Modifiers for 'device' clause.
79OPENMP_DEVICE_MODIFIER(ancestor)
80OPENMP_DEVICE_MODIFIER(device_num)
81
82// Static attributes for 'defaultmap' clause.
83OPENMP_DEFAULTMAP_KIND(scalar)
84OPENMP_DEFAULTMAP_KIND(aggregate)
85OPENMP_DEFAULTMAP_KIND(pointer)
86
87// Modifiers for 'defaultmap' clause.
88OPENMP_DEFAULTMAP_MODIFIER(alloc)
89OPENMP_DEFAULTMAP_MODIFIER(to)
90OPENMP_DEFAULTMAP_MODIFIER(from)
91OPENMP_DEFAULTMAP_MODIFIER(tofrom)
92OPENMP_DEFAULTMAP_MODIFIER(firstprivate)
93OPENMP_DEFAULTMAP_MODIFIER(none)
94OPENMP_DEFAULTMAP_MODIFIER(default)
95
96// Static attributes for 'depend' clause.
97OPENMP_DEPEND_KIND(in)
98OPENMP_DEPEND_KIND(out)
99OPENMP_DEPEND_KIND(inout)
100OPENMP_DEPEND_KIND(mutexinoutset)
101OPENMP_DEPEND_KIND(depobj)
102OPENMP_DEPEND_KIND(source)
103OPENMP_DEPEND_KIND(sink)
104
105// Modifiers for 'linear' clause.
106OPENMP_LINEAR_KIND(val)
107OPENMP_LINEAR_KIND(ref)
108OPENMP_LINEAR_KIND(uval)
109
110// Modifiers for 'atomic_default_mem_order' clause.
111OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(seq_cst)
112OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(acq_rel)
113OPENMP_ATOMIC_DEFAULT_MEM_ORDER_KIND(relaxed)
114
115// Map types for 'map' clause.
116OPENMP_MAP_KIND(alloc)
117OPENMP_MAP_KIND(to)
118OPENMP_MAP_KIND(from)
119OPENMP_MAP_KIND(tofrom)
120OPENMP_MAP_KIND(delete)
121OPENMP_MAP_KIND(release)
122
123// Map-type-modifiers for 'map' clause.
124OPENMP_MAP_MODIFIER_KIND(always)
125OPENMP_MAP_MODIFIER_KIND(close)
126OPENMP_MAP_MODIFIER_KIND(mapper)
127
128// Modifiers for 'to' clause.
129OPENMP_TO_MODIFIER_KIND(mapper)
130
131// Modifiers for 'from' clause.
132OPENMP_FROM_MODIFIER_KIND(mapper)
133
134// Static attributes for 'dist_schedule' clause.
135OPENMP_DIST_SCHEDULE_KIND(static)
136
137// Device types for 'device_type' clause.
138OPENMP_DEVICE_TYPE_KIND(host)
139OPENMP_DEVICE_TYPE_KIND(nohost)
140OPENMP_DEVICE_TYPE_KIND(any)
141
142// Type of the 'lastprivate' clause.
143OPENMP_LASTPRIVATE_KIND(conditional)
144
145// Type of the 'order' clause.
146OPENMP_ORDER_KIND(concurrent)
147
148// Modifiers for 'reduction' clause.
149OPENMP_REDUCTION_MODIFIER(default)
150OPENMP_REDUCTION_MODIFIER(inscan)
151OPENMP_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
171