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-2022 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_GOACC_DATA_START, "GOACC_data_start",
33                       BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
34DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_END, "GOACC_data_end",
35                       BT_FN_VOID, ATTR_NOTHROW_LIST)
36DEF_GOACC_BUILTIN (BUILT_IN_GOACC_ENTER_DATA, "GOACC_enter_data",
37                       BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
38                       ATTR_NOTHROW_LIST)
39DEF_GOACC_BUILTIN (BUILT_IN_GOACC_EXIT_DATA, "GOACC_exit_data",
40                       BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
41                       ATTR_NOTHROW_LIST)
42DEF_GOACC_BUILTIN (BUILT_IN_GOACC_PARALLEL, "GOACC_parallel_keyed",
43                       BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR,
44                       ATTR_NOTHROW_LIST)
45DEF_GOACC_BUILTIN (BUILT_IN_GOACC_UPDATE, "GOACC_update",
46                       BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
47                       ATTR_NOTHROW_LIST)
48DEF_GOACC_BUILTIN (BUILT_IN_GOACC_WAIT, "GOACC_wait",
49                       BT_FN_VOID_INT_INT_VAR,
50                       ATTR_NOTHROW_LIST)
51DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DECLARE, "GOACC_declare",
52                       BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
53
54DEF_GOACC_BUILTIN_COMPILER (BUILT_IN_ACC_ON_DEVICE, "acc_on_device",
55                                  BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
56
57DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_PARLEVEL_ID, "goacc_parlevel_id",
58                              BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST)
59DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_PARLEVEL_SIZE, "goacc_parlevel_size",
60                              BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST)
61
62DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_BARRIER, "GOACC_barrier",
63                              BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
64DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_START, "GOACC_single_start",
65                              BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
66DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_COPY_START, "GOACC_single_copy_start",
67                              BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
68DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_COPY_END, "GOACC_single_copy_end",
69                              BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
70
71DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
72                      BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
73DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
74                      BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
75DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_TEAM_NUM, "omp_get_team_num",
76                      BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
77DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_TEAMS, "omp_get_num_teams",
78                      BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
79
80DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
81                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
82DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end",
83                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
84DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier",
85                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
86DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER_CANCEL, "GOMP_barrier_cancel",
87                      BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
88DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait",
89                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
90DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT_DEPEND, "GOMP_taskwait_depend",
91                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
92DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKYIELD, "GOMP_taskyield",
93                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
94DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_START, "GOMP_taskgroup_start",
95                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
96DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_END, "GOMP_taskgroup_end",
97                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
98DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCEL, "GOMP_cancel",
99                      BT_FN_BOOL_INT_BOOL, ATTR_NOTHROW_LEAF_LIST)
100DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCELLATION_POINT, "GOMP_cancellation_point",
101                      BT_FN_BOOL_INT, ATTR_NOTHROW_LEAF_LIST)
102DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start",
103                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
104DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end",
105                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
106DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START,
107                      "GOMP_critical_name_start",
108                      BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
109DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END,
110                      "GOMP_critical_name_end",
111                      BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
112/* NOTE: Do not change the order of BUILT_IN_GOMP_LOOP_*_START.  They
113   are used in index arithmetic with enum omp_clause_schedule_kind
114   in omp-low.cc.  */
115DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_START,
116                      "GOMP_loop_static_start",
117                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
118                      ATTR_NOTHROW_LEAF_LIST)
119DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_START,
120                      "GOMP_loop_dynamic_start",
121                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
122                      ATTR_NOTHROW_LEAF_LIST)
123DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_START,
124                      "GOMP_loop_guided_start",
125                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
126                      ATTR_NOTHROW_LEAF_LIST)
127DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START,
128                      "GOMP_loop_runtime_start",
129                      BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
130                      ATTR_NOTHROW_LEAF_LIST)
131DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
132                      "GOMP_loop_nonmonotonic_dynamic_start",
133                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
134                      ATTR_NOTHROW_LEAF_LIST)
135DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
136                      "GOMP_loop_nonmonotonic_guided_start",
137                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
138                      ATTR_NOTHROW_LEAF_LIST)
139DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
140                      "GOMP_loop_nonmonotonic_runtime_start",
141                      BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
142                      ATTR_NOTHROW_LEAF_LIST)
143DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
144                      "GOMP_loop_maybe_nonmonotonic_runtime_start",
145                      BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
146                      ATTR_NOTHROW_LEAF_LIST)
147DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
148                      "GOMP_loop_ordered_static_start",
149                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
150                      ATTR_NOTHROW_LEAF_LIST)
151DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
152                      "GOMP_loop_ordered_dynamic_start",
153                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
154                      ATTR_NOTHROW_LEAF_LIST)
155DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
156                      "GOMP_loop_ordered_guided_start",
157                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
158                      ATTR_NOTHROW_LEAF_LIST)
159DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
160                      "GOMP_loop_ordered_runtime_start",
161                      BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
162                      ATTR_NOTHROW_LEAF_LIST)
163DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
164                      "GOMP_loop_doacross_static_start",
165                      BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
166                      ATTR_NOTHROW_LEAF_LIST)
167DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
168                      "GOMP_loop_doacross_dynamic_start",
169                      BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
170                      ATTR_NOTHROW_LEAF_LIST)
171DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
172                      "GOMP_loop_doacross_guided_start",
173                      BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
174                      ATTR_NOTHROW_LEAF_LIST)
175DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
176                      "GOMP_loop_doacross_runtime_start",
177                      BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
178                      ATTR_NOTHROW_LEAF_LIST)
179DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_START,
180                      "GOMP_loop_start",
181                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
182                      ATTR_NOTHROW_LEAF_LIST)
183DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_START,
184                      "GOMP_loop_ordered_start",
185                      BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
186                      ATTR_NOTHROW_LEAF_LIST)
187DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_START,
188                      "GOMP_loop_doacross_start",
189                      BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
190                      ATTR_NOTHROW_LEAF_LIST)
191DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next",
192                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
193DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next",
194                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
195DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next",
196                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
197DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next",
198                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
199DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
200                      "GOMP_loop_nonmonotonic_dynamic_next",
201                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
202DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
203                      "GOMP_loop_nonmonotonic_guided_next",
204                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
205DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT,
206                      "GOMP_loop_nonmonotonic_runtime_next",
207                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
208DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
209                      "GOMP_loop_maybe_nonmonotonic_runtime_next",
210                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
211DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
212                      "GOMP_loop_ordered_static_next",
213                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
214DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
215                      "GOMP_loop_ordered_dynamic_next",
216                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
217DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
218                      "GOMP_loop_ordered_guided_next",
219                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
220DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
221                      "GOMP_loop_ordered_runtime_next",
222                      BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
223DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
224                      "GOMP_loop_ull_static_start",
225                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
226                      ATTR_NOTHROW_LEAF_LIST)
227DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
228                      "GOMP_loop_ull_dynamic_start",
229                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
230                      ATTR_NOTHROW_LEAF_LIST)
231DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
232                      "GOMP_loop_ull_guided_start",
233                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
234                      ATTR_NOTHROW_LEAF_LIST)
235DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
236                      "GOMP_loop_ull_runtime_start",
237                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
238                      ATTR_NOTHROW_LEAF_LIST)
239DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
240                      "GOMP_loop_ull_nonmonotonic_dynamic_start",
241                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
242                      ATTR_NOTHROW_LEAF_LIST)
243DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
244                      "GOMP_loop_ull_nonmonotonic_guided_start",
245                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
246                      ATTR_NOTHROW_LEAF_LIST)
247DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
248                      "GOMP_loop_ull_nonmonotonic_runtime_start",
249                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
250                      ATTR_NOTHROW_LEAF_LIST)
251DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
252                      "GOMP_loop_ull_maybe_nonmonotonic_runtime_start",
253                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
254                      ATTR_NOTHROW_LEAF_LIST)
255DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
256                      "GOMP_loop_ull_ordered_static_start",
257                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
258                      ATTR_NOTHROW_LEAF_LIST)
259DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
260                      "GOMP_loop_ull_ordered_dynamic_start",
261                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
262                      ATTR_NOTHROW_LEAF_LIST)
263DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
264                      "GOMP_loop_ull_ordered_guided_start",
265                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
266                      ATTR_NOTHROW_LEAF_LIST)
267DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
268                      "GOMP_loop_ull_ordered_runtime_start",
269                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
270                      ATTR_NOTHROW_LEAF_LIST)
271DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
272                      "GOMP_loop_ull_doacross_static_start",
273                      BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
274                      ATTR_NOTHROW_LEAF_LIST)
275DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
276                      "GOMP_loop_ull_doacross_dynamic_start",
277                      BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
278                      ATTR_NOTHROW_LEAF_LIST)
279DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
280                      "GOMP_loop_ull_doacross_guided_start",
281                      BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
282                      ATTR_NOTHROW_LEAF_LIST)
283DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
284                      "GOMP_loop_ull_doacross_runtime_start",
285                      BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
286                      ATTR_NOTHROW_LEAF_LIST)
287DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_START,
288                      "GOMP_loop_ull_start",
289                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
290                      ATTR_NOTHROW_LEAF_LIST)
291DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_START,
292                      "GOMP_loop_ull_ordered_start",
293                      BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
294                      ATTR_NOTHROW_LEAF_LIST)
295DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START,
296                      "GOMP_loop_ull_doacross_start",
297                      BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
298                      ATTR_NOTHROW_LEAF_LIST)
299DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
300                      "GOMP_loop_ull_static_next",
301                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
302DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
303                      "GOMP_loop_ull_dynamic_next",
304                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
305DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
306                      "GOMP_loop_ull_guided_next",
307                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
308DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
309                      "GOMP_loop_ull_runtime_next",
310                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
311DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
312                      "GOMP_loop_ull_nonmonotonic_dynamic_next",
313                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
314DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
315                      "GOMP_loop_ull_nonmonotonic_guided_next",
316                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
317DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT,
318                      "GOMP_loop_ull_nonmonotonic_runtime_next",
319                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
320DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
321                      "GOMP_loop_ull_maybe_nonmonotonic_runtime_next",
322                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
323DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
324                      "GOMP_loop_ull_ordered_static_next",
325                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
326DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
327                      "GOMP_loop_ull_ordered_dynamic_next",
328                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
329DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
330                      "GOMP_loop_ull_ordered_guided_next",
331                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
332DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT,
333                      "GOMP_loop_ull_ordered_runtime_next",
334                      BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
335/* NOTE: Do not change the order of BUILT_IN_GOMP_PARALLEL_LOOP_*.
336   They are used in index arithmetic with enum omp_clause_schedule_kind
337   in omp-low.cc.  */
338DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
339                      "GOMP_parallel_loop_static",
340                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
341                      ATTR_NOTHROW_LIST)
342DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
343                      "GOMP_parallel_loop_dynamic",
344                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
345                      ATTR_NOTHROW_LIST)
346DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
347                      "GOMP_parallel_loop_guided",
348                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
349                      ATTR_NOTHROW_LIST)
350DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME,
351                      "GOMP_parallel_loop_runtime",
352                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
353                      ATTR_NOTHROW_LIST)
354DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
355                      "GOMP_parallel_loop_nonmonotonic_dynamic",
356                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
357                      ATTR_NOTHROW_LIST)
358DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED,
359                      "GOMP_parallel_loop_nonmonotonic_guided",
360                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
361                      ATTR_NOTHROW_LIST)
362DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
363                      "GOMP_parallel_loop_nonmonotonic_runtime",
364                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
365                      ATTR_NOTHROW_LIST)
366DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME,
367                      "GOMP_parallel_loop_maybe_nonmonotonic_runtime",
368                      BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
369                      ATTR_NOTHROW_LIST)
370DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end",
371                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
372DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_CANCEL, "GOMP_loop_end_cancel",
373                      BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
374DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait",
375                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
376DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start",
377                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
378DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end",
379                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
380DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_POST, "GOMP_doacross_post",
381                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
382DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_WAIT, "GOMP_doacross_wait",
383                      BT_FN_VOID_LONG_VAR, ATTR_NOTHROW_LEAF_LIST)
384DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_POST, "GOMP_doacross_ull_post",
385                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
386DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_WAIT, "GOMP_doacross_ull_wait",
387                      BT_FN_VOID_ULL_VAR, ATTR_NOTHROW_LEAF_LIST)
388DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL, "GOMP_parallel",
389                      BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
390DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_REDUCTIONS,
391                      "GOMP_parallel_reductions",
392                      BT_FN_UINT_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
393DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK, "GOMP_task",
394                      BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR,
395                      ATTR_NOTHROW_LIST)
396DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP, "GOMP_taskloop",
397                      BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
398                      ATTR_NOTHROW_LIST)
399DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP_ULL, "GOMP_taskloop_ull",
400                      BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
401                      ATTR_NOTHROW_LIST)
402DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start",
403                      BT_FN_UINT_UINT, ATTR_NOTHROW_LEAF_LIST)
404DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS2_START, "GOMP_sections2_start",
405                      BT_FN_UINT_UINT_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)
406DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next",
407                      BT_FN_UINT, ATTR_NOTHROW_LEAF_LIST)
408DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS,
409                      "GOMP_parallel_sections",
410                      BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
411DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end",
412                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
413DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_CANCEL,
414                      "GOMP_sections_end_cancel",
415                      BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
416DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT,
417                      "GOMP_sections_end_nowait",
418                      BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
419DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start",
420                      BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
421DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start",
422                      BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
423DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end",
424                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
425DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SCOPE_START, "GOMP_scope_start",
426                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
427DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_REGISTER, "GOMP_offload_register_ver",
428                      BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
429DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_UNREGISTER,
430                      "GOMP_offload_unregister_ver",
431                      BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
432DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET, "GOMP_target_ext",
433                      BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR,
434                      ATTR_NOTHROW_LIST)
435DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_DATA, "GOMP_target_data_ext",
436                      BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
437DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_END_DATA, "GOMP_target_end_data",
438                      BT_FN_VOID, ATTR_NOTHROW_LIST)
439DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_UPDATE, "GOMP_target_update_ext",
440                      BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
441                      ATTR_NOTHROW_LIST)
442DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA,
443                      "GOMP_target_enter_exit_data",
444                      BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR, ATTR_NOTHROW_LIST)
445DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS4, "GOMP_teams4",
446                      BT_FN_BOOL_UINT_UINT_UINT_BOOL, ATTR_NOTHROW_LIST)
447DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS_REG, "GOMP_teams_reg",
448                      BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
449DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER,
450                      "GOMP_taskgroup_reduction_register",
451                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
452DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER,
453                      "GOMP_taskgroup_reduction_unregister",
454                      BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
455DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK_REDUCTION_REMAP,
456                      "GOMP_task_reduction_remap",
457                      BT_FN_VOID_SIZE_SIZE_PTR, ATTR_NOTHROW_LEAF_LIST)
458DEF_GOMP_BUILTIN (BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER,
459                      "GOMP_workshare_task_reduction_unregister",
460                      BT_FN_VOID_BOOL, ATTR_NOTHROW_LEAF_LIST)
461DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ALLOC,
462                      "GOMP_alloc", BT_FN_PTR_SIZE_SIZE_PTRMODE,
463                      ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST)
464DEF_GOMP_BUILTIN (BUILT_IN_GOMP_FREE,
465                      "GOMP_free", BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST)
466DEF_GOMP_BUILTIN (BUILT_IN_GOMP_WARNING, "GOMP_warning",
467                      BT_FN_VOID_CONST_PTR_SIZE, ATTR_NOTHROW_LEAF_LIST)
468DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ERROR, "GOMP_error",
469                      BT_FN_VOID_CONST_PTR_SIZE, ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST)
470