omp-builtins.def 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  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. 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_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
  44. BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  45. DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
  46. BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  47. DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_TEAM_NUM, "omp_get_team_num",
  48. BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  49. DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_TEAMS, "omp_get_num_teams",
  50. BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST)
  51. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
  52. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  53. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end",
  54. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  55. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier",
  56. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  57. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER_CANCEL, "GOMP_barrier_cancel",
  58. BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
  59. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait",
  60. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  61. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKYIELD, "GOMP_taskyield",
  62. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  63. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_START, "GOMP_taskgroup_start",
  64. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  65. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKGROUP_END, "GOMP_taskgroup_end",
  66. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  67. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCEL, "GOMP_cancel",
  68. BT_FN_BOOL_INT_BOOL, ATTR_NOTHROW_LEAF_LIST)
  69. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CANCELLATION_POINT, "GOMP_cancellation_point",
  70. BT_FN_BOOL_INT, ATTR_NOTHROW_LEAF_LIST)
  71. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start",
  72. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  73. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end",
  74. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  75. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START,
  76. "GOMP_critical_name_start",
  77. BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
  78. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END,
  79. "GOMP_critical_name_end",
  80. BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST)
  81. /* NOTE: Do not change the order of BUILT_IN_GOMP_LOOP_*_START. They
  82. are used in index arithmetic with enum omp_clause_schedule_kind
  83. in omp-low.c. */
  84. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_START,
  85. "GOMP_loop_static_start",
  86. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  87. ATTR_NOTHROW_LEAF_LIST)
  88. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_START,
  89. "GOMP_loop_dynamic_start",
  90. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  91. ATTR_NOTHROW_LEAF_LIST)
  92. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_START,
  93. "GOMP_loop_guided_start",
  94. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  95. ATTR_NOTHROW_LEAF_LIST)
  96. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START,
  97. "GOMP_loop_runtime_start",
  98. BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
  99. ATTR_NOTHROW_LEAF_LIST)
  100. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
  101. "GOMP_loop_nonmonotonic_dynamic_start",
  102. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  103. ATTR_NOTHROW_LEAF_LIST)
  104. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
  105. "GOMP_loop_nonmonotonic_guided_start",
  106. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  107. ATTR_NOTHROW_LEAF_LIST)
  108. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
  109. "GOMP_loop_ordered_static_start",
  110. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  111. ATTR_NOTHROW_LEAF_LIST)
  112. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
  113. "GOMP_loop_ordered_dynamic_start",
  114. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  115. ATTR_NOTHROW_LEAF_LIST)
  116. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
  117. "GOMP_loop_ordered_guided_start",
  118. BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
  119. ATTR_NOTHROW_LEAF_LIST)
  120. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
  121. "GOMP_loop_ordered_runtime_start",
  122. BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
  123. ATTR_NOTHROW_LEAF_LIST)
  124. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
  125. "GOMP_loop_doacross_static_start",
  126. BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
  127. ATTR_NOTHROW_LEAF_LIST)
  128. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
  129. "GOMP_loop_doacross_dynamic_start",
  130. BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
  131. ATTR_NOTHROW_LEAF_LIST)
  132. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
  133. "GOMP_loop_doacross_guided_start",
  134. BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
  135. ATTR_NOTHROW_LEAF_LIST)
  136. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
  137. "GOMP_loop_doacross_runtime_start",
  138. BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
  139. ATTR_NOTHROW_LEAF_LIST)
  140. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next",
  141. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  142. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next",
  143. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  144. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next",
  145. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  146. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next",
  147. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  148. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
  149. "GOMP_loop_nonmonotonic_dynamic_next",
  150. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  151. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
  152. "GOMP_loop_nonmonotonic_guided_next",
  153. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  154. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
  155. "GOMP_loop_ordered_static_next",
  156. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  157. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
  158. "GOMP_loop_ordered_dynamic_next",
  159. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  160. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
  161. "GOMP_loop_ordered_guided_next",
  162. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  163. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
  164. "GOMP_loop_ordered_runtime_next",
  165. BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST)
  166. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
  167. "GOMP_loop_ull_static_start",
  168. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  169. ATTR_NOTHROW_LEAF_LIST)
  170. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
  171. "GOMP_loop_ull_dynamic_start",
  172. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  173. ATTR_NOTHROW_LEAF_LIST)
  174. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
  175. "GOMP_loop_ull_guided_start",
  176. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  177. ATTR_NOTHROW_LEAF_LIST)
  178. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
  179. "GOMP_loop_ull_runtime_start",
  180. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  181. ATTR_NOTHROW_LEAF_LIST)
  182. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
  183. "GOMP_loop_ull_nonmonotonic_dynamic_start",
  184. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  185. ATTR_NOTHROW_LEAF_LIST)
  186. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
  187. "GOMP_loop_ull_nonmonotonic_guided_start",
  188. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  189. ATTR_NOTHROW_LEAF_LIST)
  190. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
  191. "GOMP_loop_ull_ordered_static_start",
  192. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  193. ATTR_NOTHROW_LEAF_LIST)
  194. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
  195. "GOMP_loop_ull_ordered_dynamic_start",
  196. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  197. ATTR_NOTHROW_LEAF_LIST)
  198. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
  199. "GOMP_loop_ull_ordered_guided_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_ORDERED_RUNTIME_START,
  203. "GOMP_loop_ull_ordered_runtime_start",
  204. BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
  205. ATTR_NOTHROW_LEAF_LIST)
  206. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
  207. "GOMP_loop_ull_doacross_static_start",
  208. BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
  209. ATTR_NOTHROW_LEAF_LIST)
  210. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
  211. "GOMP_loop_ull_doacross_dynamic_start",
  212. BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
  213. ATTR_NOTHROW_LEAF_LIST)
  214. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
  215. "GOMP_loop_ull_doacross_guided_start",
  216. BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
  217. ATTR_NOTHROW_LEAF_LIST)
  218. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
  219. "GOMP_loop_ull_doacross_runtime_start",
  220. BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
  221. ATTR_NOTHROW_LEAF_LIST)
  222. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
  223. "GOMP_loop_ull_static_next",
  224. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  225. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
  226. "GOMP_loop_ull_dynamic_next",
  227. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  228. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
  229. "GOMP_loop_ull_guided_next",
  230. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  231. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
  232. "GOMP_loop_ull_runtime_next",
  233. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  234. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
  235. "GOMP_loop_ull_nonmonotonic_dynamic_next",
  236. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  237. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
  238. "GOMP_loop_ull_nonmonotonic_guided_next",
  239. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  240. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
  241. "GOMP_loop_ull_ordered_static_next",
  242. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  243. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
  244. "GOMP_loop_ull_ordered_dynamic_next",
  245. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  246. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
  247. "GOMP_loop_ull_ordered_guided_next",
  248. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  249. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT,
  250. "GOMP_loop_ull_ordered_runtime_next",
  251. BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST)
  252. /* NOTE: Do not change the order of BUILT_IN_GOMP_PARALLEL_LOOP_*.
  253. They are used in index arithmetic with enum omp_clause_schedule_kind
  254. in omp-low.c. */
  255. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
  256. "GOMP_parallel_loop_static",
  257. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
  258. ATTR_NOTHROW_LIST)
  259. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
  260. "GOMP_parallel_loop_dynamic",
  261. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
  262. ATTR_NOTHROW_LIST)
  263. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
  264. "GOMP_parallel_loop_guided",
  265. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
  266. ATTR_NOTHROW_LIST)
  267. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME,
  268. "GOMP_parallel_loop_runtime",
  269. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
  270. ATTR_NOTHROW_LIST)
  271. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
  272. "GOMP_parallel_loop_nonmonotonic_dynamic",
  273. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
  274. ATTR_NOTHROW_LIST)
  275. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED,
  276. "GOMP_parallel_loop_nonmonotonic_guided",
  277. BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
  278. ATTR_NOTHROW_LIST)
  279. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end",
  280. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  281. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_CANCEL, "GOMP_loop_end_cancel",
  282. BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
  283. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait",
  284. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  285. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start",
  286. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  287. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end",
  288. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  289. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_POST, "GOMP_doacross_post",
  290. BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
  291. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_WAIT, "GOMP_doacross_wait",
  292. BT_FN_VOID_LONG_VAR, ATTR_NOTHROW_LEAF_LIST)
  293. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_POST, "GOMP_doacross_ull_post",
  294. BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
  295. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DOACROSS_ULL_WAIT, "GOMP_doacross_ull_wait",
  296. BT_FN_VOID_ULL_VAR, ATTR_NOTHROW_LEAF_LIST)
  297. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL, "GOMP_parallel",
  298. BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
  299. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK, "GOMP_task",
  300. BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
  301. ATTR_NOTHROW_LIST)
  302. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP, "GOMP_taskloop",
  303. BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
  304. ATTR_NOTHROW_LIST)
  305. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKLOOP_ULL, "GOMP_taskloop_ull",
  306. BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
  307. ATTR_NOTHROW_LIST)
  308. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start",
  309. BT_FN_UINT_UINT, ATTR_NOTHROW_LEAF_LIST)
  310. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next",
  311. BT_FN_UINT, ATTR_NOTHROW_LEAF_LIST)
  312. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS,
  313. "GOMP_parallel_sections",
  314. BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT, ATTR_NOTHROW_LIST)
  315. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end",
  316. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  317. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_CANCEL,
  318. "GOMP_sections_end_cancel",
  319. BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
  320. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT,
  321. "GOMP_sections_end_nowait",
  322. BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  323. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start",
  324. BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST)
  325. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start",
  326. BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST)
  327. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end",
  328. BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST)
  329. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_REGISTER, "GOMP_offload_register_ver",
  330. BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
  331. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_OFFLOAD_UNREGISTER,
  332. "GOMP_offload_unregister_ver",
  333. BT_FN_VOID_UINT_PTR_INT_PTR, ATTR_NOTHROW_LIST)
  334. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET, "GOMP_target_ext",
  335. BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR,
  336. ATTR_NOTHROW_LIST)
  337. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_DATA, "GOMP_target_data_ext",
  338. BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
  339. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_END_DATA, "GOMP_target_end_data",
  340. BT_FN_VOID, ATTR_NOTHROW_LIST)
  341. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_UPDATE, "GOMP_target_update_ext",
  342. BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
  343. ATTR_NOTHROW_LIST)
  344. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA,
  345. "GOMP_target_enter_exit_data",
  346. BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR, ATTR_NOTHROW_LIST)
  347. DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TEAMS, "GOMP_teams",
  348. BT_FN_VOID_UINT_UINT, ATTR_NOTHROW_LIST)
  349. DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DECLARE, "GOACC_declare",
  350. BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, ATTR_NOTHROW_LIST)