omp-builtins.def 21 KB

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