comparison libgomp/libgomp_g.h @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents a06113de4d67
children 84e7813d76e9
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 /* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. 1 /* Copyright (C) 2005-2017 Free Software Foundation, Inc.
2 Contributed by Richard Henderson <rth@redhat.com>. 2 Contributed by Richard Henderson <rth@redhat.com>.
3 3
4 This file is part of the GNU OpenMP Library (libgomp). 4 This file is part of the GNU Offloading and Multi Processing Library
5 (libgomp).
5 6
6 Libgomp is free software; you can redistribute it and/or modify it 7 Libgomp is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by 8 under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option) 9 the Free Software Foundation; either version 3, or (at your option)
9 any later version. 10 any later version.
27 28
28 #ifndef LIBGOMP_G_H 29 #ifndef LIBGOMP_G_H
29 #define LIBGOMP_G_H 1 30 #define LIBGOMP_G_H 1
30 31
31 #include <stdbool.h> 32 #include <stdbool.h>
33 #include <stddef.h>
32 34
33 /* barrier.c */ 35 /* barrier.c */
34 36
35 extern void GOMP_barrier (void); 37 extern void GOMP_barrier (void);
38 extern bool GOMP_barrier_cancel (void);
36 39
37 /* critical.c */ 40 /* critical.c */
38 41
39 extern void GOMP_critical_start (void); 42 extern void GOMP_critical_start (void);
40 extern void GOMP_critical_end (void); 43 extern void GOMP_critical_end (void);
47 50
48 extern bool GOMP_loop_static_start (long, long, long, long, long *, long *); 51 extern bool GOMP_loop_static_start (long, long, long, long, long *, long *);
49 extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *); 52 extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *);
50 extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *); 53 extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *);
51 extern bool GOMP_loop_runtime_start (long, long, long, long *, long *); 54 extern bool GOMP_loop_runtime_start (long, long, long, long *, long *);
55 extern bool GOMP_loop_nonmonotonic_dynamic_start (long, long, long, long,
56 long *, long *);
57 extern bool GOMP_loop_nonmonotonic_guided_start (long, long, long, long,
58 long *, long *);
52 59
53 extern bool GOMP_loop_ordered_static_start (long, long, long, long, 60 extern bool GOMP_loop_ordered_static_start (long, long, long, long,
54 long *, long *); 61 long *, long *);
55 extern bool GOMP_loop_ordered_dynamic_start (long, long, long, long, 62 extern bool GOMP_loop_ordered_dynamic_start (long, long, long, long,
56 long *, long *); 63 long *, long *);
60 67
61 extern bool GOMP_loop_static_next (long *, long *); 68 extern bool GOMP_loop_static_next (long *, long *);
62 extern bool GOMP_loop_dynamic_next (long *, long *); 69 extern bool GOMP_loop_dynamic_next (long *, long *);
63 extern bool GOMP_loop_guided_next (long *, long *); 70 extern bool GOMP_loop_guided_next (long *, long *);
64 extern bool GOMP_loop_runtime_next (long *, long *); 71 extern bool GOMP_loop_runtime_next (long *, long *);
72 extern bool GOMP_loop_nonmonotonic_dynamic_next (long *, long *);
73 extern bool GOMP_loop_nonmonotonic_guided_next (long *, long *);
65 74
66 extern bool GOMP_loop_ordered_static_next (long *, long *); 75 extern bool GOMP_loop_ordered_static_next (long *, long *);
67 extern bool GOMP_loop_ordered_dynamic_next (long *, long *); 76 extern bool GOMP_loop_ordered_dynamic_next (long *, long *);
68 extern bool GOMP_loop_ordered_guided_next (long *, long *); 77 extern bool GOMP_loop_ordered_guided_next (long *, long *);
69 extern bool GOMP_loop_ordered_runtime_next (long *, long *); 78 extern bool GOMP_loop_ordered_runtime_next (long *, long *);
79
80 extern bool GOMP_loop_doacross_static_start (unsigned, long *, long, long *,
81 long *);
82 extern bool GOMP_loop_doacross_dynamic_start (unsigned, long *, long, long *,
83 long *);
84 extern bool GOMP_loop_doacross_guided_start (unsigned, long *, long, long *,
85 long *);
86 extern bool GOMP_loop_doacross_runtime_start (unsigned, long *, long *,
87 long *);
70 88
71 extern void GOMP_parallel_loop_static_start (void (*)(void *), void *, 89 extern void GOMP_parallel_loop_static_start (void (*)(void *), void *,
72 unsigned, long, long, long, long); 90 unsigned, long, long, long, long);
73 extern void GOMP_parallel_loop_dynamic_start (void (*)(void *), void *, 91 extern void GOMP_parallel_loop_dynamic_start (void (*)(void *), void *,
74 unsigned, long, long, long, long); 92 unsigned, long, long, long, long);
75 extern void GOMP_parallel_loop_guided_start (void (*)(void *), void *, 93 extern void GOMP_parallel_loop_guided_start (void (*)(void *), void *,
76 unsigned, long, long, long, long); 94 unsigned, long, long, long, long);
77 extern void GOMP_parallel_loop_runtime_start (void (*)(void *), void *, 95 extern void GOMP_parallel_loop_runtime_start (void (*)(void *), void *,
78 unsigned, long, long, long); 96 unsigned, long, long, long);
97 extern void GOMP_parallel_loop_static (void (*)(void *), void *,
98 unsigned, long, long, long, long,
99 unsigned);
100 extern void GOMP_parallel_loop_dynamic (void (*)(void *), void *,
101 unsigned, long, long, long, long,
102 unsigned);
103 extern void GOMP_parallel_loop_guided (void (*)(void *), void *,
104 unsigned, long, long, long, long,
105 unsigned);
106 extern void GOMP_parallel_loop_runtime (void (*)(void *), void *,
107 unsigned, long, long, long,
108 unsigned);
109 extern void GOMP_parallel_loop_nonmonotonic_dynamic (void (*)(void *), void *,
110 unsigned, long, long,
111 long, long, unsigned);
112 extern void GOMP_parallel_loop_nonmonotonic_guided (void (*)(void *), void *,
113 unsigned, long, long,
114 long, long, unsigned);
79 115
80 extern void GOMP_loop_end (void); 116 extern void GOMP_loop_end (void);
81 extern void GOMP_loop_end_nowait (void); 117 extern void GOMP_loop_end_nowait (void);
118 extern bool GOMP_loop_end_cancel (void);
82 119
83 /* loop_ull.c */ 120 /* loop_ull.c */
84 121
85 extern bool GOMP_loop_ull_static_start (bool, unsigned long long, 122 extern bool GOMP_loop_ull_static_start (bool, unsigned long long,
86 unsigned long long, 123 unsigned long long,
103 extern bool GOMP_loop_ull_runtime_start (bool, unsigned long long, 140 extern bool GOMP_loop_ull_runtime_start (bool, unsigned long long,
104 unsigned long long, 141 unsigned long long,
105 unsigned long long, 142 unsigned long long,
106 unsigned long long *, 143 unsigned long long *,
107 unsigned long long *); 144 unsigned long long *);
145 extern bool GOMP_loop_ull_nonmonotonic_dynamic_start (bool, unsigned long long,
146 unsigned long long,
147 unsigned long long,
148 unsigned long long,
149 unsigned long long *,
150 unsigned long long *);
151 extern bool GOMP_loop_ull_nonmonotonic_guided_start (bool, unsigned long long,
152 unsigned long long,
153 unsigned long long,
154 unsigned long long,
155 unsigned long long *,
156 unsigned long long *);
108 157
109 extern bool GOMP_loop_ull_ordered_static_start (bool, unsigned long long, 158 extern bool GOMP_loop_ull_ordered_static_start (bool, unsigned long long,
110 unsigned long long, 159 unsigned long long,
111 unsigned long long, 160 unsigned long long,
112 unsigned long long, 161 unsigned long long,
136 unsigned long long *); 185 unsigned long long *);
137 extern bool GOMP_loop_ull_guided_next (unsigned long long *, 186 extern bool GOMP_loop_ull_guided_next (unsigned long long *,
138 unsigned long long *); 187 unsigned long long *);
139 extern bool GOMP_loop_ull_runtime_next (unsigned long long *, 188 extern bool GOMP_loop_ull_runtime_next (unsigned long long *,
140 unsigned long long *); 189 unsigned long long *);
190 extern bool GOMP_loop_ull_nonmonotonic_dynamic_next (unsigned long long *,
191 unsigned long long *);
192 extern bool GOMP_loop_ull_nonmonotonic_guided_next (unsigned long long *,
193 unsigned long long *);
141 194
142 extern bool GOMP_loop_ull_ordered_static_next (unsigned long long *, 195 extern bool GOMP_loop_ull_ordered_static_next (unsigned long long *,
143 unsigned long long *); 196 unsigned long long *);
144 extern bool GOMP_loop_ull_ordered_dynamic_next (unsigned long long *, 197 extern bool GOMP_loop_ull_ordered_dynamic_next (unsigned long long *,
145 unsigned long long *); 198 unsigned long long *);
146 extern bool GOMP_loop_ull_ordered_guided_next (unsigned long long *, 199 extern bool GOMP_loop_ull_ordered_guided_next (unsigned long long *,
147 unsigned long long *); 200 unsigned long long *);
148 extern bool GOMP_loop_ull_ordered_runtime_next (unsigned long long *, 201 extern bool GOMP_loop_ull_ordered_runtime_next (unsigned long long *,
149 unsigned long long *); 202 unsigned long long *);
150 203
204 extern bool GOMP_loop_ull_doacross_static_start (unsigned,
205 unsigned long long *,
206 unsigned long long,
207 unsigned long long *,
208 unsigned long long *);
209 extern bool GOMP_loop_ull_doacross_dynamic_start (unsigned,
210 unsigned long long *,
211 unsigned long long,
212 unsigned long long *,
213 unsigned long long *);
214 extern bool GOMP_loop_ull_doacross_guided_start (unsigned,
215 unsigned long long *,
216 unsigned long long,
217 unsigned long long *,
218 unsigned long long *);
219 extern bool GOMP_loop_ull_doacross_runtime_start (unsigned,
220 unsigned long long *,
221 unsigned long long *,
222 unsigned long long *);
223
151 /* ordered.c */ 224 /* ordered.c */
152 225
153 extern void GOMP_ordered_start (void); 226 extern void GOMP_ordered_start (void);
154 extern void GOMP_ordered_end (void); 227 extern void GOMP_ordered_end (void);
228 extern void GOMP_doacross_post (long *);
229 extern void GOMP_doacross_wait (long, ...);
230 extern void GOMP_doacross_ull_post (unsigned long long *);
231 extern void GOMP_doacross_ull_wait (unsigned long long, ...);
155 232
156 /* parallel.c */ 233 /* parallel.c */
157 234
158 extern void GOMP_parallel_start (void (*) (void *), void *, unsigned); 235 extern void GOMP_parallel_start (void (*) (void *), void *, unsigned);
159 extern void GOMP_parallel_end (void); 236 extern void GOMP_parallel_end (void);
160 237 extern void GOMP_parallel (void (*) (void *), void *, unsigned, unsigned);
161 /* team.c */ 238 extern bool GOMP_cancel (int, bool);
239 extern bool GOMP_cancellation_point (int);
240
241 /* task.c */
162 242
163 extern void GOMP_task (void (*) (void *), void *, void (*) (void *, void *), 243 extern void GOMP_task (void (*) (void *), void *, void (*) (void *, void *),
164 long, long, bool, unsigned); 244 long, long, bool, unsigned, void **, int);
245 extern void GOMP_taskloop (void (*) (void *), void *,
246 void (*) (void *, void *), long, long, unsigned,
247 unsigned long, int, long, long, long);
248 extern void GOMP_taskloop_ull (void (*) (void *), void *,
249 void (*) (void *, void *), long, long,
250 unsigned, unsigned long, int,
251 unsigned long long, unsigned long long,
252 unsigned long long);
165 extern void GOMP_taskwait (void); 253 extern void GOMP_taskwait (void);
254 extern void GOMP_taskyield (void);
255 extern void GOMP_taskgroup_start (void);
256 extern void GOMP_taskgroup_end (void);
166 257
167 /* sections.c */ 258 /* sections.c */
168 259
169 extern unsigned GOMP_sections_start (unsigned); 260 extern unsigned GOMP_sections_start (unsigned);
170 extern unsigned GOMP_sections_next (void); 261 extern unsigned GOMP_sections_next (void);
171 extern void GOMP_parallel_sections_start (void (*) (void *), void *, 262 extern void GOMP_parallel_sections_start (void (*) (void *), void *,
172 unsigned, unsigned); 263 unsigned, unsigned);
264 extern void GOMP_parallel_sections (void (*) (void *), void *,
265 unsigned, unsigned, unsigned);
173 extern void GOMP_sections_end (void); 266 extern void GOMP_sections_end (void);
174 extern void GOMP_sections_end_nowait (void); 267 extern void GOMP_sections_end_nowait (void);
268 extern bool GOMP_sections_end_cancel (void);
175 269
176 /* single.c */ 270 /* single.c */
177 271
178 extern bool GOMP_single_start (void); 272 extern bool GOMP_single_start (void);
179 extern void *GOMP_single_copy_start (void); 273 extern void *GOMP_single_copy_start (void);
180 extern void GOMP_single_copy_end (void *); 274 extern void GOMP_single_copy_end (void *);
181 275
276 /* target.c */
277
278 extern void GOMP_target (int, void (*) (void *), const void *,
279 size_t, void **, size_t *, unsigned char *);
280 extern void GOMP_target_ext (int, void (*) (void *), size_t, void **, size_t *,
281 unsigned short *, unsigned int, void **, void **);
282 extern void GOMP_target_data (int, const void *,
283 size_t, void **, size_t *, unsigned char *);
284 extern void GOMP_target_data_ext (int, size_t, void **, size_t *,
285 unsigned short *);
286 extern void GOMP_target_end_data (void);
287 extern void GOMP_target_update (int, const void *,
288 size_t, void **, size_t *, unsigned char *);
289 extern void GOMP_target_update_ext (int, size_t, void **, size_t *,
290 unsigned short *, unsigned int, void **);
291 extern void GOMP_target_enter_exit_data (int, size_t, void **, size_t *,
292 unsigned short *, unsigned int,
293 void **);
294 extern void GOMP_teams (unsigned int, unsigned int);
295
296 /* oacc-parallel.c */
297
298 extern void GOACC_parallel_keyed (int, void (*) (void *), size_t,
299 void **, size_t *, unsigned short *, ...);
300 extern void GOACC_parallel (int, void (*) (void *), size_t, void **, size_t *,
301 unsigned short *, int, int, int, int, int, ...);
302 extern void GOACC_data_start (int, size_t, void **, size_t *,
303 unsigned short *);
304 extern void GOACC_data_end (void);
305 extern void GOACC_enter_exit_data (int, size_t, void **,
306 size_t *, unsigned short *, int, int, ...);
307 extern void GOACC_update (int, size_t, void **, size_t *,
308 unsigned short *, int, int, ...);
309 extern void GOACC_wait (int, int, ...);
310 extern int GOACC_get_num_threads (void);
311 extern int GOACC_get_thread_num (void);
312 extern void GOACC_declare (int, size_t, void **, size_t *, unsigned short *);
313
182 #endif /* LIBGOMP_G_H */ 314 #endif /* LIBGOMP_G_H */