1/* This file contains the definitions and documentation for the
2   Offloading and Multi Processing builtins used in the GNU compiler.
3   Copyright (C) 2005-2018 Free Software Foundation, Inc.
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 3, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3.  If not see
19<http://www.gnu.org/licenses/>.  */
20
21/* Before including this file, you should define a macro:
22
23     DEF_GOACC_BUILTIN (ENUM, NAME, TYPE, ATTRS)
24     DEF_GOACC_BUILTIN_COMPILER (ENUM, NAME, TYPE, ATTRS)
25     DEF_GOMP_BUILTIN (ENUM, NAME, TYPE, ATTRS)
26
27   See builtins.def for details.  */
28
29/* The reason why they aren't in gcc/builtins.def is that the Fortran front end
30   doesn't source those.  */
31
32DEF_GOACC_BUILTIN (BUILT_IN_ACC_GET_DEVICE_TYPE, "acc_get_device_type",
33		   BT_FN_INT, ATTR_NOTHROW_LIST)
34DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_START, "GOACC_data_start",
35		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
36DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_END, "GOACC_data_end",
37		   BT_FN_VOID, ATTR_NOTHROW_LIST)
38DEF_GOACC_BUILTIN (BUILT_IN_GOACC_ENTER_EXIT_DATA, "GOACC_enter_exit_data",
39		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
40		   ATTR_NOTHROW_LIST)
41DEF_GOACC_BUILTIN (BUILT_IN_GOACC_PARALLEL, "GOACC_parallel_keyed",
42		   BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR,
43		   ATTR_NOTHROW_LIST)
44DEF_GOACC_BUILTIN (BUILT_IN_GOACC_UPDATE, "GOACC_update",
45		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
46		   ATTR_NOTHROW_LIST)
47DEF_GOACC_BUILTIN (BUILT_IN_GOACC_WAIT, "GOACC_wait",
48		   BT_FN_VOID_INT_INT_VAR,
49		   ATTR_NOTHROW_LIST)
50
51DEF_GOACC_BUILTIN_COMPILER (BUILT_IN_ACC_ON_DEVICE, "acc_on_device",
52			    BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
53
54DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
55		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
56DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
57		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
58DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_TEAM_NUM, "omp_get_team_num",
59		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
60DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_TEAMS, "omp_get_num_teams",
61		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
62
63DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
64		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
65DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end",
66		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
67DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier",
68		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
69DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER_CANCEL, "GOMP_barrier_cancel",
70		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
71DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait",
72		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
73DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKYIELD, "GOMP_taskyield",
74		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
75DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_START, "GOMP_taskgroup_start",
76		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
77DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_END, "GOMP_taskgroup_end",
78		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
79DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCEL, "GOMP_cancel",
80		  BT_FN_BOOL_INT_BOOL, ATTR_NOTHROW_LEAF_LIST)
81DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCELLATION_POINT, "GOMP_cancellation_point",
82		  BT_FN_BOOL_INT, ATTR_NOTHROW_LEAF_LIST)
83DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start",
84		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
85DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end",
86		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
87DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START,
88		  "GOMP_critical_name_start",
89		  BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
90DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END,
91		  "GOMP_critical_name_end",
92		  BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
93/* NOTE: Do not change the order of BUILT_IN_GOMP_LOOP_*_START.  They
94   are used in index arithmetic with enum omp_clause_schedule_kind
95   in omp-low.c.  */
96DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_START,
97		  "GOMP_loop_static_start",
98		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
99		  ATTR_NOTHROW_LEAF_LIST)
100DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_START,
101		  "GOMP_loop_dynamic_start",
102		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
103		  ATTR_NOTHROW_LEAF_LIST)
104DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_START,
105		  "GOMP_loop_guided_start",
106		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
107		  ATTR_NOTHROW_LEAF_LIST)
108DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START,
109		  "GOMP_loop_runtime_start",
110		  BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
111		  ATTR_NOTHROW_LEAF_LIST)
112DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
113		  "GOMP_loop_nonmonotonic_dynamic_start",
114		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
115		  ATTR_NOTHROW_LEAF_LIST)
116DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
117		  "GOMP_loop_nonmonotonic_guided_start",
118		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
119		  ATTR_NOTHROW_LEAF_LIST)
120DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
121		  "GOMP_loop_ordered_static_start",
122		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
123		  ATTR_NOTHROW_LEAF_LIST)
124DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
125		  "GOMP_loop_ordered_dynamic_start",
126		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
127		  ATTR_NOTHROW_LEAF_LIST)
128DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
129		  "GOMP_loop_ordered_guided_start",
130		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
131		  ATTR_NOTHROW_LEAF_LIST)
132DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
133		  "GOMP_loop_ordered_runtime_start",
134		  BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
135		  ATTR_NOTHROW_LEAF_LIST)
136DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
137		  "GOMP_loop_doacross_static_start",
138		  BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
139		  ATTR_NOTHROW_LEAF_LIST)
140DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
141		  "GOMP_loop_doacross_dynamic_start",
142		  BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
143		  ATTR_NOTHROW_LEAF_LIST)
144DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
145		  "GOMP_loop_doacross_guided_start",
146		  BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
147		  ATTR_NOTHROW_LEAF_LIST)
148DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
149		  "GOMP_loop_doacross_runtime_start",
150		  BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
151		  ATTR_NOTHROW_LEAF_LIST)
152DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next",
153		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
154DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next",
155		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
156DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next",
157		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
158DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next",
159		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
160DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
161		  "GOMP_loop_nonmonotonic_dynamic_next",
162		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
163DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
164		  "GOMP_loop_nonmonotonic_guided_next",
165		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
166DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
167		  "GOMP_loop_ordered_static_next",
168		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
169DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
170		  "GOMP_loop_ordered_dynamic_next",
171		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
172DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
173		  "GOMP_loop_ordered_guided_next",
174		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
175DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
176		  "GOMP_loop_ordered_runtime_next",
177		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
178DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
179		  "GOMP_loop_ull_static_start",
180		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
181		  ATTR_NOTHROW_LEAF_LIST)
182DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
183		  "GOMP_loop_ull_dynamic_start",
184		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
185		  ATTR_NOTHROW_LEAF_LIST)
186DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
187		  "GOMP_loop_ull_guided_start",
188		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
189		  ATTR_NOTHROW_LEAF_LIST)
190DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
191		  "GOMP_loop_ull_runtime_start",
192		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
193		  ATTR_NOTHROW_LEAF_LIST)
194DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
195		  "GOMP_loop_ull_nonmonotonic_dynamic_start",
196		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
197		  ATTR_NOTHROW_LEAF_LIST)
198DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
199		  "GOMP_loop_ull_nonmonotonic_guided_start",
200		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
201		  ATTR_NOTHROW_LEAF_LIST)
202DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
203		  "GOMP_loop_ull_ordered_static_start",
204		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
205		  ATTR_NOTHROW_LEAF_LIST)
206DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
207		  "GOMP_loop_ull_ordered_dynamic_start",
208		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
209		  ATTR_NOTHROW_LEAF_LIST)
210DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
211		  "GOMP_loop_ull_ordered_guided_start",
212		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
213		  ATTR_NOTHROW_LEAF_LIST)
214DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
215		  "GOMP_loop_ull_ordered_runtime_start",
216		  BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
217		  ATTR_NOTHROW_LEAF_LIST)
218DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
219		  "GOMP_loop_ull_doacross_static_start",
220		  BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
221		  ATTR_NOTHROW_LEAF_LIST)
222DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
223		  "GOMP_loop_ull_doacross_dynamic_start",
224		  BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
225		  ATTR_NOTHROW_LEAF_LIST)
226DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
227		  "GOMP_loop_ull_doacross_guided_start",
228		  BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
229		  ATTR_NOTHROW_LEAF_LIST)
230DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
231		  "GOMP_loop_ull_doacross_runtime_start",
232		  BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
233		  ATTR_NOTHROW_LEAF_LIST)
234DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
235		  "GOMP_loop_ull_static_next",
236		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
237DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
238		  "GOMP_loop_ull_dynamic_next",
239		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
240DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
241		  "GOMP_loop_ull_guided_next",
242		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
243DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
244		  "GOMP_loop_ull_runtime_next",
245		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
246DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
247		  "GOMP_loop_ull_nonmonotonic_dynamic_next",
248		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
249DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
250		  "GOMP_loop_ull_nonmonotonic_guided_next",
251		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
252DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
253		  "GOMP_loop_ull_ordered_static_next",
254		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
255DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
256		  "GOMP_loop_ull_ordered_dynamic_next",
257		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
258DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
259		  "GOMP_loop_ull_ordered_guided_next",
260		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
261DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT,
262		  "GOMP_loop_ull_ordered_runtime_next",
263		  BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
264/* NOTE: Do not change the order of BUILT_IN_GOMP_PARALLEL_LOOP_*.
265   They are used in index arithmetic with enum omp_clause_schedule_kind
266   in omp-low.c.  */
267DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
268		  "GOMP_parallel_loop_static",
269		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
270		  ATTR_NOTHROW_LIST)
271DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
272		  "GOMP_parallel_loop_dynamic",
273		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
274		  ATTR_NOTHROW_LIST)
275DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
276		  "GOMP_parallel_loop_guided",
277		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
278		  ATTR_NOTHROW_LIST)
279DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME,
280		  "GOMP_parallel_loop_runtime",
281		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
282		  ATTR_NOTHROW_LIST)
283DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
284		  "GOMP_parallel_loop_nonmonotonic_dynamic",
285		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
286		  ATTR_NOTHROW_LIST)
287DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED,
288		  "GOMP_parallel_loop_nonmonotonic_guided",
289		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
290		  ATTR_NOTHROW_LIST)
291DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end",
292		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
293DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_CANCEL, "GOMP_loop_end_cancel",
294		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
295DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait",
296		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
297DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start",
298		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
299DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end",
300		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
301DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_POST, "GOMP_doacross_post",
302		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
303DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_WAIT, "GOMP_doacross_wait",
304		  BT_FN_VOID_LONG_VAR, ATTR_NOTHROW_LEAF_LIST)
305DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_POST, "GOMP_doacross_ull_post",
306		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
307DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_WAIT, "GOMP_doacross_ull_wait",
308		  BT_FN_VOID_ULL_VAR, ATTR_NOTHROW_LEAF_LIST)
309DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL, "GOMP_parallel",
310		  BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
311DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK, "GOMP_task",
312		  BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
313		  ATTR_NOTHROW_LIST)
314DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP, "GOMP_taskloop",
315		  BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
316		  ATTR_NOTHROW_LIST)
317DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP_ULL, "GOMP_taskloop_ull",
318		  BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
319		  ATTR_NOTHROW_LIST)
320DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start",
321		  BT_FN_UINT_UINT, ATTR_NOTHROW_LEAF_LIST)
322DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next",
323		  BT_FN_UINT, ATTR_NOTHROW_LEAF_LIST)
324DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS,
325		  "GOMP_parallel_sections",
326		  BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
327DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end",
328		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
329DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_CANCEL,
330		  "GOMP_sections_end_cancel",
331		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
332DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT,
333		  "GOMP_sections_end_nowait",
334		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
335DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start",
336		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
337DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start",
338		  BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
339DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end",
340		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
341DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_REGISTER, "GOMP_offload_register_ver",
342		  BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
343DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_UNREGISTER,
344		  "GOMP_offload_unregister_ver",
345		  BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
346DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET, "GOMP_target_ext",
347		  BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR,
348		  ATTR_NOTHROW_LIST)
349DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_DATA, "GOMP_target_data_ext",
350		  BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
351DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_END_DATA, "GOMP_target_end_data",
352		  BT_FN_VOID, ATTR_NOTHROW_LIST)
353DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_UPDATE, "GOMP_target_update_ext",
354		  BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
355		  ATTR_NOTHROW_LIST)
356DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA,
357		  "GOMP_target_enter_exit_data",
358		  BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR, ATTR_NOTHROW_LIST)
359DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS, "GOMP_teams",
360		  BT_FN_VOID_UINT_UINT, ATTR_NOTHROW_LIST)
361DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DECLARE, "GOACC_declare",
362		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
363