Home | History | Annotate | Line # | Download | only in gcc
      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 
      5 This file is part of GCC.
      6 
      7 GCC is free software; you can redistribute it and/or modify it under
      8 the terms of the GNU General Public License as published by the Free
      9 Software Foundation; either version 3, or (at your option) any later
     10 version.
     11 
     12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     15 for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along 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 
     32 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_START, "GOACC_data_start",
     33 		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
     34 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_END, "GOACC_data_end",
     35 		   BT_FN_VOID, ATTR_NOTHROW_LIST)
     36 DEF_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)
     39 DEF_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)
     42 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_PARALLEL, "GOACC_parallel_keyed",
     43 		   BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_VAR,
     44 		   ATTR_NOTHROW_LIST)
     45 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_UPDATE, "GOACC_update",
     46 		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR,
     47 		   ATTR_NOTHROW_LIST)
     48 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_WAIT, "GOACC_wait",
     49 		   BT_FN_VOID_INT_INT_VAR,
     50 		   ATTR_NOTHROW_LIST)
     51 DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DECLARE, "GOACC_declare",
     52 		   BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
     53 
     54 DEF_GOACC_BUILTIN_COMPILER (BUILT_IN_ACC_ON_DEVICE, "acc_on_device",
     55 			    BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
     56 
     57 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_PARLEVEL_ID, "goacc_parlevel_id",
     58 			BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST)
     59 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_PARLEVEL_SIZE, "goacc_parlevel_size",
     60 			BT_FN_INT_INT, ATTR_NOTHROW_LEAF_LIST)
     61 
     62 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_BARRIER, "GOACC_barrier",
     63 			BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     64 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_START, "GOACC_single_start",
     65 			BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
     66 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_COPY_START, "GOACC_single_copy_start",
     67 			BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
     68 DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_COPY_END, "GOACC_single_copy_end",
     69 			BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
     70 
     71 DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
     72 		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
     73 DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
     74 		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
     75 DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_TEAM_NUM, "omp_get_team_num",
     76 		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
     77 DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_TEAMS, "omp_get_num_teams",
     78 		  BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
     79 
     80 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
     81 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     82 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end",
     83 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     84 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier",
     85 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     86 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER_CANCEL, "GOMP_barrier_cancel",
     87 		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
     88 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait",
     89 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     90 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT_DEPEND, "GOMP_taskwait_depend",
     91 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
     92 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKYIELD, "GOMP_taskyield",
     93 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     94 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_START, "GOMP_taskgroup_start",
     95 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     96 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_END, "GOMP_taskgroup_end",
     97 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
     98 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCEL, "GOMP_cancel",
     99 		  BT_FN_BOOL_INT_BOOL, ATTR_NOTHROW_LEAF_LIST)
    100 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCELLATION_POINT, "GOMP_cancellation_point",
    101 		  BT_FN_BOOL_INT, ATTR_NOTHROW_LEAF_LIST)
    102 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start",
    103 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    104 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end",
    105 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    106 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START,
    107 		  "GOMP_critical_name_start",
    108 		  BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
    109 DEF_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.  */
    115 DEF_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)
    119 DEF_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)
    123 DEF_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)
    127 DEF_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)
    131 DEF_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)
    135 DEF_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)
    139 DEF_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)
    143 DEF_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)
    147 DEF_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)
    151 DEF_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)
    155 DEF_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)
    159 DEF_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)
    163 DEF_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)
    167 DEF_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)
    171 DEF_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)
    175 DEF_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)
    179 DEF_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)
    183 DEF_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)
    187 DEF_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)
    191 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next",
    192 		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
    193 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next",
    194 		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
    195 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next",
    196 		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
    197 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next",
    198 		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
    199 DEF_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)
    202 DEF_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)
    205 DEF_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)
    208 DEF_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)
    211 DEF_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)
    214 DEF_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)
    217 DEF_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)
    220 DEF_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)
    223 DEF_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)
    227 DEF_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)
    231 DEF_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)
    235 DEF_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)
    239 DEF_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)
    243 DEF_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)
    247 DEF_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)
    251 DEF_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)
    255 DEF_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)
    259 DEF_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)
    263 DEF_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)
    267 DEF_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)
    271 DEF_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)
    275 DEF_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)
    279 DEF_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)
    283 DEF_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)
    287 DEF_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)
    291 DEF_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)
    295 DEF_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)
    299 DEF_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)
    302 DEF_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)
    305 DEF_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)
    308 DEF_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)
    311 DEF_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)
    314 DEF_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)
    317 DEF_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)
    320 DEF_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)
    323 DEF_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)
    326 DEF_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)
    329 DEF_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)
    332 DEF_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.  */
    338 DEF_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)
    342 DEF_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)
    346 DEF_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)
    350 DEF_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)
    354 DEF_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)
    358 DEF_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)
    362 DEF_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)
    366 DEF_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)
    370 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end",
    371 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    372 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_CANCEL, "GOMP_loop_end_cancel",
    373 		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
    374 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait",
    375 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    376 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start",
    377 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    378 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end",
    379 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    380 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_POST, "GOMP_doacross_post",
    381 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    382 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_WAIT, "GOMP_doacross_wait",
    383 		  BT_FN_VOID_LONG_VAR, ATTR_NOTHROW_LEAF_LIST)
    384 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_POST, "GOMP_doacross_ull_post",
    385 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    386 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_WAIT, "GOMP_doacross_ull_wait",
    387 		  BT_FN_VOID_ULL_VAR, ATTR_NOTHROW_LEAF_LIST)
    388 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL, "GOMP_parallel",
    389 		  BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
    390 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_REDUCTIONS,
    391 		  "GOMP_parallel_reductions",
    392 		  BT_FN_UINT_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
    393 DEF_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)
    396 DEF_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)
    399 DEF_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)
    402 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start",
    403 		  BT_FN_UINT_UINT, ATTR_NOTHROW_LEAF_LIST)
    404 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS2_START, "GOMP_sections2_start",
    405 		  BT_FN_UINT_UINT_PTR_PTR, ATTR_NOTHROW_LEAF_LIST)
    406 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next",
    407 		  BT_FN_UINT, ATTR_NOTHROW_LEAF_LIST)
    408 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS,
    409 		  "GOMP_parallel_sections",
    410 		  BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
    411 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end",
    412 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    413 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_CANCEL,
    414 		  "GOMP_sections_end_cancel",
    415 		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
    416 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT,
    417 		  "GOMP_sections_end_nowait",
    418 		  BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
    419 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start",
    420 		  BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
    421 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start",
    422 		  BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
    423 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end",
    424 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    425 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SCOPE_START, "GOMP_scope_start",
    426 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    427 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_REGISTER, "GOMP_offload_register_ver",
    428 		  BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
    429 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_UNREGISTER,
    430 		  "GOMP_offload_unregister_ver",
    431 		  BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
    432 DEF_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)
    435 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_DATA, "GOMP_target_data_ext",
    436 		  BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
    437 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_END_DATA, "GOMP_target_end_data",
    438 		  BT_FN_VOID, ATTR_NOTHROW_LIST)
    439 DEF_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)
    442 DEF_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)
    445 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS4, "GOMP_teams4",
    446 		  BT_FN_BOOL_UINT_UINT_UINT_BOOL, ATTR_NOTHROW_LIST)
    447 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS_REG, "GOMP_teams_reg",
    448 		  BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
    449 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER,
    450 		  "GOMP_taskgroup_reduction_register",
    451 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    452 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER,
    453 		  "GOMP_taskgroup_reduction_unregister",
    454 		  BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
    455 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK_REDUCTION_REMAP,
    456 		  "GOMP_task_reduction_remap",
    457 		  BT_FN_VOID_SIZE_SIZE_PTR, ATTR_NOTHROW_LEAF_LIST)
    458 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER,
    459 		  "GOMP_workshare_task_reduction_unregister",
    460 		  BT_FN_VOID_BOOL, ATTR_NOTHROW_LEAF_LIST)
    461 DEF_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)
    464 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_FREE,
    465 		  "GOMP_free", BT_FN_VOID_PTR_PTRMODE, ATTR_NOTHROW_LEAF_LIST)
    466 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_WARNING, "GOMP_warning",
    467 		  BT_FN_VOID_CONST_PTR_SIZE, ATTR_NOTHROW_LEAF_LIST)
    468 DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ERROR, "GOMP_error",
    469 		  BT_FN_VOID_CONST_PTR_SIZE, ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST)
    470