]>
Commit | Line | Data |
---|---|---|
953ff289 DN |
1 | /* This file contains the definitions and documentation for the |
2 | OpenMP builtins used in the GNU compiler. | |
d724c876 | 3 | Copyright (C) 2005, 2007, 2008, 2010 Free Software Foundation, Inc. |
953ff289 DN |
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 | |
9dcd6f09 | 9 | Software Foundation; either version 3, or (at your option) any later |
953ff289 DN |
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 | |
9dcd6f09 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
953ff289 DN |
20 | |
21 | /* Before including this file, you should define a macro: | |
22 | ||
23 | DEF_GOMP_BUILTIN (ENUM, NAME, TYPE, ATTRS) | |
24 | ||
25 | See builtins.def for details. */ | |
26 | ||
27 | DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num", | |
0d6e14fd | 28 | BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
953ff289 | 29 | DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads", |
0d6e14fd | 30 | BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST) |
953ff289 DN |
31 | |
32 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start", | |
0d6e14fd | 33 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 34 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end", |
0d6e14fd | 35 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 36 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier", |
0d6e14fd | 37 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 | 38 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait", |
0d6e14fd | 39 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 40 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start", |
0d6e14fd | 41 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 42 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end", |
0d6e14fd | 43 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
44 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START, |
45 | "GOMP_critical_name_start", | |
0d6e14fd | 46 | BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
47 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END, |
48 | "GOMP_critical_name_end", | |
0d6e14fd | 49 | BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
50 | /* NOTE: Do not change the order of BUILT_IN_GOMP_LOOP_*_START. They |
51 | are used in index arithmetic with enum omp_clause_schedule_kind | |
52 | in omp-low.c. */ | |
53 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_START, | |
54 | "GOMP_loop_static_start", | |
55 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 56 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
57 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_START, |
58 | "GOMP_loop_dynamic_start", | |
59 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 60 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
61 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_START, |
62 | "GOMP_loop_guided_start", | |
63 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 64 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
65 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START, |
66 | "GOMP_loop_runtime_start", | |
67 | BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 68 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
69 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, |
70 | "GOMP_loop_ordered_static_start", | |
71 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 72 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
73 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, |
74 | "GOMP_loop_ordered_dynamic_start", | |
75 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 76 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
77 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, |
78 | "GOMP_loop_ordered_guided_start", | |
79 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 80 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
81 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, |
82 | "GOMP_loop_ordered_runtime_start", | |
83 | BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
0d6e14fd | 84 | ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 85 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next", |
0d6e14fd | 86 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 87 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next", |
0d6e14fd | 88 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 89 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next", |
0d6e14fd | 90 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 91 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next", |
0d6e14fd | 92 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
93 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, |
94 | "GOMP_loop_ordered_static_next", | |
0d6e14fd | 95 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
96 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, |
97 | "GOMP_loop_ordered_dynamic_next", | |
0d6e14fd | 98 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
99 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, |
100 | "GOMP_loop_ordered_guided_next", | |
0d6e14fd | 101 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
102 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, |
103 | "GOMP_loop_ordered_runtime_next", | |
0d6e14fd | 104 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
105 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_START, |
106 | "GOMP_loop_ull_static_start", | |
107 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 108 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
109 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START, |
110 | "GOMP_loop_ull_dynamic_start", | |
111 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 112 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
113 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_START, |
114 | "GOMP_loop_ull_guided_start", | |
115 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 116 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
117 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START, |
118 | "GOMP_loop_ull_runtime_start", | |
119 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 120 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
121 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START, |
122 | "GOMP_loop_ull_ordered_static_start", | |
123 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 124 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
125 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START, |
126 | "GOMP_loop_ull_ordered_dynamic_start", | |
127 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 128 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
129 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START, |
130 | "GOMP_loop_ull_ordered_guided_start", | |
131 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 132 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
133 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START, |
134 | "GOMP_loop_ull_ordered_runtime_start", | |
135 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR, | |
0d6e14fd | 136 | ATTR_NOTHROW_LEAF_LIST) |
a68ab351 | 137 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT, "GOMP_loop_ull_static_next", |
0d6e14fd | 138 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 | 139 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT, "GOMP_loop_ull_dynamic_next", |
0d6e14fd | 140 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 | 141 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT, "GOMP_loop_ull_guided_next", |
0d6e14fd | 142 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 | 143 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT, "GOMP_loop_ull_runtime_next", |
0d6e14fd | 144 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
145 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT, |
146 | "GOMP_loop_ull_ordered_static_next", | |
0d6e14fd | 147 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
148 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT, |
149 | "GOMP_loop_ull_ordered_dynamic_next", | |
0d6e14fd | 150 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
151 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT, |
152 | "GOMP_loop_ull_ordered_guided_next", | |
0d6e14fd | 153 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
154 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT, |
155 | "GOMP_loop_ull_ordered_runtime_next", | |
0d6e14fd | 156 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
157 | /* NOTE: Do not change the order of BUILT_IN_GOMP_PARALLEL_LOOP_*_START. |
158 | They are used in index arithmetic with enum omp_clause_schedule_kind | |
159 | in omp-low.c. */ | |
160 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, | |
161 | "GOMP_parallel_loop_static_start", | |
162 | BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, | |
d724c876 | 163 | ATTR_NOTHROW_LIST) |
953ff289 DN |
164 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, |
165 | "GOMP_parallel_loop_dynamic_start", | |
166 | BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, | |
d724c876 | 167 | ATTR_NOTHROW_LIST) |
953ff289 DN |
168 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, |
169 | "GOMP_parallel_loop_guided_start", | |
170 | BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG, | |
d724c876 | 171 | ATTR_NOTHROW_LIST) |
953ff289 DN |
172 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, |
173 | "GOMP_parallel_loop_runtime_start", | |
174 | BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, | |
d724c876 | 175 | ATTR_NOTHROW_LIST) |
953ff289 | 176 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end", |
0d6e14fd | 177 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 178 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait", |
0d6e14fd | 179 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 180 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start", |
0d6e14fd | 181 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 182 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end", |
0d6e14fd | 183 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 184 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_START, "GOMP_parallel_start", |
d724c876 | 185 | BT_FN_VOID_OMPFN_PTR_UINT, ATTR_NOTHROW_LIST) |
953ff289 | 186 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_END, "GOMP_parallel_end", |
0d6e14fd | 187 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
a68ab351 JJ |
188 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK, "GOMP_task", |
189 | BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT, | |
d724c876 | 190 | ATTR_NOTHROW_LIST) |
953ff289 | 191 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start", |
0d6e14fd | 192 | BT_FN_UINT_UINT, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 193 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next", |
0d6e14fd | 194 | BT_FN_UINT, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
195 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS_START, |
196 | "GOMP_parallel_sections_start", | |
d724c876 | 197 | BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST) |
953ff289 | 198 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end", |
0d6e14fd | 199 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 DN |
200 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT, |
201 | "GOMP_sections_end_nowait", | |
0d6e14fd | 202 | BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 203 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start", |
0d6e14fd | 204 | BT_FN_BOOL, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 205 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start", |
0d6e14fd | 206 | BT_FN_PTR, ATTR_NOTHROW_LEAF_LIST) |
953ff289 | 207 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end", |
0d6e14fd | 208 | BT_FN_VOID_PTR, ATTR_NOTHROW_LEAF_LIST) |