]>
Commit | Line | Data |
---|---|---|
1e8e9920 | 1 | /* This file contains the definitions and documentation for the |
2 | OpenMP builtins used in the GNU compiler. | |
fd6481cf | 3 | Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. |
1e8e9920 | 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 | |
8c4c00c1 | 9 | Software Foundation; either version 3, or (at your option) any later |
1e8e9920 | 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 | |
8c4c00c1 | 18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
1e8e9920 | 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", | |
28 | BT_FN_INT, ATTR_CONST_NOTHROW_LIST) | |
29 | DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads", | |
30 | BT_FN_INT, ATTR_CONST_NOTHROW_LIST) | |
31 | ||
32 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start", | |
33 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
34 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end", | |
35 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
36 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier", | |
37 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
fd6481cf | 38 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASKWAIT, "GOMP_taskwait", |
39 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
1e8e9920 | 40 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start", |
41 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
42 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end", | |
43 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
44 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START, | |
45 | "GOMP_critical_name_start", | |
46 | BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LIST) | |
47 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END, | |
48 | "GOMP_critical_name_end", | |
49 | BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LIST) | |
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, | |
56 | ATTR_NOTHROW_LIST) | |
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, | |
60 | ATTR_NOTHROW_LIST) | |
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, | |
64 | ATTR_NOTHROW_LIST) | |
65 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START, | |
66 | "GOMP_loop_runtime_start", | |
67 | BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, | |
68 | ATTR_NOTHROW_LIST) | |
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, | |
72 | ATTR_NOTHROW_LIST) | |
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, | |
76 | ATTR_NOTHROW_LIST) | |
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, | |
80 | ATTR_NOTHROW_LIST) | |
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, | |
84 | ATTR_NOTHROW_LIST) | |
85 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next", | |
86 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
87 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next", | |
88 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
89 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next", | |
90 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
91 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next", | |
92 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
93 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, | |
94 | "GOMP_loop_ordered_static_next", | |
95 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
96 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, | |
97 | "GOMP_loop_ordered_dynamic_next", | |
98 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
99 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, | |
100 | "GOMP_loop_ordered_guided_next", | |
101 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
102 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, | |
103 | "GOMP_loop_ordered_runtime_next", | |
104 | BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST) | |
fd6481cf | 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, | |
108 | ATTR_NOTHROW_LIST) | |
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, | |
112 | ATTR_NOTHROW_LIST) | |
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, | |
116 | ATTR_NOTHROW_LIST) | |
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, | |
120 | ATTR_NOTHROW_LIST) | |
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, | |
124 | ATTR_NOTHROW_LIST) | |
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, | |
128 | ATTR_NOTHROW_LIST) | |
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, | |
132 | ATTR_NOTHROW_LIST) | |
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, | |
136 | ATTR_NOTHROW_LIST) | |
137 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT, "GOMP_loop_ull_static_next", | |
138 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
139 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT, "GOMP_loop_ull_dynamic_next", | |
140 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
141 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT, "GOMP_loop_ull_guided_next", | |
142 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
143 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT, "GOMP_loop_ull_runtime_next", | |
144 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
145 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT, | |
146 | "GOMP_loop_ull_ordered_static_next", | |
147 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
148 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT, | |
149 | "GOMP_loop_ull_ordered_dynamic_next", | |
150 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
151 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT, | |
152 | "GOMP_loop_ull_ordered_guided_next", | |
153 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
154 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT, | |
155 | "GOMP_loop_ull_ordered_runtime_next", | |
156 | BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR, ATTR_NOTHROW_LIST) | |
1e8e9920 | 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, | |
163 | ATTR_NOTHROW_LIST) | |
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, | |
167 | ATTR_NOTHROW_LIST) | |
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, | |
171 | ATTR_NOTHROW_LIST) | |
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, | |
175 | ATTR_NOTHROW_LIST) | |
176 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end", | |
177 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
178 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait", | |
179 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
180 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start", | |
181 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
182 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end", | |
183 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
184 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_START, "GOMP_parallel_start", | |
185 | BT_FN_VOID_OMPFN_PTR_UINT, ATTR_NOTHROW_LIST) | |
186 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_END, "GOMP_parallel_end", | |
187 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
fd6481cf | 188 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_TASK, "GOMP_task", |
189 | BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT, | |
190 | ATTR_NOTHROW_LIST) | |
1e8e9920 | 191 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start", |
192 | BT_FN_UINT_UINT, ATTR_NOTHROW_LIST) | |
193 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next", | |
194 | BT_FN_UINT, ATTR_NOTHROW_LIST) | |
195 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS_START, | |
196 | "GOMP_parallel_sections_start", | |
197 | BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST) | |
198 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end", | |
199 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
200 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT, | |
201 | "GOMP_sections_end_nowait", | |
202 | BT_FN_VOID, ATTR_NOTHROW_LIST) | |
203 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start", | |
204 | BT_FN_BOOL, ATTR_NOTHROW_LIST) | |
205 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start", | |
206 | BT_FN_PTR, ATTR_NOTHROW_LIST) | |
207 | DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end", | |
208 | BT_FN_VOID_PTR, ATTR_NOTHROW_LIST) |