1 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
2 James Norris <jnorris@codesourcery.com>
3 Tom de Vries <tom@codesourcery.com>
4 Julian Brown <julian@codesourcery.com>
5 Cesar Philippidis <cesar@codesourcery.com>
6 Nathan Sidwell <nathan@codesourcery.com>
7 Tobias Burnus <burnus@net-b.de>
9 * Makefile.am (search_path): Add $(top_srcdir)/../include.
10 (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
11 oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
12 oacc-async.c, oacc-plugin.c, oacc-cuda.c.
13 [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
14 Include $(top_srcdir)/plugin/Makefrag.am.
15 (nodist_libsubinclude_HEADERS): Add openacc.h.
16 [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
17 openacc.f90, openacc.mod, openacc_kinds.mod.
18 (omp_lib.mod): Generalize into...
19 (%.mod): ... this new rule.
20 (openacc_kinds.mod, openacc.mod): New rules.
21 * plugin/configfrag.ac: New file.
22 * configure.ac: Move plugin/offloading support into it. Include
23 it. Instantiate testsuite/libgomp-test-support.pt.exp.
24 * plugin/Makefrag.am: New file.
25 * testsuite/Makefile.am (OFFLOAD_TARGETS)
26 (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
28 (libgomp-test-support.exp): New rule.
29 (all-local): Depend on it.
30 * Makefile.in: Regenerate.
31 * testsuite/Makefile.in: Regenerate.
32 * config.h.in: Likewise.
33 * configure: Likewise.
34 * configure.tgt: Harden shell syntax.
35 * env.c: Include "oacc-int.h".
36 (parse_acc_device_type): New function.
37 (gomp_debug_var, goacc_device_type, goacc_device_num): New
39 (initialize_env): Initialize those. Call
40 goacc_runtime_initialize.
41 * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
42 (gomp_fatal): Call gomp_vfatal.
43 * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
44 (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
45 (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
46 (splay_tree_node, splay_tree, splay_tree_key)
47 (struct target_mem_desc, struct splay_tree_key_s)
48 (struct gomp_memory_mapping, struct acc_dispatch_t)
49 (struct gomp_device_descr, gomp_acc_insert_pointer)
50 (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
51 (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
52 (gomp_free_memmap, gomp_fini_device): New declarations.
53 (gomp_vdebug, gomp_debug): New macros.
54 Include "splay-tree.h".
55 * libgomp.map (OACC_2.0): New symbol version. Use for
56 acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
57 acc_set_device_type_h_, acc_get_device_type,
58 acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
59 acc_get_device_num, acc_get_device_num_h_, acc_async_test,
60 acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
61 acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
62 acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
63 acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
64 acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
65 acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
66 acc_copyin_array_h_, acc_present_or_copyin,
67 acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
68 acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
69 acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
70 acc_present_or_create_32_h_, acc_present_or_create_64_h_,
71 acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
72 acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
73 acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
74 acc_update_device, acc_update_device_32_h_,
75 acc_update_device_64_h_, acc_update_device_array_h_,
76 acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
77 acc_update_self_array_h_, acc_map_data, acc_unmap_data,
78 acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
79 acc_is_present_64_h_, acc_is_present_array_h_,
80 acc_memcpy_to_device, acc_memcpy_from_device,
81 acc_get_current_cuda_device, acc_get_current_cuda_context,
82 acc_get_cuda_stream, acc_set_cuda_stream.
83 (GOACC_2.0): New symbol version. Use for GOACC_data_end,
84 GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
85 GOACC_update, GOACC_wait, GOACC_get_thread_num,
86 GOACC_get_num_threads.
87 (GOMP_PLUGIN_1.0): New symbol version. Use for
88 GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
89 GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
90 GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
91 GOMP_PLUGIN_acc_thread.
92 * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
94 * libgomp_g.h (GOACC_data_start, GOACC_data_end)
95 (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
96 (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
97 * splay-tree.h (splay_tree_lookup, splay_tree_insert)
98 (splay_tree_remove): New declarations.
99 (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
100 (splay_tree_remove, splay_tree_lookup): Move into...
101 * splay-tree.c: ... this new file.
102 * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
103 (splay_tree_node, splay_tree, splay_tree_key)
104 (struct target_mem_desc, struct splay_tree_key_s)
105 (struct gomp_device_descr): Don't declare.
106 (num_devices_openmp): New variable.
107 (gomp_get_num_devices ): Use it.
108 (gomp_init_targets_once): New function.
109 (gomp_get_num_devices ): Use it.
110 (get_kind, gomp_copy_from_async, gomp_free_memmap)
111 (gomp_fini_device, gomp_register_image_for_device): New functions.
112 (gomp_map_vars): Add devaddrs parameter.
113 (gomp_update): Add mm parameter.
114 (gomp_init_device): Move most of it into...
115 (gomp_init_tables): ... this new function.
116 (gomp_register_images_for_device): Remove function.
117 (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
118 Make them hidden instead of static.
119 (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
120 (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
121 (GOMP_target_end_data, GOMP_target_update)
122 (gomp_load_plugin_for_device, gomp_target_init): Update for
124 * oacc-async.c: New file.
125 * oacc-cuda.c: Likewise.
126 * oacc-host.c: Likewise.
127 * oacc-init.c: Likewise.
128 * oacc-int.h: Likewise.
129 * oacc-mem.c: Likewise.
130 * oacc-parallel.c: Likewise.
131 * oacc-plugin.c: Likewise.
132 * oacc-plugin.h: Likewise.
133 * oacc-ptx.h: Likewise.
134 * openacc.f90: Likewise.
135 * openacc.h: Likewise.
136 * openacc_lib.h: Likewise.
137 * plugin/plugin-host.c: Likewise.
138 * plugin/plugin-nvptx.c: Likewise.
139 * libgomp-plugin.c: Likewise.
140 * libgomp-plugin.h: Likewise.
141 * libgomp_target.h: Remove file after merging content into the
142 former file. Update all users.
143 * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
144 (offload_targets_s, offload_targets_s_openacc): New variables.
145 (check_effective_target_openacc_nvidia_accel_present)
146 (check_effective_target_openacc_nvidia_accel_selected): New
148 (libgomp_init): Update for OpenACC changes.
149 * testsuite/libgomp-test-support.exp.in: New file.
150 * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
151 * testsuite/libgomp.oacc-c/c.exp: Likewise.
152 * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
153 * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
154 * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
155 * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
156 * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
157 * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
158 * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
159 * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
160 * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
161 * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
162 * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
163 * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
164 * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
165 * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
166 * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
167 * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
168 * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
169 * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
170 * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
171 * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
172 * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
173 * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
174 * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
175 * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
176 * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
177 * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
178 * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
179 * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
180 * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
181 * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
182 * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
183 * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
184 * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
185 * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
186 * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
187 * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
188 * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
189 * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
190 * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
191 * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
192 * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
193 * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
194 * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
195 * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
196 * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
197 * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
198 * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
199 * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
200 * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
201 * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
202 * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
203 * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
204 * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
205 * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
206 * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
207 * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
208 * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
209 * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
210 * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
211 * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
212 * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
213 * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
214 * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
215 * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
216 * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
217 * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
218 * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
219 * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
220 * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
221 * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
222 * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
223 * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
224 * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
225 * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
226 * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
227 * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
228 * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
229 * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
230 * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
231 * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
232 * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
233 * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
234 * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
235 * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
236 * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
237 * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
238 * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
239 * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
240 * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
241 * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
242 * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
243 * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
244 * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
245 * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
246 * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
247 * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
248 * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
249 * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
250 * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
251 * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
252 * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
253 * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
254 * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
255 * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
256 * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
257 * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
258 * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
259 * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
260 * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
261 * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
262 * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
263 * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
264 * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
265 * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
266 * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
267 * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
268 * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
269 * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
270 * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
271 * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
272 * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
273 * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
274 * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
275 * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
276 * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
277 * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
278 * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
279 * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
280 * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
281 * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
282 * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
283 * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
284 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
285 * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
286 * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
287 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
288 * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
289 * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
291 * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
292 * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
293 * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
294 * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
295 * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
296 * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
297 * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
298 * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
299 * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
300 * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
301 * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
302 * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
303 * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
304 * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
305 * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
306 * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
307 * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
308 * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
309 * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
310 * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
311 * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
312 * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
313 * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
314 * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
315 * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
316 * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
317 * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
318 * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
319 * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
320 * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
321 * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
322 * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
323 * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
324 * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
325 * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
326 * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
327 * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
328 * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
329 * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
330 * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
331 * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
332 * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
333 * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
334 * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
335 * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
336 * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
337 * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
338 * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
339 * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
340 * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
341 * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
342 * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
343 * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
344 * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
345 * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
346 * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
347 * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
348 * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
349 * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
350 * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
352 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
353 Julian Brown <julian@codesourcery.com>
354 David Malcolm <dmalcolm@redhat.com>
356 * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
357 to "GNU Offloading and Multi Processing Runtime Library". Change
359 * configure: Regenerate.
360 * libgomp.texi: Update.
362 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
364 * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
366 * configure: Regenerate.
368 * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
369 "intelmic" in $offload_targets.
371 2015-01-05 Jakub Jelinek <jakub@redhat.com>
373 Update copyright years.
375 * libgomp.texi: Bump @copying's copyright year.
377 2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
379 * testsuite/lib/libgomp.exp: Load target-utils.exp.
380 Move load of target-supportes.exp earlier.
382 2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
384 * testsuite/libgomp.c/target-9.c: New test.
386 2014-12-09 Varvara Rainchik <varvara.rainchik@intel.com>
388 * config.h.in: Regenerate.
389 * configure: Regenerate.
390 * configure.ac: Add GCC_CHECK_EMUTLS.
391 * libgomp.h: Add check for USE_EMUTLS: this case
392 is equal to HAVE_TLS.
395 2014-12-03 Uros Bizjak <ubizjak@gmail.com>
397 * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
399 2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
400 Ilya Verbin <ilya.verbin@intel.com>
402 * testsuite/libgomp.c/target-critical-1.c: New test.
404 2014-11-26 Jakub Jelinek <jakub@redhat.com>
406 * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
407 to dg-options unless expensive testing is on.
408 (TESTITERS): Define to N if not defined.
409 (main): Use TESTITERS instead of N.
410 * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
411 dg-additional-options depending on whether expensive testing is on.
412 * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
413 Decrease N to 100000 and CHUNKSZ to 10000.
415 2014-11-24 Jakub Jelinek <jakub@redhat.com>
418 * testsuite/libgomp.fortran/pr63938-1.f90: New test.
419 * testsuite/libgomp.fortran/pr63938-2.f90: New test.
421 2014-11-21 Steve Ellcey <sellcey@imgtec.com>
423 * config/linux/mips/futex.h (SYS_futex): Define if not already done.
425 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
428 * configure: Regenerated.
430 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
432 * testsuite/libgomp.c/examples-4/e.53.5.c: Require
433 vect_simd_clones effective target.
434 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
436 2014-11-14 Jakub Jelinek <jakub@redhat.com>
438 * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
440 * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
441 instead of 32 as block_size.
443 2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
444 Ilya Verbin <ilya.verbin@intel.com>
446 * Makefile.in: Regenerate.
447 * configure: Regenerate.
448 * configure.ac: Set up offload_additional_options,
449 offload_additional_lib_paths and offload_targets.
450 * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
451 OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
452 * testsuite/Makefile.in: Regenerate.
453 * testsuite/lib/libgomp.exp (libgomp_init): Append
454 offload_additional_lib_paths to LD_LIBRARY_PATH. Append
455 offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic
456 build directory to LD_LIBRARY_PATH for intelmic offload targets.
458 2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
459 Ilya Verbin <ilya.verbin@intel.com>
460 Kirill Yukhin <kirill.yukhin@intel.com>
461 Ilya Tocar <ilya.tocar@intel.com>
463 * testsuite/lib/libgomp.exp
464 (check_effective_target_offload_device): New.
465 * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
466 * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
467 * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
468 * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
469 * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
470 * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
471 * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
472 * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
473 * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
474 * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
475 * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
476 * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
477 * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
478 * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
479 * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
480 * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
481 * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
482 * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
483 * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
484 * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
485 * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
486 * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
487 * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
488 * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
489 * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
490 * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
491 * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
492 * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
493 * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
494 * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
495 * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
496 * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
497 * testsuite/libgomp.c/target-7.c: Fix test.
498 * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
499 * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
500 * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
501 * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
502 * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
503 * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
504 * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
505 * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
506 * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
507 * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
508 * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
509 * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
510 * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
511 * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
512 * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
513 * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
514 * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
515 * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
516 * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
517 * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
518 * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
519 * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
520 * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
521 * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
522 * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
523 * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
524 * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
525 * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
526 * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
527 * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
528 * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
530 2014-11-13 Jakub Jelinek <jakub@redhat.com>
531 Ilya Verbin <ilya.verbin@intel.com>
532 Thomas Schwinge <thomas@codesourcery.com>
533 Andrey Turetskiy <andrey.turetskiy@intel.com>
535 * libgomp.map (GOMP_4.0.1): New symbol version.
536 Add GOMP_offload_register.
537 * libgomp_target.h: New file.
538 * splay-tree.h: New file.
539 * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
540 (gomp_target_init): New forward declaration.
541 (gomp_is_initialized): New static variable.
542 (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
543 (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
545 (offload_images, num_offload_images, devices, num_devices): New static
547 (splay_compare): New static function.
548 (struct gomp_device_descr): New structure.
549 (gomp_get_num_devices): Call gomp_target_init.
550 (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
551 (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
552 (GOMP_offload_register): New function.
553 (GOMP_target): Arrange for host callback to be performed in a separate
554 initial thread and contention group, inheriting ICVs from
555 gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
556 Add device initialization and lookup for target function in splay tree.
557 (GOMP_target_data): Add device initialization and call gomp_map_vars.
558 (GOMP_target_end_data): Call gomp_unmap_vars.
559 (GOMP_target_update): Add device initialization and call gomp_update.
560 (gomp_load_plugin_for_device, gomp_register_images_for_device)
561 (gomp_target_init): New static functions.
563 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
564 Thomas Schwinge <thomas@codesourcery.com>
565 Ilya Verbin <ilya.verbin@intel.com>
566 Andrey Turetskiy <andrey.turetskiy@intel.com>
568 * config.h.in: Regenerate.
569 * configure: Regenerate.
570 * configure.ac: Check for libdl, required for plugin support.
571 (PLUGIN_SUPPORT): Define if plugins are supported.
572 (enable_offload_targets): Support Intel MIC targets.
573 (OFFLOAD_TARGETS): List of target names suitable for offloading.
575 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
578 * configure: Regenerate.
580 2014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
582 * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
584 2014-10-06 Marek Polacek <polacek@redhat.com>
586 * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
587 * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
588 * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
589 * testsuite/libgomp.c/thread-limit-2.c: Likewise.
591 2014-10-06 Marek Polacek <polacek@redhat.com>
593 * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
594 * testsuite/libgomp.c/nqueens-1.c: Likewise.
595 * testsuite/libgomp.c/pr26943-3.c: Likewise.
596 * testsuite/libgomp.c/pr26943-4.c: Likewise.
597 * testsuite/libgomp.c/pr36802-2.c: Likewise.
598 * testsuite/libgomp.c/pr36802-3.c: Likewise.
599 * testsuite/libgomp.c/thread-limit-1.c: Likewise.
600 * testsuite/libgomp.c/thread-limit-2.c: Likewise.
601 * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
602 * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
603 * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
604 * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
605 * testsuite/libgomp.c/omp-single-1.c: Likewise.
606 * testsuite/libgomp.c/omp-single-2.c: Likewise.
607 * testsuite/libgomp.c/omp_matvec.c: Likewise.
608 * testsuite/libgomp.c/omp_workshare3.c: Likewise.
609 * testsuite/libgomp.c/omp_workshare4.c: Likewise.
610 * testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit
613 2014-10-03 Jakub Jelinek <jakub@redhat.com>
616 * testsuite/libgomp.c/pr61200.c: New test.
618 2014-09-18 Jakub Jelinek <jakub@redhat.com>
621 * testsuite/libgomp.c++/pr63248.C: New test.
623 2014-08-04 Jakub Jelinek <jakub@redhat.com>
625 * task.c (GOMP_taskgroup_end): If taskgroup->num_children
626 is not zero, but taskgroup->children is NULL and there are
627 any task->children, schedule those instead of waiting.
628 * testsuite/libgomp.c/depend-6.c: New test.
629 * testsuite/libgomp.c/depend-7.c: New test.
630 * testsuite/libgomp.c/depend-8.c: New test.
631 * testsuite/libgomp.c/depend-9.c: New test.
632 * testsuite/libgomp.c/depend-10.c: New test.
634 2014-08-01 Jakub Jelinek <jakub@redhat.com>
636 * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
637 (struct gomp_taskwait): New type.
638 (struct gomp_task): Add taskwait and parent_depends_on, remove
639 in_taskwait and taskwait_sem fields.
640 (gomp_finish_task): Don't destroy taskwait_sem.
641 * task.c (gomp_init_task): Don't init in_taskwait, instead init
642 taskwait and parent_depends_on.
643 (GOMP_task): For if (0) tasks with depend clause that depend on
644 earlier tasks don't defer them, instead call
645 gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
646 Initialize redundant_out field, for redundant out entries just
647 move them at the end of linked list instead of removing them
648 completely, and set redundant_out flag instead of redundant.
649 (gomp_task_run_pre): Update last_parent_depends_on if scheduling
651 (gomp_task_run_post_handle_dependers): If parent is in
652 gomp_task_maybe_wait_for_dependencies and newly runnable task
653 is not parent_depends_on, queue it in parent->children linked
654 list after all runnable tasks with parent_depends_on set.
655 Adjust for addition of taskwait indirection.
656 (gomp_task_run_post_remove_parent): If parent is in
657 gomp_task_maybe_wait_for_dependencies and task to be removed
658 is parent_depends_on, decrement n_depend and if needed awake
659 parent. Adjust for addition of taskwait indirection.
660 (GOMP_taskwait): Adjust for addition of taskwait indirection.
661 (gomp_task_maybe_wait_for_dependencies): New function.
662 * testsuite/libgomp.c/depend-5.c: New test.
664 2014-07-13 Tobias Burnus <burnus@net-b.de>
666 * testsuite/libgomp.fortran/pr34020.f90: Make compile
667 with TS 18508/Fortran 2015.
669 2014-07-06 Marek Polacek <polacek@redhat.com>
672 * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
674 2014-07-03 Jakub Jelinek <jakub@redhat.com>
676 * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
677 matches regex $lang_source_re, add $lang_include_flags to options.
678 * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
679 * testsuite/libgomp.c++/c++.exp: Likewise.
680 * testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re
681 and lang_include_flags instead of adding -fintrinsic-modules-path= to
683 * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
685 2014-07-03 Thomas Schwinge <thomas@codesourcery.com>
687 * testsuite/libgomp.fortran/fortran.exp: Explain
688 gfortran-dg-runtest usage.
690 2014-06-25 Jakub Jelinek <jakub@redhat.com>
692 * testsuite/libgomp.fortran/simd5.f90: New test.
693 * testsuite/libgomp.fortran/simd6.f90: New test.
694 * testsuite/libgomp.fortran/simd7.f90: New test.
696 2014-06-24 Jakub Jelinek <jakub@redhat.com>
698 * testsuite/libgomp.c/for-2.c: Define SC to static for
699 #pragma omp for simd testing.
700 * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
701 (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
703 * testsuite/libgomp.c/simd-14.c: New test.
704 * testsuite/libgomp.c/simd-15.c: New test.
705 * testsuite/libgomp.c/simd-16.c: New test.
706 * testsuite/libgomp.c/simd-17.c: New test.
707 * testsuite/libgomp.c++/for-10.C: Define SC to static for
708 #pragma omp for simd testing.
709 * testsuite/libgomp.c++/simd10.C: New test.
710 * testsuite/libgomp.c++/simd11.C: New test.
711 * testsuite/libgomp.c++/simd12.C: New test.
712 * testsuite/libgomp.c++/simd13.C: New test.
714 * testsuite/libgomp.fortran/aligned1.f03: New test.
715 * testsuite/libgomp.fortran/nestedfn5.f90: New test.
716 * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
717 tasks with !$omp parallel !$omp single.
718 * testsuite/libgomp.fortran/target8.f90: New test.
719 * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
720 not to use trim in the combiner, instead call elemental function.
721 (fn): New elemental function.
722 * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
724 * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
726 * testsuite/libgomp.fortran/udr12.f90: New test.
727 * testsuite/libgomp.fortran/udr13.f90: New test.
728 * testsuite/libgomp.fortran/udr14.f90: New test.
729 * testsuite/libgomp.fortran/udr15.f90: New test.
731 2014-06-18 Jakub Jelinek <jakub@redhat.com>
733 * omp_lib.f90.in (openmp_version): Set to 201307.
734 * omp_lib.h.in (openmp_version): Likewise.
735 * testsuite/libgomp.c/target-8.c: New test.
736 * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
737 and inbranch clauses.
738 * testsuite/libgomp.fortran/depend-3.f90: New test.
739 * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
741 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
742 * testsuite/libgomp.fortran/target1.f90: New test.
743 * testsuite/libgomp.fortran/target2.f90: New test.
744 * testsuite/libgomp.fortran/target3.f90: New test.
745 * testsuite/libgomp.fortran/target4.f90: New test.
746 * testsuite/libgomp.fortran/target5.f90: New test.
747 * testsuite/libgomp.fortran/target6.f90: New test.
748 * testsuite/libgomp.fortran/target7.f90: New test.
750 2014-06-10 Jakub Jelinek <jakub@redhat.com>
753 * testsuite/libgomp.fortran/allocatable9.f90: New test.
754 * testsuite/libgomp.fortran/allocatable10.f90: New test.
755 * testsuite/libgomp.fortran/allocatable11.f90: New test.
756 * testsuite/libgomp.fortran/allocatable12.f90: New test.
757 * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
758 * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
759 * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
760 * testsuite/libgomp.fortran/associate1.f90: New test.
761 * testsuite/libgomp.fortran/associate2.f90: New test.
762 * testsuite/libgomp.fortran/procptr1.f90: New test.
764 2014-06-06 Jakub Jelinek <jakub@redhat.com>
766 * testsuite/libgomp.fortran/simd1.f90: New test.
767 * testsuite/libgomp.fortran/udr1.f90: New test.
768 * testsuite/libgomp.fortran/udr2.f90: New test.
769 * testsuite/libgomp.fortran/udr3.f90: New test.
770 * testsuite/libgomp.fortran/udr4.f90: New test.
771 * testsuite/libgomp.fortran/udr5.f90: New test.
772 * testsuite/libgomp.fortran/udr6.f90: New test.
773 * testsuite/libgomp.fortran/udr7.f90: New test.
774 * testsuite/libgomp.fortran/udr8.f90: New test.
775 * testsuite/libgomp.fortran/udr9.f90: New test.
776 * testsuite/libgomp.fortran/udr10.f90: New test.
777 * testsuite/libgomp.fortran/udr11.f90: New test.
779 2014-05-27 Uros Bizjak <ubizjak@gmail.com>
781 * testsuite/libgomp.fortran/declare-simd-1.f90: Require
782 vect_simd_clones effective target.
783 * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
785 2014-05-21 Jakub Jelinek <jakub@redhat.com>
788 * testsuite/libgomp.c++/simd-9.C: New test.
790 2014-05-18 Uros Bizjak <ubizjak@gmail.com>
792 * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
793 (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
794 texts according to their @menu entry positions.
796 2014-05-11 Jakub Jelinek <jakub@redhat.com>
798 * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
799 * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
800 * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
801 * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
802 * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
803 * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
804 * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
805 * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
806 * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
807 * testsuite/libgomp.fortran/depend-1.f90: New test.
808 * testsuite/libgomp.fortran/depend-2.f90: New test.
809 * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
810 * testsuite/libgomp.fortran/simd1.f90: New test.
811 * testsuite/libgomp.fortran/simd2.f90: New test.
812 * testsuite/libgomp.fortran/simd3.f90: New test.
813 * testsuite/libgomp.fortran/simd4.f90: New test.
814 * testsuite/libgomp.fortran/taskgroup1.f90: New test.
816 2014-05-02 Jakub Jelinek <jakub@redhat.com>
818 * testsuite/libgomp.c/simd-10.c: New test.
819 * testsuite/libgomp.c/simd-11.c: New test.
820 * testsuite/libgomp.c/simd-12.c: New test.
821 * testsuite/libgomp.c/simd-13.c: New test.
823 2014-04-24 Jakub Jelinek <jakub@redhat.com>
825 * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
826 atomic type clauses in any order and optional comma in between.
827 * testsuite/libgomp.c++/atomic-15.C: Likewise.
828 * testsuite/libgomp.c/atomic-17.c: Likewise.
830 * testsuite/libgomp.c/simd-7.c: New test.
831 * testsuite/libgomp.c/simd-8.c: New test.
832 * testsuite/libgomp.c/simd-9.c: New test.
833 * testsuite/libgomp.c/loop-16.c: New test.
835 2014-04-02 Richard Henderson <rth@redhat.com>
837 * config/linux/futex.h (futex_wait): Get error value from errno.
838 (futex_wake): Likewise.
840 2014-03-25 Jakub Jelinek <jakub@redhat.com>
843 * testsuite/libgomp.c++/udr-11.C: New test.
844 * testsuite/libgomp.c++/udr-12.C: New test.
845 * testsuite/libgomp.c++/udr-13.C: New test.
846 * testsuite/libgomp.c++/udr-14.C: New test.
847 * testsuite/libgomp.c++/udr-15.C: New test.
848 * testsuite/libgomp.c++/udr-16.C: New test.
849 * testsuite/libgomp.c++/udr-17.C: New test.
850 * testsuite/libgomp.c++/udr-18.C: New test.
851 * testsuite/libgomp.c++/udr-19.C: New test.
853 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
855 Update copyright years
857 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
859 * hashtab.h: Use the standard form for the copyright notice.
861 2014-01-02 Tobias Burnus <burnus@net-b.de>
863 * libgomp.texi: Bump @copying's copyright year.
865 2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
867 * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
868 alloca () with __builtin_alloca ().
869 * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
870 * testsuite/libgomp.c/lock-3.c: Likewise.
871 * testsuite/libgomp.c/pr48591.c: Likewise.
873 2013-12-17 Jakub Jelinek <jakub@redhat.com>
876 * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
879 2013-12-16 Jakub Jelinek <jakub@redhat.com>
882 * testsuite/libgomp.c/pr58756.c: New test.
884 2013-12-12 Jakub Jelinek <jakub@redhat.com>
887 * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
890 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
892 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
894 * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
895 * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
896 * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
897 * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
900 * libgomp_g.h: Include <stddef.h> for size_t.
902 * libgomp.spec.in: Update comment about libgomp's dependencies.
903 * configure.ac: Likewise.
904 * configure: Regenerate.
906 2013-10-16 Tobias Burnus <burnus@net-b.de>
908 * libgomp.texi: (Runtime Library Routines): Update references for
909 OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
910 omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
911 omp_get_team_num, omp_is_initial_device, omp_set_default_device.
912 (Environment Variables): Update references for OpenMP 4.0. Add
913 OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
914 Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
917 2013-10-14 Jakub Jelinek <jakub@redhat.com>
919 * env.c (parse_bind_var): Initialize value to avoid
920 (false positive) warning.
922 2013-10-12 Jakub Jelinek <jakub@redhat.com>
925 * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
927 (gomp_init_num_threads): Move i variable declaration into
928 #ifdef CPU_ALLOC_SIZE block.
929 * config/linux/affinity.c (gomp_affinity_init_level): Test
930 gomp_places_list_len == 0 rather than gomp_places_list == 0
931 when checking for topology reading error.
932 * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
933 * env.c (parse_affinity): Add ignore argument, if true, don't populate
934 gomp_places_list, only parse env var and always return false.
935 (parse_places_var): Likewise. Don't check gomp_global_icv.bind_var.
936 (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
937 vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
938 and either of these variables were parsed correctly into a places
941 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
942 Jakub Jelinek <jakub@redhat.com>
944 * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
946 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
947 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
948 * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
949 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
950 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
951 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
952 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
953 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
955 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
957 * Makefile.am (omp_lib.mod): Streamline rule.
958 * Makefile.in: Regenerate.
960 * libgomp.texi (Runtime Library Routines): C linkage, don't throw
963 * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
964 * testsuite/libgomp.fortran/lib1.f90: Likewise.
965 * testsuite/libgomp.fortran/lib2.f: Likewise.
966 * testsuite/libgomp.fortran/lib3.f: Likewise.
968 * configure.ac: Typo fix.
969 * configure: Regenerate.
971 * testsuite/libgomp.fortran/openmp_version-1.f: New file.
972 * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
974 * omp.h.in: Don't touch the user's namespace.
976 2013-10-11 Jakub Jelinek <jakub@redhat.com>
977 Tobias Burnus <burnus@net-b.de>
978 Richard Henderson <rth@redhat.com>
980 * target.c: New file.
981 * Makefile.am (libgomp_la_SOURCES): Add target.c.
982 * Makefile.in: Regenerated.
983 * libgomp_g.h (GOMP_task): Add depend argument.
984 (GOMP_barrier_cancel, GOMP_loop_end_cancel,
985 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
986 GOMP_target_end_data, GOMP_target_update, GOMP_teams,
987 GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
988 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
989 GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
990 GOMP_taskgroup_start, GOMP_taskgroup_end,
991 GOMP_parallel_sections): New prototypes.
992 * fortran.c (omp_is_initial_device): Add ialias_redirect.
993 (omp_is_initial_device_): New function.
994 (ULP, STR1, STR2, ialias_redirect): Removed.
995 (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
996 omp_set_default_device_8_, omp_get_default_device_,
997 omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
999 * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1000 GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1001 GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
1003 (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
1004 omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
1005 omp_set_default_device, omp_set_default_device_,
1006 omp_set_default_device_8_, omp_get_default_device,
1007 omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
1008 omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
1009 omp_get_team_num_): Export @@OMP_4.0.
1010 * team.c (struct gomp_thread_start_data): Add place field.
1011 (gomp_thread_start): Clear thr->thread_pool and
1012 thr->task before returning. Use gomp_team_barrier_wait_final
1013 instead of gomp_team_barrier_wait. Initialize thr->place.
1014 (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
1015 team_cancelled and task_queued_count fields.
1016 (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
1017 before calling pthread_exit.
1018 (gomp_free_thread): No longer static. Use
1019 gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
1020 (gomp_team_start): Add flags argument. Set
1021 thr->thread_pool->threads_busy to nthreads immediately after creating
1022 new pool. Use gomp_managed_threads_lock instead of
1023 gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
1024 (gomp_team_end): Use gomp_managed_threads_lock instead of
1025 gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
1026 of gomp_team_barrier_wait. If team->team_cancelled, call
1027 gomp_fini_worshare on ws chain starting at team->work_shares_to_free
1028 rather than thr->ts.work_share.
1029 (initialize_team): Don't call gomp_sem_init here.
1030 * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
1032 (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
1033 * env.c (gomp_global_icv): Add default_device_var, target_data and
1034 bind_var initializers.
1035 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1036 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1037 gomp_places_list_len): New variables.
1038 (parse_bind_var, parse_one_place, parse_places_var): New functions.
1039 (parse_affinity): Rewritten to construct OMP_PLACES list with unit
1041 (gomp_cancel_var): New global variable.
1042 (parse_int): New function.
1043 (handle_omp_display_env): New function.
1044 (initialize_env): Use it. Initialize default_device_var.
1045 Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
1046 OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
1047 OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
1048 been successfully parsed (and call gomp_init_affinity in that case).
1049 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1050 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1051 omp_get_team_num, omp_is_initial_device): New functions.
1052 * libgomp.h: Include stdlib.h.
1053 (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
1055 (struct target_mem_desc): Forward declare.
1056 (struct gomp_task_icv): Add default_device_var, target_data, bind_var
1057 and thread_limit_var fields.
1058 (gomp_get_num_devices): New prototype.
1059 (gomp_cancel_var): New extern decl.
1060 (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
1061 team_cancelled and task_queued_count fields. Add comments about
1062 task_{,queued_,running_}count.
1063 (gomp_cancel_kind): New enum.
1064 (gomp_work_share_end_cancel): New prototype.
1065 (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
1066 copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
1068 (struct gomp_taskgroup): New type.
1069 (struct gomp_task_depend_entry,
1070 struct gomp_dependers_vec): New types.
1071 (gomp_finish_task): Free depend_hash if non-NULL.
1072 (struct gomp_team_state): Add place_partition_off
1073 and place_partition_len fields.
1074 (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1075 gomp_places_list_len): New extern decls.
1076 (struct gomp_thread): Add place field.
1077 (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1078 (gomp_init_thread_affinity): Add place argument.
1079 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1080 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1081 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1082 gomp_affinity_init_level, gomp_affinity_print_place): New
1084 (gomp_team_start): Add flags argument.
1085 (gomp_thread_limit_var, gomp_remaining_threads_count,
1086 gomp_remaining_threads_lock): Remove.
1087 (gomp_managed_threads_lock): New variable.
1088 (struct gomp_thread_pool): Add threads_busy field.
1089 (gomp_free_thread): New prototype.
1090 * task.c: Include hashtab.h.
1091 (hash_entry_type): New typedef.
1092 (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
1093 (gomp_init_task): Clear dependers, depend_hash, depend_count,
1094 copy_ctors_done and taskgroup fields.
1095 (GOMP_task): Add depend argument, handle depend clauses. If
1096 gomp_team_barrier_cancelled or if it's taskgroup has been
1097 cancelled, don't queue or start new tasks. Set copy_ctors_done
1098 field if needed. Initialize taskgroup field. If copy_ctors_done
1099 and already cancelled, don't discard the task. If taskgroup is
1100 non-NULL, enqueue the task into taskgroup queue. Increment
1101 num_children field in taskgroup. Increment task_queued_count.
1102 (gomp_task_run_pre, gomp_task_run_post_remove_parent,
1103 gomp_task_run_post_remove_taskgroup): New inline functions.
1104 (gomp_task_run_post_handle_depend_hash,
1105 gomp_task_run_post_handle_dependers,
1106 gomp_task_run_post_handle_depend): New functions.
1107 (GOMP_taskwait): Use them. If more than one new tasks
1108 have been queued, wake other threads if needed.
1109 (gomp_barrier_handle_tasks): Likewise. If
1110 gomp_team_barrier_cancelled, don't start any new tasks, just free
1112 (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
1114 (omp_proc_bind_kind, omp_proc_bind_false,
1115 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1116 omp_proc_bind_spread): New params.
1117 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1118 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1119 omp_get_team_num, omp_is_initial_device): New interfaces.
1120 (omp_get_dynamic, omp_get_nested, omp_in_parallel,
1121 omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
1122 omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
1123 omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
1124 omp_get_team_size, omp_get_active_level, omp_in_final): Remove
1125 useless use omp_lib_kinds.
1126 * omp.h.in (omp_proc_bind_t): New typedef.
1127 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1128 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1129 omp_get_team_num, omp_is_initial_device): New prototypes.
1130 * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
1131 through to gomp_team_start.
1132 (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
1133 GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
1134 Adjust gomp_parallel_loop_start callers.
1135 (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1136 GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1137 GOMP_loop_end_cancel): New functions.
1138 (GOMP_parallel_end): Add ialias_redirect.
1139 * hashtab.h: New file.
1140 * libgomp.texi (Environment Variables): Minor cleanup,
1141 update section refs to OpenMP 4.0rc2.
1142 (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
1143 environment variables.
1144 * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
1145 team->work_shares_to_free to thr->ts.work_share before calling
1147 (gomp_work_share_end_cancel): New function.
1148 * config/linux/proc.c: Include errno.h.
1149 (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
1150 (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
1151 sizeof (cpu_set_t) to determine number of iterations. Fix up check
1152 extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
1153 gomp_cpuset_size is sizeof (cpu_set_t).
1154 (gomp_init_num_threads): Initialize gomp_cpuset_size,
1155 gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
1156 of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
1157 to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
1158 contain any logical CPUs.
1159 (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
1160 is NULL. Use gomp_cpusetp instead of &cpuset and pass
1161 gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
1162 pthread_getaffinity_np. Check gomp_places_list instead of
1163 gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
1164 * config/linux/bar.c (gomp_barrier_wait_end,
1165 gomp_barrier_wait_last): Use BAR_* defines.
1166 (gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
1167 from state where needed. Set work_share_cancelled to 0 on last
1169 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
1170 gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
1172 * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
1173 Add cpusetsize argument.
1174 (gomp_cpuset_size, gomp_cpusetp): Declare.
1175 * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
1176 (affinity_counter): Remove.
1177 (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
1178 if CPU_ALLOC_SIZE isn't defined.
1179 (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
1180 silently create OMP_PLACES=threads, if it is non-NULL afterwards,
1181 bind current thread to the first place.
1182 (gomp_init_thread_affinity): Rewritten. Add place argument, just
1183 pthread_setaffinity_np to gomp_places_list[place].
1184 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1185 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1186 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1187 gomp_affinity_init_level, gomp_affinity_print_place): New functions.
1188 * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1189 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1190 (gomp_barrier_t): Add awaited_final field.
1191 (gomp_barrier_init): Initialize awaited_final field.
1192 (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
1193 gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
1195 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
1197 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
1198 gomp_team_barrier_cancelled): New inline functions.
1199 (gomp_barrier_last_thread,
1200 gomp_team_barrier_set_task_pending,
1201 gomp_team_barrier_clear_task_pending,
1202 gomp_team_barrier_set_waiting_for_tasks,
1203 gomp_team_barrier_waiting_for_tasks,
1204 gomp_team_barrier_done): Use BAR_* defines.
1205 * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
1206 (gomp_barrier_wait_end): Use BAR_* defines.
1207 (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
1208 Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
1210 (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
1211 gomp_team_barrier_cancel): New functions.
1212 * config/posix/affinity.c (gomp_init_thread_affinity): Add place
1214 (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1215 gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1216 gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1217 gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
1218 * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1219 BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1220 (gomp_barrier_t): Add cancellable field.
1221 (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
1222 gomp_team_barrier_cancel): New prototypes.
1223 (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
1224 (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
1225 gomp_team_barrier_cancelled): New inline functions.
1226 (gomp_barrier_wait_start, gomp_barrier_last_thread,
1227 gomp_team_barrier_set_task_pending,
1228 gomp_team_barrier_clear_task_pending,
1229 gomp_team_barrier_set_waiting_for_tasks,
1230 gomp_team_barrier_waiting_for_tasks,
1231 gomp_team_barrier_done): Use BAR_* defines.
1232 * barrier.c (GOMP_barrier_cancel): New function.
1233 * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
1234 omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1235 omp_proc_bind_spread): New params.
1236 (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1237 omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1238 omp_get_team_num, omp_is_initial_device): New externals.
1239 * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
1241 (gomp_resolve_num_threads): Adjust for thread_limit now being in
1242 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
1243 infinity. If not nested, just return minimum of max_num_threads
1244 and icv->thread_limit_var and if thr->thread_pool, set threads_busy
1245 to the returned value. Otherwise, don't update atomically
1246 gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
1247 (GOMP_parallel_end): Adjust for thread_limit now being in
1248 icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
1249 infinity. Adjust threads_busy in the pool rather than
1250 gomp_remaining_threads_count. Remember team->nthreads and call
1251 gomp_team_end before adjusting threads_busy, if not nested
1252 afterwards, just set it to 1 non-atomically. Add ialias.
1253 (GOMP_parallel_start): Adjust gomp_team_start caller.
1254 * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
1255 * testsuite/libgomp.c/affinity-1.c: New test.
1256 * testsuite/libgomp.c/atomic-15.c: New test.
1257 * testsuite/libgomp.c/atomic-16.c: New test.
1258 * testsuite/libgomp.c/atomic-17.c: New test.
1259 * testsuite/libgomp.c/cancel-for-1.c: New test.
1260 * testsuite/libgomp.c/cancel-for-2.c: New test.
1261 * testsuite/libgomp.c/cancel-parallel-1.c: New test.
1262 * testsuite/libgomp.c/cancel-parallel-2.c: New test.
1263 * testsuite/libgomp.c/cancel-parallel-3.c: New test.
1264 * testsuite/libgomp.c/cancel-sections-1.c: New test.
1265 * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
1266 * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
1267 * testsuite/libgomp.c/depend-1.c: New test.
1268 * testsuite/libgomp.c/depend-2.c: New test.
1269 * testsuite/libgomp.c/depend-3.c: New test.
1270 * testsuite/libgomp.c/depend-4.c: New test.
1271 * testsuite/libgomp.c/for-1.c: New test.
1272 * testsuite/libgomp.c/for-1.h: New file.
1273 * testsuite/libgomp.c/for-2.c: New test.
1274 * testsuite/libgomp.c/for-2.h: New file.
1275 * testsuite/libgomp.c/for-3.c: New test.
1276 * testsuite/libgomp.c/pr58392.c: New test.
1277 * testsuite/libgomp.c/simd-1.c: New test.
1278 * testsuite/libgomp.c/simd-2.c: New test.
1279 * testsuite/libgomp.c/simd-3.c: New test.
1280 * testsuite/libgomp.c/simd-4.c: New test.
1281 * testsuite/libgomp.c/simd-5.c: New test.
1282 * testsuite/libgomp.c/simd-6.c: New test.
1283 * testsuite/libgomp.c/target-1.c: New test.
1284 * testsuite/libgomp.c/target-2.c: New test.
1285 * testsuite/libgomp.c/target-3.c: New test.
1286 * testsuite/libgomp.c/target-4.c: New test.
1287 * testsuite/libgomp.c/target-5.c: New test.
1288 * testsuite/libgomp.c/target-6.c: New test.
1289 * testsuite/libgomp.c/target-7.c: New test.
1290 * testsuite/libgomp.c/taskgroup-1.c: New test.
1291 * testsuite/libgomp.c/thread-limit-1.c: New test.
1292 * testsuite/libgomp.c/thread-limit-2.c: New test.
1293 * testsuite/libgomp.c/thread-limit-3.c: New test.
1294 * testsuite/libgomp.c/udr-1.c: New test.
1295 * testsuite/libgomp.c/udr-2.c: New test.
1296 * testsuite/libgomp.c/udr-3.c: New test.
1297 * testsuite/libgomp.c++/affinity-1.C: New test.
1298 * testsuite/libgomp.c++/atomic-10.C: New test.
1299 * testsuite/libgomp.c++/atomic-11.C: New test.
1300 * testsuite/libgomp.c++/atomic-12.C: New test.
1301 * testsuite/libgomp.c++/atomic-13.C: New test.
1302 * testsuite/libgomp.c++/atomic-14.C: New test.
1303 * testsuite/libgomp.c++/atomic-15.C: New test.
1304 * testsuite/libgomp.c++/cancel-for-1.C: New test.
1305 * testsuite/libgomp.c++/cancel-for-2.C: New test.
1306 * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
1307 * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
1308 * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
1309 * testsuite/libgomp.c++/cancel-sections-1.C: New test.
1310 * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
1311 * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
1312 * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
1313 * testsuite/libgomp.c++/cancel-test.h: New file.
1314 * testsuite/libgomp.c++/for-9.C: New test.
1315 * testsuite/libgomp.c++/for-10.C: New test.
1316 * testsuite/libgomp.c++/for-11.C: New test.
1317 * testsuite/libgomp.c++/simd-1.C: New test.
1318 * testsuite/libgomp.c++/simd-2.C: New test.
1319 * testsuite/libgomp.c++/simd-3.C: New test.
1320 * testsuite/libgomp.c++/simd-4.C: New test.
1321 * testsuite/libgomp.c++/simd-5.C: New test.
1322 * testsuite/libgomp.c++/simd-6.C: New test.
1323 * testsuite/libgomp.c++/simd-7.C: New test.
1324 * testsuite/libgomp.c++/simd-8.C: New test.
1325 * testsuite/libgomp.c++/target-1.C: New test.
1326 * testsuite/libgomp.c++/target-2.C: New test.
1327 * testsuite/libgomp.c++/target-2-aux.cc: New file.
1328 * testsuite/libgomp.c++/target-3.C: New test.
1329 * testsuite/libgomp.c++/taskgroup-1.C: New test.
1330 * testsuite/libgomp.c++/udr-1.C: New test.
1331 * testsuite/libgomp.c++/udr-2.C: New test.
1332 * testsuite/libgomp.c++/udr-3.C: New test.
1333 * testsuite/libgomp.c++/udr-4.C: New test.
1334 * testsuite/libgomp.c++/udr-5.C: New test.
1335 * testsuite/libgomp.c++/udr-6.C: New test.
1336 * testsuite/libgomp.c++/udr-7.C: New test.
1337 * testsuite/libgomp.c++/udr-8.C: New test.
1338 * testsuite/libgomp.c++/udr-9.C: New test.
1340 2013-09-20 Jakub Jelinek <jakub@redhat.com>
1343 * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
1346 2013-09-20 Alan Modra <amodra@gmail.com>
1348 * configure: Regenerate.
1350 2013-09-19 Jakub Jelinek <jakub@redhat.com>
1352 * testsuite/libgomp.c/sections-2.c: New test.
1354 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
1356 * testsuite/libgomp.fortran/strassen.f90:
1357 Add dg-skip-if aarch64_tiny.
1359 2013-06-20 Iain Sandoe <iain@codesourcery.com>
1360 Cesar Philippidis <cesar@codesourcery.com>
1362 * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
1363 Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
1364 * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
1365 * testsuite/libgomp.fortran/fortran.exp: Likewise.
1366 * testsuite/libgomp.graphite/graphite.exp: Likewise.
1367 * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
1368 Use dg-runtest rather than gfortran-dg-runtest.
1370 2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
1372 * testsuite/libgomp.c/icv-2.c: Extend current handling of
1373 Linux-based x86 systems to cover all GNU systems.
1374 * testsuite/libgomp.c/lock-3.c: Likewise.
1375 * testsuite/libgomp.c/pr48591.c: Likewise.
1377 2013-06-06 Thomas Schwinge <thomas@codesourcery.com>
1379 * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
1380 GNU/Hurd, as done for Linux-based systems.
1382 * config/posix/ptrlock.h: Fix comment.
1384 2013-05-27 Tobias Burnus <burnus@net-b.de>
1387 * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
1388 omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
1389 omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
1390 omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
1391 omp_destroy_nest_lock): Correct arguments to match the one in
1393 * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
1394 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
1395 omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
1396 omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
1398 2013-05-16 Jakub Jelinek <jakub@redhat.com>
1400 * testsuite/libgomp.c/loop-13.c: New test.
1401 * testsuite/libgomp.c/loop-14.c: New test.
1402 * testsuite/libgomp.c/loop-15.c: New test.
1403 * testsuite/libgomp.c++/loop-13.C: New test.
1404 * testsuite/libgomp.c++/loop-14.C: New test.
1405 * testsuite/libgomp.c++/loop-15.C: New test.
1407 2013-02-06 Jakub Jelinek <jakub@redhat.com>
1410 * testsuite/libgomp.c++/pr56217.C: New test.
1412 2013-02-01 Alan Modra <amodra@gmail.com>
1414 * task.c (GOMP_task, GOMP_taskwait): Comment.
1416 2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org>
1417 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
1420 * config/linux/wait.h (do_spin): Use atomic load for addr.
1421 * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
1422 for intptr and ptrlock.
1423 * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
1426 2013-01-22 Alan Modra <amodra@gmail.com>
1430 * task.c (GOMP_task): Revert 2011-12-09 change.
1431 (GOMP_taskwait): Likewise. Instead use atomic load with acquire
1432 barrier to read task->children..
1433 (gomp_barrier_handle_tasks): ..and matching atomic store with
1434 release barrier here when setting parent->children to NULL.
1436 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1437 Tobias Burnus <burnus@net-b.de>
1440 * testsuite/libgomp.fortran/fortran.exp: Use
1441 -fintrinsic-modules-path= instead of
1442 -fintrinsic-modules-path.
1444 2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
1446 Update copyright years.
1448 2012-12-19 Tobias Burnus <burnus@net-b.de>
1450 * testsuite/libgomp.fortran/fortran.exp: Set
1451 -fintrinsic-modules-path.
1453 2012-12-19 Tobias Burnus <burnus@net-b.de>
1455 * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
1456 from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
1458 2012-11-21 Jakub Jelinek <jakub@redhat.com>
1461 * team.c (gomp_free_thread): Decrease gomp_managed_threads
1462 if pool had any threads_used.
1464 2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu>
1466 * testsuite/libgomp.c++/pr24455.C: Use
1467 -Wl,-undefined,dynamic_lookup on darwin.
1469 2012-11-07 David Edelsohn <dje.gcc@gmail.com>
1471 * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
1473 2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr>
1475 * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
1477 2012-10-23 Ian Bolton <ian.bolton@arm.com>
1478 Jim MacArthur <jim.macarthur@arm.com>
1479 Marcus Shawcroft <marcus.shawcroft@arm.com>
1480 Nigel Stephens <nigel.stephens@arm.com>
1481 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1482 Richard Earnshaw <rearnsha@arm.com>
1483 Sofiane Naci <sofiane.naci@arm.com>
1484 Stephen Thomas <stephen.thomas@arm.com>
1485 Tejas Belagod <tejas.belagod@arm.com>
1486 Yufeng Zhang <yufeng.zhang@arm.com>
1488 * configure.tgt: Add AArch64.
1490 2012-10-04 Jason Merrill <jason@redhat.com>
1492 * testsuite/libgomp.c++/tls-init1.C: New.
1494 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
1496 * configure: Regenerated.
1498 2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
1500 * config/linux/mips/futex.h (sys_futex0): Change to static
1501 function with noinline, nomips16 attributes under MIPS16. Adjust
1502 asm statement to place 'li v0,SYS_futex' immediately before
1505 2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
1507 * libgomp.texi (Library Index): Renamed from "Index" to prevent
1508 conflict with index.html on case-insensitive file systems.
1510 2012-07-03 Uros Bizjak <ubizjak@gmail.com>
1512 * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
1513 * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
1515 2012-07-02 Richard Guenther <rguenther@suse.de>
1516 Michael Matz <matz@suse.de>
1517 Tobias Grosser <tobias@grosser.es>
1518 Sebastian Pop <sebpop@gmail.com>
1520 * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
1521 * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1522 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1523 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1525 2012-06-28 Andreas Schwab <schwab@linux-m68k.org>
1527 * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
1529 2012-06-22 Richard Guenther <rguenther@suse.de>
1531 Merge from graphite branch
1532 2012-01-13 Tobias Grosser <tobias@grosser.es>
1534 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1535 * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1537 2012-06-07 Jakub Jelinek <jakub@redhat.com>
1540 * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
1541 use GOMP_barrier () call instead.
1542 * testsuite/libgomp.c/pr26943-3.c: Likewise.
1543 * testsuite/libgomp.c/pr26943-4.c: Likewise.
1544 * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
1545 call GOMP_barrier instead.
1546 * testsuite/libgomp.fortran/vla5.f90: Likewise.
1548 2012-06-06 Jakub Jelinek <jakub@redhat.com>
1551 * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
1552 argument to memset call.
1554 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
1556 * configure: Regenerated.
1558 2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1560 * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
1562 2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
1565 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
1567 2012-03-22 Jakub Jelinek <jakub@redhat.com>
1570 * testsuite/libgomp.c/pr52547.c: New test.
1572 2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1574 * testsuite/lib/libgomp.exp: load fortran-modules.exp
1576 2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1578 * configure.tgt (mips-sgi-irix6*): Remove.
1580 2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1582 * configure.tgt (alpha*-dec-osf*): Remove.
1584 * config/osf/sem.h: Remove.
1585 * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
1587 2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
1589 * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
1591 2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1594 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
1595 Remove ENABLE_SYMVERS_SOL2.
1596 * configure: Regenerate.
1597 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
1598 (PREPROCESS): New variable.
1599 (libgomp.ver): New target.
1600 [LIBGOMP_BUILD_VERSIONED_SHLIB &&
1601 LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
1602 LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
1604 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
1605 * Makefile.in: Regenerate.
1607 2012-02-14 Walter Lee <walt@tilera.com>
1609 * configure.tgt: Handle tilegx and tilepro.
1610 * config/linux/tile/futex.h: New file.
1612 2012-02-08 Richard Guenther <rguenther@suse.de>
1614 PR tree-optimization/46886
1615 * testsuite/libgomp.c/pr46886.c: New testcase.
1617 2012-01-25 Matthias Klose <doko@ubuntu.com>
1619 * config/linux/arm: Remove empty directory.
1620 * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
1622 2011-12-09 Alan Modra <amodra@gmail.com>
1625 * task.c (GOMP_taskwait): Don't access task->children outside of
1626 task_lock mutex region.
1627 (GOMP_task): Likewise.
1629 2011-12-06 Jakub Jelinek <jakub@redhat.com>
1632 * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1634 * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1635 * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1636 * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1637 * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1638 * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1640 2011-12-02 Alan Modra <amodra@gmail.com>
1642 * config/linux/affinity.c: Use atomic rather than sync builtin.
1643 * config/linux/lock.c: Likewise.
1644 * config/linux/ptrlock.h: Likewise.
1645 * config/linux/ptrlock.c: Likewise.
1646 * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
1647 * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
1648 * config/linux/futex.h (atomic_write_barrier): Delete unused function.
1649 * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
1650 * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
1651 * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
1652 * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
1653 * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
1654 * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
1655 * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
1657 2011-11-30 Alan Modra <amodra@gmail.com>
1660 * config/linux/bar.h: Use atomic rather than sync builtins.
1661 * config/linux/bar.c: Likewise. Add missing acquire
1662 synchronisation on generation field.
1663 * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
1666 2011-11-30 Alan Modra <amodra@gmail.com>
1668 * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
1669 * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
1670 * config/linux/mutex.h: Use atomic rather than sync builtins.
1671 * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
1672 * config/linux/omp-lock.h: Comment fix.
1673 * config/linux/arm/mutex.h: Delete.
1674 * config/linux/powerpc/mutex.h: Delete.
1675 * config/linux/ia64/mutex.h: Delete.
1676 * config/linux/mips/mutex.h: Delete.
1678 2011-11-30 Alan Modra <amodra@gmail.com>
1681 * config/linux/sem.h: Rewrite.
1682 * config/linux/sem.c: Rewrite.
1684 2011-11-28 Richard Henderson <rth@redhat.com>
1686 * libgomp.h (enum memmodel): New.
1688 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
1690 * configure: Regenerate.
1692 2011-10-10 Matthias Klose <doko@ubuntu.com>
1694 * config/posix95: Remove empty directory.
1696 2011-08-26 Jakub Jelinek <jakub@redhat.com>
1698 * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1700 2011-08-19 Jakub Jelinek <jakub@redhat.com>
1703 * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1704 * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1706 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1708 * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1710 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1713 * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1715 2011-08-03 Uros Bizjak <ubizjak@gmail.com>
1717 * config/linux/proc.h: New.
1718 * config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
1719 (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
1720 (gomp_init_num_threads): Update call to cpuset_popcount.
1721 (get_num_procs): Ditto.
1722 * config/linux/affinity.c (gomp_init_affinity): Call
1723 gomp_cpuset_popcount.
1725 2011-08-02 Jakub Jelinek <jakub@redhat.com>
1729 * omp.h.in (omp_in_final): New prototype.
1730 * omp_lib.f90.in (omp_in_final): New interface.
1731 (omp_integer_kind, omp_logical_kind): Remove
1732 and replace all its uses in the module with 4.
1733 (openmp_version): Change to 201107.
1734 * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1735 omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1736 kind for the parameters.
1737 (omp_in_final): New external.
1738 (openmp_version): Change to 201107.
1739 * task.c (omp_in_final): New function.
1740 (gomp_init_task): Initialize final_task.
1741 (GOMP_task): Remove unused attribute from flags. Handle final
1743 (GOMP_taskyield): New function.
1744 (omp_in_final): Return true if if (false) or final (true) task
1745 or descendant of final (true).
1746 * fortran.c (omp_in_final_): New function.
1747 * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1748 (GOMP_3.0): Export GOMP_taskyield.
1749 * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1751 (parse_unsigned_long_list): New function.
1752 (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
1753 with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
1754 even if parse_affinity returned false.
1755 * config/linux/affinity.c (gomp_init_affinity): Handle
1756 gomp_cpu_affinity_len == 0.
1757 * libgomp_g.h (GOMP_taskyield): New prototype.
1758 * libgomp.h (struct gomp_task): Add final_task field.
1759 (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1760 * team.c (gomp_team_start): Override new task's nthreads_var icv
1761 if list form OMP_NUM_THREADS has been used and it has value for
1762 the new nesting level.
1764 * testsuite/libgomp.c/atomic-11.c: New test.
1765 * testsuite/libgomp.c/atomic-12.c: New test.
1766 * testsuite/libgomp.c/atomic-13.c: New test.
1767 * testsuite/libgomp.c/atomic-14.c: New test.
1768 * testsuite/libgomp.c/reduction-6.c: New test.
1769 * testsuite/libgomp.c/task-5.c: New test.
1770 * testsuite/libgomp.c++/atomic-2.C: New test.
1771 * testsuite/libgomp.c++/atomic-3.C: New test.
1772 * testsuite/libgomp.c++/atomic-4.C: New test.
1773 * testsuite/libgomp.c++/atomic-5.C: New test.
1774 * testsuite/libgomp.c++/atomic-6.C: New test.
1775 * testsuite/libgomp.c++/atomic-7.C: New test.
1776 * testsuite/libgomp.c++/atomic-8.C: New test.
1777 * testsuite/libgomp.c++/atomic-9.C: New test.
1778 * testsuite/libgomp.c++/task-8.C: New test.
1779 * testsuite/libgomp.c++/reduction-4.C: New test.
1780 * testsuite/libgomp.fortran/allocatable7.f90: New test.
1781 * testsuite/libgomp.fortran/allocatable8.f90: New test.
1782 * testsuite/libgomp.fortran/crayptr3.f90: New test.
1783 * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1784 * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1785 * testsuite/libgomp.fortran/pointer1.f90: New test.
1786 * testsuite/libgomp.fortran/pointer2.f90: New test.
1787 * testsuite/libgomp.fortran/task4.f90: New test.
1789 2011-08-02 Tobias Burnus <burnus@net-b.de>
1791 * libgomp.texi: Update OpenMP spec references to 3.1.
1792 (omp_in_final,OMP_PROC_BIND): New sections.
1793 (OMP_NUM_THREADS): Document that the value can be now a list.
1794 (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1796 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1798 * config/linux/x86/futex.h: Check __x86_64__ instead of
1801 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1805 * testsuite/libgomp.c/pr49897-1.c: New test.
1806 * testsuite/libgomp.c/pr49897-2.c: New test.
1807 * testsuite/libgomp.c/pr49898-1.c: New test.
1808 * testsuite/libgomp.c/pr49898-2.c: New test.
1810 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1812 * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1813 for ia32 instead of ilp32.
1815 * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1816 * testsuite/libgomp.c/atomic-6.c: Likewise.
1818 2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
1820 * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1821 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1823 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1826 * config/osf/sem.h: New file.
1827 * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1829 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1832 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1835 2011-07-15 Jakub Jelinek <jakub@redhat.com>
1837 * config/linux/wait.h (do_spin): New inline, largely copied
1838 from do_wait, just don't do futex_wait here, instead return true if
1840 (do_wait): Implement using do_spin.
1841 * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1843 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1844 __sync_bool_compare_and_swap, pass the oldval to
1845 gomp_mutex_lock_slow.
1846 * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1847 If all mutex contenders are just spinning and not sleeping, don't
1848 change state to 2 unnecessarily. Optimize the loop when state has
1849 already become 2 to use just one atomic operation per loop instead
1851 * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1853 (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1854 __sync_bool_compare_and_swap, pass the oldval to
1855 gomp_mutex_lock_slow.
1857 2011-06-22 Jakub Jelinek <jakub@redhat.com>
1860 * iter.c (gomp_iter_static_next): For chunk size 0
1861 only use n ceil/ nthreads size for the first
1862 n % nthreads threads in the team instead of
1863 all threads except for the last few ones which
1864 get less work or none at all.
1865 * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1866 * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1867 chunk argument, set run_sched_modifier to 0 for static
1868 resp. 1 for other kinds. If chunk argument is 0
1869 and not static, set value to 1.
1871 2011-05-19 Jakub Jelinek <jakub@redhat.com>
1874 * testsuite/libgomp.c++/pr49043.C: New test.
1877 * testsuite/libgomp.c++/pr48869.C: New test.
1879 2011-05-06 Jakub Jelinek <jakub@redhat.com>
1882 * fortran.c: Include limits.h.
1884 (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1886 (omp_set_num_threads_8_, omp_set_schedule_8_,
1887 omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1888 omp_get_team_size_8_): Use TO_INT macro.
1889 * testsuite/libgomp.fortran/pr48894.f90: New test.
1891 2011-04-13 Jakub Jelinek <jakub@redhat.com>
1894 * testsuite/libgomp.c/pr48591.c: New test.
1896 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1899 * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1900 * configure: Regenerate.
1902 2011-02-27 Jakub Jelinek <jakub@redhat.com>
1905 * testsuite/libgomp.fortran/task3.f90: New test.
1907 2011-02-24 Tobias Burnus <burnus@net-b.de>
1909 * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1911 2011-02-23 Jakub Jelinek <jakub@redhat.com>
1914 * libgomp.texi (omp_get_wtime): Don't say time in the past
1917 2011-02-18 Jakub Jelinek <jakub@redhat.com>
1920 * testsuite/libgomp.fortran/fortran.exp: Check for both
1921 libquadmath.a and libquadmath.${shlib_ext}. If neither exists,
1922 but $blddir != "", still append ${blddir}/${lang_library_path}
1925 2011-02-16 Tobias Burnus <burnus@net-b.de>
1928 * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1929 of libquadmath.a before adding its libpath to ldflags.
1931 2011-02-14 Jakub Jelinek <jakub@redhat.com>
1934 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1935 to FUTEX_WAIT futex syscall.
1936 * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1938 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1940 * configure: Regenerate.
1942 2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
1945 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1947 2011-01-16 Gerald Pfeifer
1949 * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1951 2010-12-14 Jakub Jelinek <jakub@redhat.com>
1954 * libgomp.fortran/allocatable6.f90: New test.
1956 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1958 * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1959 * configure: Regenerate.
1961 2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
1965 * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1966 * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1967 * aclocal.m4: Regenerate.
1968 * configure: Regenerate.
1969 * Makefile.in: Regenerate.
1970 * testsuite/Makefile.in: Regenerate.
1972 2010-12-02 Jakub Jelinek <jakub@redhat.com>
1975 * libgomp.fortran/pr46753.f90: New test.
1978 * env.c (initialize_env): Default to spin count 300000
1979 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1983 * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1984 at the end if sync builtins aren't supported.
1986 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1988 * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1990 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1992 * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1994 2010-11-24 Iain Sandoe <iains@gcc.gnu.org>
1996 * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1998 2010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1999 Tobias Burnus <burnus@net-b.de>
2003 * configure: Regenerate.
2005 2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
2007 * config/linux/futex.h: New.
2008 * config/linux/arm/mutex.h: New.
2009 * configure.tgt (arm*-*-linux*): Add config path.
2011 2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2013 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2015 2010-09-23 Tobias Burnus <burnus@net-b.de>
2017 * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
2018 Change Fortran datatype to LOGICAL.
2019 (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
2020 omp_unset_nested_lock): Use intent(inout) instead of intent(out).
2022 2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2024 * configure: Regenerate.
2026 2010-07-26 Jakub Jelinek <jakub@redhat.com>
2028 * libgomp.texi: Add function keyword to a couple of Fortran
2029 interfaces, use integer instead of int for Fortran.
2031 2010-07-26 Aldy Hernandez <aldyh@redhat.com>
2033 * libgomp.texi: Fix spelling and pasto problems throughout.
2034 Adjust prototypes to match code.
2036 2010-07-24 Tobias Burnus <burnus@net-b.de>
2038 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
2039 silence -fwhole-file warning.
2041 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2043 * configure.tgt (*-*-solaris2.[56]*): Removed.
2045 2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2047 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
2048 Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
2049 LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
2050 (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
2051 targetting solaris2*.
2052 * configure: Regenerate.
2053 * config.h.in: Regenerate.
2055 * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
2056 libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
2057 Add libgomp_version_dep.
2058 [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
2060 [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
2061 (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
2062 * Makefile.in: Regenerate.
2064 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
2065 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2066 * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
2067 to common block, protected by
2068 HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2070 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
2072 * libgomp.texi: Move to GFDL version 1.3. Update copyright years.
2074 2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
2077 * configure: Regenerate.
2079 2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2082 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
2083 * configure: Regenerate.
2084 * Makefile.in: Regenerate.
2085 * testsuite/Makefile.in: Regenerate.
2087 2010-04-26 Jakub Jelinek <jakub@redhat.com>
2090 * testsuite/libgomp.c/pr43893.c: New test.
2091 * testsuite/libgomp.c++/pr43893.C: New test.
2093 2010-04-21 Jakub Jelinek <jakub@redhat.com>
2096 * testsuite/libgomp.fortran/vla8.f90: New test.
2098 2010-04-20 Jakub Jelinek <jakub@redhat.com>
2101 * config/linux/affinity.c (gomp_init_affinity): Decrease
2102 gomp_available_cpus if affinity mask confines the process to fewer
2104 * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
2105 non-NULL, just return gomp_available_cpus.
2108 * sections.c (gomp_sections_init): Initialize ws->mode.
2110 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
2112 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
2113 not unused bar variable.
2114 * configure: Regenerate.
2116 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2118 * Makefile.in: Regenerate.
2119 * aclocal.m4: Regenerate.
2120 * testsuite/Makefile.in: Regenerate.
2122 2010-03-22 Jakub Jelinek <jakub@redhat.com>
2125 * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
2126 (initialize_env): Adjust callers.
2127 (omp_set_max_active_levels): Set gomp_max_active_levels_var even
2128 when the argument is 0.
2130 * testsuite/libgomp.c/pr42942.c: New test.
2132 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
2136 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2137 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
2139 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2141 * testsuite/libgomp.c++/task-1.C: Renamed err to e.
2142 * testsuite/libgomp.c++/task-6.C: Likewise.
2144 2010-01-28 Steve Ellcey <sje@cup.hp.com>
2146 * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
2148 2010-01-26 Paolo Bonzini <bonzini@gnu.org>
2150 * configure.ac: Test for executability of _the first word_ of GFORTRAN.
2151 * configure: Regenerate.
2153 2010-01-26 Jakub Jelinek <jakub@redhat.com>
2156 * testsuite/libgomp.fortran/allocatable5.f90: New test.
2158 2010-01-20 Paolo Bonzini <bonzini@gnu.org>
2160 * configure.ac: Test for executability of GFORTRAN.
2161 * configure: Regenerate.
2163 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2165 * configure: Regenerate.
2167 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
2170 * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
2172 2010-01-03 Richard Guenther <rguenther@suse.de>
2174 * testsuite/libgomp.fortran/recursion1.f90: New testcase.
2176 2009-12-23 Sebastian Pop <sebpop@gmail.com>
2178 * testsuite/libgomp.graphite/pr4118.c: New.
2180 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2182 * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
2183 for darwin, protect the test with require-effective-target tls_runtime.
2184 * testsuite/libgomp.fortran/pr32550.f90: Ditto.
2186 2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2189 * testsuite/lib/libgomp.exp: Provide -B options to allow for
2190 link spec %s substitutions for static libraries.
2192 2009-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
2195 * libgomp.graphite/force-parallel-2.c: Reduce array size.
2197 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2199 * Makefile.in: Regenerate.
2200 * configure: Regenerate.
2201 * testsuite/Makefile.in: Regenerate.
2203 2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
2205 * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
2206 settings for LC_ALL and LANG.
2208 2009-11-25 Jakub Jelinek <jakub@redhat.com>
2211 * testsuite/libgomp.fortran/pr42162.f90: New test.
2213 2009-11-13 Jakub Jelinek <jakub@redhat.com>
2216 * testsuite/libgomp.c/pr42029.c: New test.
2218 2009-10-26 Jakub Jelinek <jakub@redhat.com>
2220 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
2221 *s. Accept ld version without text in ()s.
2222 * configure: Regenerated.
2224 2009-10-22 Razya Ladelsky <razya@il.ibm.com>
2226 * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
2228 2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2231 * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
2232 or a hyphen (happens with fortran language disabled).
2233 * configure: Regenerate.
2235 2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2237 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
2238 use sed script portable to Solaris /bin/sed for extracting ld
2240 * configure: Regenerate.
2242 2009-09-17 Alexander Monakov <amonakov@ispras.ru>
2244 * testsuite/libgomp.graphite/bounds.c: New test.
2246 2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2248 * Makefile.am (libgomp_la_LINK): New.
2249 * Makefile.in: Regenerate.
2251 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2253 * configure.ac (AC_PREREQ): Bump to 2.64.
2255 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2257 * Makefile.am (install-html, install-pdf): Remove.
2258 * Makefile.in: Regenerate.
2260 * Makefile.in: Regenerate.
2261 * aclocal.m4: Regenerate.
2262 * config.h.in: Regenerate.
2263 * configure: Regenerate.
2264 * testsuite/Makefile.in: Regenerate.
2266 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2268 * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
2269 * Makefile.in: Regenerate.
2271 2009-08-20 Dave Korn <dave.korn.cygwin@gmail.com>
2273 * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
2274 * Makefile.in: Regenerate.
2276 2009-08-19 Tobias Burnus <burnus@net-b.de>
2279 omp_lib.h.in: Fix -std=f95 errors.
2282 2009-08-14 David Edelsohn <edelsohn@gnu.org>
2284 * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
2285 * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
2286 * testsuite/libgomp.graphite/graphite.exp: New.
2288 2009-08-05 Andreas Tobler <a.tobler@schweiz.org>
2290 * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
2293 2009-08-04 David Daney <ddaney@caviumnetworks.com>
2295 * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
2296 needed memory barrier semantics.
2297 * config/linux/mips/mutex.h: New file.
2299 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2301 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2303 2009-07-16 Joseph Myers <joseph@codesourcery.com>
2305 * configure: Regenerate.
2307 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
2312 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
2313 * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
2314 testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
2316 2009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com>
2318 * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
2319 options when choosing a multilib.
2321 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
2323 * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
2324 ld_library_path. Use add_path. Add just find_libgcc_s to
2325 ld_library_path, not every libgcc multilib directory.
2326 * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
2327 gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
2328 * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
2330 * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
2332 2009-06-09 Nathan Froyd <froydnj@codesourcery.com>
2334 * Makefile.am (LTLDFLAGS): Define.
2336 * Makefile.in: Regenerate.
2338 2009-05-27 Janne Blomqvist <jb@gcc.gnu.org>
2341 * testsuite/libgomp.fortran/fortran.exp: Don't link with
2342 libgfortranbegin, check existence of libgfortran.a instead of
2345 2009-05-20 Jakub Jelinek <jakub@redhat.com>
2348 * team.c (gomp_thread_start): Destroy thr->release semaphore.
2349 (gomp_free_pool_helper): Likewise.
2351 2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
2352 Jakub Jelinek <jakub@redhat.com>
2355 * testsuite/libgomp.fortran/workshare2.f90: New test.
2357 2009-04-09 Nick Clifton <nickc@redhat.com>
2359 * iter.c: Change copyright header to refer to version 3 of the
2360 GNU General Public License with version 3.1 of the GCC Runtime
2361 Library Exception and to point readers at the COPYING3 and
2362 COPYING3.RUNTIME files and the FSF's license web page.
2363 * alloc.c: Likewise.
2364 * barrier.c: Likewise.
2365 * config/bsd/proc.c: Likewise.
2366 * config/linux/affinity.c: Likewise.
2367 * config/linux/alpha/futex.h: Likewise.
2368 * config/linux/bar.c: Likewise.
2369 * config/linux/bar.h: Likewise.
2370 * config/linux/ia64/futex.h: Likewise.
2371 * config/linux/ia64/mutex.h: Likewise.
2372 * config/linux/lock.c: Likewise.
2373 * config/linux/mips/futex.h: Likewise.
2374 * config/linux/mutex.c: Likewise.
2375 * config/linux/mutex.h: Likewise.
2376 * config/linux/powerpc/futex.h: Likewise.
2377 * config/linux/proc.c: Likewise.
2378 * config/linux/ptrlock.c: Likewise.
2379 * config/linux/ptrlock.h: Likewise.
2380 * config/linux/s390/futex.h: Likewise.
2381 * config/linux/sem.c: Likewise.
2382 * config/linux/sem.h: Likewise.
2383 * config/linux/sparc/futex.h: Likewise.
2384 * config/linux/wait.h: Likewise.
2385 * config/linux/x86/futex.h: Likewise.
2386 * config/mingw32/proc.c: Likewise.
2387 * config/mingw32/time.c: Likewise.
2388 * config/posix/affinity.c: Likewise.
2389 * config/posix/bar.c: Likewise.
2390 * config/posix/bar.h: Likewise.
2391 * config/posix/lock.c: Likewise.
2392 * config/posix/mutex.h: Likewise.
2393 * config/posix/proc.c: Likewise.
2394 * config/posix/ptrlock.h: Likewise.
2395 * config/posix/sem.c: Likewise.
2396 * config/posix/sem.h: Likewise.
2397 * config/posix/time.c: Likewise.
2398 * config/posix95/lock.c: Likewise.
2399 * critical.c: Likewise.
2401 * error.c: Likewise.
2402 * fortran.c: Likewise.
2403 * iter_ull.c: Likewise.
2404 * libgomp.h: Likewise.
2405 * libgomp_f.h.in: Likewise.
2406 * libgomp_g.h: Likewise.
2408 * loop_ull.c: Likewise.
2409 * omp.h.in: Likewise.
2410 * omp_lib.f90.in: Likewise.
2411 * omp_lib.h.in: Likewise.
2412 * ordered.c: Likewise.
2413 * parallel.c: Likewise.
2414 * sections.c: Likewise.
2415 * single.c: Likewise.
2420 2009-04-09 Jakub Jelinek <jakub@redhat.com>
2422 * testsuite/config/default.exp: Change copyright header to refer to
2423 version 3 of the GNU General Public License and to point readers
2424 at the COPYING3 file and the FSF's license web page.
2426 2009-04-08 Jakub Jelinek <jakub@redhat.com>
2429 * libgomp.c++/pr39573.C: New test.
2431 2009-04-01 Jakub Jelinek <jakub@redhat.com>
2434 * testsuite/libgomp.c/pr39591-1.c: New test.
2435 * testsuite/libgomp.c/pr39591-2.c: New test.
2436 * testsuite/libgomp.c/pr39591-3.c: New test.
2438 2009-03-25 Uros Bizjak <ubizjak@gmail.com>
2440 * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
2441 * testsuite/libgomp.c/atomic-6.c: Ditto.
2443 2009-03-23 Jakub Jelinek <jakub@redhat.com>
2446 * testsuite/libgomp.c/loop-12.c: New test.
2447 * testsuite/libgomp.c/loop-11.c: New test.
2448 * testsuite/libgomp.c++/loop-11.C: New test.
2449 * testsuite/libgomp.c++/loop-12.C: New test.
2450 * testsuite/libgomp.c++/for-8.C: New test.
2452 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2454 * configure: Regenerate.
2456 2009-02-11 Jakub Jelinek <jakub@redhat.com>
2459 * testsuite/libgomp.c/pr39154.c: New test.
2461 2009-01-30 Ian Lance Taylor <iant@google.com>
2463 * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
2464 libgomp_ld_is_gold. Get gold version number.
2465 (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
2466 * configure: Rebuild.
2468 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2470 * testsuite/lib/libgomp.exp: Add -B option for targets that
2471 use libgfortran.a%s in their specs.
2473 2009-01-07 Jakub Jelinek <jakub@redhat.com>
2476 * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
2477 * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
2478 HAVE_AS_SYMVER_DIRECTIVE is not defined.
2479 * configure: Regenerated.
2480 * config.h.in: Likewise.
2482 2008-12-28 Jakub Jelinek <jakub@redhat.com>
2485 * testsuite/libgomp.c/pr38650.c: New test.
2486 * testsuite/libgomp.c++/pr38650.C: New test.
2488 2008-12-27 Jakub Jelinek <jakub@redhat.com>
2490 * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
2492 2008-12-26 Uros Bizjak <ubizjak@gmail.com>
2494 * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
2496 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2498 * configure: Regenerate.
2500 2008-12-08 Jakub Jelinek <jakub@redhat.com>
2503 * testsuite/libgomp.c/pr36802-1.c: New test.
2504 * testsuite/libgomp.c/pr36802-2.c: New test.
2505 * testsuite/libgomp.c/pr36802-3.c: New test.
2507 2008-12-01 Janis Johnson <janis187@us.ibm.com>
2510 * config/linux/powerpc/mutex.h: New.
2512 2008-12-01 Jakub Jelinek <jakub@redhat.com>
2515 * testsuite/libgomp.c++/for-7.C: New test.
2518 * testsuite/libgomp.c++/for-6.C: New test.
2520 2008-11-26 Janis Johnson <janis187@us.ibm.com>
2523 * testsuite/lib/libgomp.exp: Include new timeout library files.
2524 (libgomp_target_compile): Set timeout value from new proc.
2526 2008-11-13 Steve Ellcey <sje@cup.hp.com>
2529 * config/linux/ia64/mutex.h: New.
2531 2008-11-04 Tobias Burnus <burnus@net-b.de>
2534 * libgomp.texi (Runtime library routines, environment variables):
2535 Update for OpenMP version 3.0.
2537 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2538 Steve Ellcey <sje@cup.hp.com>
2540 * configure: Regenerate for new libtool.
2541 * Makefile.in: Ditto.
2542 * testsuite/Makefile.in: Ditto.
2544 2008-09-19 Jakub Jelinek <jakub@redhat.com>
2545 Andreas Tobler <a.tobler@schweiz.org>
2547 * config/bsd/proc.c: New file.
2548 * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
2549 * configure.ac: Check for header <sys/sysctl.h>
2550 * configure: Regenerate.
2551 * config.h.in: Likewise.
2553 2008-09-05 Janis Johnson <janis187@us.ibm.com>
2555 * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
2557 2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2559 * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
2560 * Makefile.in: Regenerated.
2561 * testsuite/Makefile.in: Regenerated.
2563 2008-08-21 Nathan Froyd <froydnj@codesourcery.com>
2565 * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
2566 depend on blddir if blddir exists.
2567 (libgomp_target_compile): Likewise.
2568 * testsuite/libgomp.c++/c++.exp: Likewise.
2569 * testsuite/libgomp.fortran/fortran.exp: Likewise.
2571 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2573 * libgomp.texi: Update to GFDL 1.2. Update copyright years.
2574 Do not list GPL as Invariant Section.
2576 2008-07-28 Ilie Garbacea <ilie@mips.com>
2577 Chao-ying Fu <fu@mips.com>
2579 * configure.tgt: Enable futex for MIPS.
2580 * config/linux/mips/futex.h: New file.
2582 2008-07-16 Jakub Jelinek <jakub@redhat.com>
2584 * team.c (gomp_team_end): Free team immediately if it has
2587 2008-07-08 David Edelsohn <edelsohn@gnu.org>
2589 * testsuite/libgomp.c++/c++.exp: Append multilib library path.
2590 * testsuite/libgomp.fortran/fortran.exp: Same.
2591 * testsuite/libgomp.c/c.exp: Same.
2592 * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
2593 directory to library path first.
2595 2008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com>
2597 * env.c (parse_stacksize): Add cast to avoid warning.
2598 (parse_spincount): Likewise.
2600 2008-06-27 Jakub Jelinek <jakub@redhat.com>
2602 * testsuite/libgomp.c/loop-10.c: New test.
2603 * libgomp.c/loop-3.c (main): Add lastprivate clause.
2604 * libgomp.c++/loop-6.C (main): Likewise.
2607 * testsuite/libgomp.c/debug-1.c: New test.
2609 2008-06-19 Jakub Jelinek <jakub@redhat.com>
2611 * testsuite/libgomp.c/nqueens-1.c: New test.
2614 * testsuite/libgomp.c++/task-7.C: New function.
2616 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2618 * configure: Regenerate.
2620 2008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2622 * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
2623 mutex when HAVE_SYNC_BUILTINS isn't defined.
2625 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2627 * libgomp.texi (omp_test_lock): Fix typo.
2629 2008-06-12 Tobias Burnus <burnus@net-b.de>
2631 * omp_lib.f90.in: Add "implicit none".
2633 2008-06-12 Jakub Jelinek <jakub@redhat.com>
2636 * testsuite/libgomp.c/reduction-5.c: New test.
2638 2008-06-11 Jakub Jelinek <jakub@redhat.com>
2640 * libgomp.h (struct gomp_task): Add in_tied_task field.
2641 * task.c (gomp_init_task): Initialize it.
2642 (GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
2643 unconditionally. Don't call gomp_team_barrier_wake if
2644 current task is implicit or if(0) from implicit and number of
2645 running tasks is equal to nthreads - 1.
2648 * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2649 omp_get_team_size_8): Fix pastos.
2652 * configure.ac: Add AC_CHECK_FUNCS (strtoull).
2653 * configure: Regenerated.
2654 * config.h.in: Regenerated.
2655 * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
2658 2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
2661 * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
2662 (GOMP_loop_ull_dynamic_start): Likewise.
2663 (GOMP_loop_ull_guided_start): Likewise.
2664 (GOMP_loop_ull_ordered_static_start): Likewise.
2665 (GOMP_loop_ull_ordered_dynamic_start): Likewise.
2666 (GOMP_loop_ull_ordered_guided_start): Likewise.
2668 2008-06-06 Jakub Jelinek <jakub@redhat.com>
2669 Richard Henderson <rth@redhat.com>
2670 Ulrich Drepper <drepper@redhat.com>
2671 Jakob Blomer <jakob.blomer@ira.uka.de>
2673 * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
2674 Substitute also OMP_*LOCK_25*.
2675 * configure: Regenerated.
2676 * config.h.in: Regenerated.
2677 * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
2678 ptrlock.c and task.c.
2679 * Makefile.in: Regenerated.
2680 * testsuite/Makefile.in: Regenerated.
2682 * loop_ull.c: New file.
2683 * iter_ull.c: New file.
2684 * libgomp.h: Include ptrlock.h.
2685 (enum gomp_task_kind): New type.
2686 (struct gomp_team): Add task_lock, task_queue, task_count,
2687 task_running_count, single_count fields. Add
2688 work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
2689 Remove work_share_lock, generation_mask,
2690 oldest_live_gen, num_live_gen and init_work_shares fields, add
2691 work work_share_list_alloc, work_share_list_free and work_share_chunk
2692 fields. Change work_shares from pointer to pointers into an array.
2693 Change ordered_release field into gomp_sem_t ** from flexible array
2694 member. Add implicit_task and initial_work_shares fields.
2695 Move close to the end of the struct.
2696 (struct gomp_team_state): Add single_count, last_work_share,
2697 active_level and level fields, remove work_share_generation.
2698 (gomp_barrier_handle_tasks): New prototype.
2699 (gomp_finish_task): New inline function.
2700 (struct gomp_work_share): Move chunk_size, end, incr into
2701 transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2702 next_ll fields. Reshuffle fields. Add next_alloc,
2703 next_ws, next_free and inline_ordered_team_ids fields, change
2704 ordered_team_ids into pointer from flexible array member.
2705 Add mode field. Put lock and next into a different cache line
2706 from most of the write-once fields.
2707 (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2708 gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2709 gomp_iter_ull_guided_next): New prototypes.
2710 (gomp_new_icv): New prototype.
2711 (struct gomp_thread): Add thread_pool and task fields.
2712 (struct gomp_thread_pool): New type.
2713 (gomp_new_team): New prototype.
2714 (gomp_team_start): Change type of last argument.
2715 (gomp_new_work_share): Removed.
2716 (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2717 (gomp_work_share_init_done): New static inline.
2718 (gomp_throttled_spin_count_var, gomp_available_cpus,
2719 gomp_managed_threads): New extern decls.
2720 (gomp_init_task): New prototype.
2721 (gomp_spin_count_var): New extern var decl.
2722 (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2723 or no alias support, or if not PIC.
2724 (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2725 gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2726 gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2727 gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2728 gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2729 gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2730 gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2731 gomp_test_nest_lock_25): New prototypes.
2732 (omp_lock_symver, strong_alias): Define.
2733 (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2735 (gomp_end_task): New.
2736 (struct gomp_task_icv, gomp_global_icv): New.
2737 (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2738 (struct gomp_task): New.
2739 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2740 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2742 (gomp_schedule_type): Reorder enum to match
2744 * team.c (struct gomp_thread_start_data): Add thread_pool and task
2746 (gomp_thread_start): Add gomp_team_barrier_wait call.
2747 For non-nested case remove clearing of docked thread thr fields.
2748 Use pool fields instead of global gomp_* variables. Use
2749 gomp_barrier_wait_last when needed. Initialize ts.active_level.
2750 Create tasks for each member thread.
2751 (free_team): Only destroy team barrier, task_lock here and free it.
2752 (gomp_free_thread): Free last_team if non-NULL.
2753 (gomp_team_end): Call gomp_team_barrier_wait instead of
2754 gomp_barrier_wait. For nested case call one extra
2755 gomp_barrier_wait. Move here some destruction from free_team.
2756 Call free_team on pool->last_team if any, rather than freeing
2757 current team. Destroy work_share_list_free_lock ifndef
2759 (gomp_new_icv): New function.
2760 (gomp_threads, gomp_threads_size, gomp_threads_used,
2761 gomp_threads_dock): Removed.
2762 (gomp_thread_destructor): New variable.
2763 (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2765 (gomp_team_start): Create new pool if current thread doesn't have
2766 one. Use pool fields instead of global gomp_* variables.
2767 Initialize thread_pool field for new threads. Clear single_count.
2768 Change last argument from ws to team, don't create
2769 new team, set ts.work_share to &team->work_shares[0] and clear
2770 ts.last_work_share. Don't clear ts.work_share_generation.
2771 If number of threads changed, adjust atomically gomp_managed_threads.
2772 Use gomp_init_task instead of gomp_new_task,
2773 set thr->task to the corresponding implicit_task array entry.
2774 Create tasks for each member thread. Initialize ts.level.
2775 (initialize_team): Call pthread_key_create on
2776 gomp_thread_destructor.
2777 (team_destructor): New function.
2778 (new_team): Removed.
2779 (gomp_new_team): New function.
2780 (free_team): Free gomp_work_share blocks chained through next_alloc,
2781 instead of freeing work_shares and destroying work_share_lock.
2782 (gomp_team_end): Call gomp_fini_work_share. If number of threads
2783 changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
2784 * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2785 of gomp_barrier_wait.
2786 * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2787 instead of gomp_barrier_wait. Call gomp_work_share_init_done
2788 if gomp_work_share_start returned true. Don't unlock ws->lock.
2789 (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2790 of gomp_barrier_wait.
2791 (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
2792 gomp_work_share_init_done if gomp_work_share_start returned true.
2793 Don't unlock ws->lock.
2794 * work.c: Include stddef.h.
2795 (free_work_share): Use work_share_list_free_lock instead
2796 of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
2797 Call gomp_fini_work_share and then either free ws if orphaned, or
2798 put it into work_share_list_free list of the current team.
2799 (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2801 (gomp_work_share_start, gomp_work_share_end,
2802 gomp_work_share_end_nowait): Rewritten.
2803 * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2804 (openmp_version): Set to 200805.
2805 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2806 omp_sched_guided, omp_sched_auto): New parameters.
2807 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2808 omp_set_max_active_levels, omp_get_max_active_levels,
2809 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2810 omp_get_active_level): New interfaces.
2811 * omp_lib.h.in (openmp_version): Set to 200805.
2812 (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2813 omp_sched_guided, omp_sched_auto): New parameters.
2814 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2815 omp_set_max_active_levels, omp_get_max_active_levels,
2816 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2817 omp_get_active_level): New externals.
2818 * loop.c: Include limits.h.
2819 (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2821 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2822 Likewise. Use gomp_icv.
2823 (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2824 ts.static_trip here.
2825 (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2826 gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
2827 (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2828 gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
2829 don't unlock ws->lock, otherwise lock it.
2830 (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2831 gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
2832 (gomp_parallel_loop_start): Call gomp_new_team instead of
2833 gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
2834 Adjust gomp_team_start caller. Pass 0 as second argument to
2835 gomp_resolve_num_threads.
2836 (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2837 If adding ws->chunk_size nthreads + 1 times after end won't
2838 overflow, set ws->mode to 1.
2839 * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2840 GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2841 GOMP_loop_ull_ordered_static_start,
2842 GOMP_loop_ull_ordered_dynamic_start,
2843 GOMP_loop_ull_ordered_guided_start,
2844 GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2845 GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2846 GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2847 GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2848 GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2850 * libgomp.map: Export lock routines also @@OMP_2.0.
2851 (GOMP_loop_ordered_dynamic_first,
2852 GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2853 GOMP_loop_ordered_static_first): Remove.
2854 (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2855 GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2856 GOMP_loop_ull_ordered_dynamic_next,
2857 GOMP_loop_ull_ordered_dynamic_start,
2858 GOMP_loop_ull_ordered_guided_next,
2859 GOMP_loop_ull_ordered_guided_start,
2860 GOMP_loop_ull_ordered_runtime_next,
2861 GOMP_loop_ull_ordered_runtime_start,
2862 GOMP_loop_ull_ordered_static_next,
2863 GOMP_loop_ull_ordered_static_start,
2864 GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2865 GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2866 GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2867 (omp_set_schedule, omp_get_schedule,
2868 omp_get_thread_limit, omp_set_max_active_levels,
2869 omp_get_max_active_levels, omp_get_level,
2870 omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2871 omp_set_schedule_, omp_set_schedule_8_,
2872 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2873 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2874 omp_get_max_active_levels_, omp_get_level_,
2875 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2876 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2877 New exports @@OMP_3.0.
2878 * omp.h.in (omp_sched_t): New type.
2879 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2880 omp_set_max_active_levels, omp_get_max_active_levels,
2881 omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2882 omp_get_active_level): New prototypes.
2883 * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2884 gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2885 gomp_thread_limit_var, gomp_remaining_threads_count,
2886 gomp_remaining_threads_lock): New variables.
2887 (parse_spincount): New function.
2888 (initialize_env): Call gomp_init_num_threads unconditionally.
2889 Initialize gomp_available_cpus. Call parse_spincount,
2890 initialize gomp_{,throttled_}spin_count_var
2891 depending on presence and value of OMP_WAIT_POLICY and
2892 GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
2893 Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2894 OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
2895 for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
2896 gomp_remaining_threads_lock if needed. Use gomp_global_icv.
2897 (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2898 gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2899 (gomp_global_icv): New.
2900 (parse_schedule): Use it. Parse "auto".
2901 (omp_set_num_threads): Use gomp_icv.
2902 (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2904 (omp_get_max_threads): Move from parallel.c.
2905 (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2906 omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2908 (parse_stacksize, parse_wait_policy): New functions.
2909 * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2910 both wrappers for compatibility and new locks.
2911 (omp_set_schedule, omp_get_schedule,
2912 omp_get_thread_limit, omp_set_max_active_levels,
2913 omp_get_max_active_levels, omp_get_level,
2914 omp_get_ancestor_thread_num, omp_get_team_size,
2915 omp_get_active_level): New ialias_redirect.
2916 (omp_set_schedule_, omp_set_schedule_8_,
2917 omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2918 omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2919 omp_get_max_active_levels_, omp_get_level_,
2920 omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2921 omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2923 * parallel.c: Include limits.h.
2924 (gomp_resolve_num_threads): Add count argument. Rewritten.
2925 (GOMP_parallel_start): Call gomp_new_team and pass that as last
2926 argument to gomp_team_start. Pass 0 as second argument to
2927 gomp_resolve_num_threads.
2928 (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2929 if gomp_thread_limit_var != ULONG_MAX.
2930 (omp_in_parallel): Implement using ts.active_level.
2931 (omp_get_max_threads): Move to env.c.
2932 (omp_get_level, omp_get_ancestor_thread_num,
2933 omp_get_team_size, omp_get_active_level): New functions,
2935 * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2936 after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
2937 gomp_iter_dynamic_next instead of the _locked variant and don't take
2938 lock around it, otherwise acquire it before calling
2939 gomp_iter_dynamic_next_locked.
2940 (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2941 gomp_iter_dynamic_next instead of the _locked variant and don't take
2943 (GOMP_parallel_sections_start): Call gomp_new_team instead of
2944 gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
2945 Adjust gomp_team_start caller. Pass count as second argument to
2946 gomp_resolve_num_threads, don't adjust num_threads after the call.
2948 * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2949 ws->chunk_size by incr.
2950 (gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
2952 * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2954 (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2955 (omp_check_defines): Check even the compat defines.
2956 * config/linux/ptrlock.c: New file.
2957 * config/linux/ptrlock.h: New file.
2958 * config/linux/wait.h: New file.
2959 * config/posix/ptrlock.c: New file.
2960 * config/posix/ptrlock.h: New file.
2961 * config/linux/bar.h (gomp_team_barrier_wait,
2962 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2963 (gomp_team_barrier_set_task_pending,
2964 gomp_team_barrier_clear_task_pending,
2965 gomp_team_barrier_set_waiting_for_tasks,
2966 gomp_team_barrier_waiting_for_tasks,
2967 gomp_team_barrier_done): New inlines.
2968 (gomp_barrier_t): Rewritten.
2969 (gomp_barrier_state_t): New typedef.
2970 (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2971 gomp_barrier_wait_start): Rewritten.
2972 (gomp_barrier_wait_end): Change second argument to
2973 gomp_barrier_state_t.
2974 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2976 * config/linux/bar.c: Include wait.h instead of libgomp.h and
2978 (gomp_barrier_wait_end): Rewritten.
2979 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2980 gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2981 * config/posix/bar.h (gomp_barrier_t): Add generation field.
2982 (gomp_barrier_state_t): New typedef.
2983 (gomp_team_barrier_wait,
2984 gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2985 (gomp_barrier_wait_start): Or all but low 2 bits from generation
2986 into the return value. Return gomp_barrier_state_t.
2987 (gomp_team_barrier_set_task_pending,
2988 gomp_team_barrier_clear_task_pending,
2989 gomp_team_barrier_set_waiting_for_tasks,
2990 gomp_team_barrier_waiting_for_tasks,
2991 gomp_team_barrier_done): New inlines.
2992 (gomp_barrier_wait_end): Change second argument to
2993 gomp_barrier_state_t.
2994 (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2996 * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2997 (gomp_barrier_wait_end): Change second argument to
2998 gomp_barrier_state_t.
2999 (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3000 gomp_team_barrier_wake): New functions.
3001 * config/linux/mutex.c: Include wait.h instead of libgomp.h and
3003 (gomp_futex_wake, gomp_futex_wait): New variables.
3004 (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
3005 * config/linux/lock.c: Rewrite to make locks task owned,
3006 for backwards compatibility provide the old entrypoints
3007 if symbol versioning. Include wait.h instead of libgomp.h and
3009 (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
3010 * config/posix95/lock.c: Rewrite to make locks task owned,
3011 for backwards compatibility provide the old entrypoints
3012 if symbol versioning.
3013 * config/posix/lock.c: Rewrite to make locks task owned,
3014 for backwards compatibility provide the old entrypoints
3015 if symbol versioning.
3016 * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
3017 (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
3018 * config/posix/proc.c, config/mingw32/proc.c: Similarly.
3019 * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3020 (sys_futex0): Return error code.
3021 (futex_wake, futex_wait): If ENOSYS was returned, clear
3022 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3023 (cpu_relax, atomic_write_barrier): New static inlines.
3024 * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3025 (futex_wake, futex_wait): If ENOSYS was returned, clear
3026 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3027 (cpu_relax, atomic_write_barrier): New static inlines.
3028 * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3029 (sys_futex0): Return error code.
3030 (futex_wake, futex_wait): If ENOSYS was returned, clear
3031 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3032 (cpu_relax, atomic_write_barrier): New static inlines.
3033 * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3034 (sys_futex0): Return error code.
3035 (futex_wake, futex_wait): If ENOSYS was returned, clear
3036 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3037 (cpu_relax, atomic_write_barrier): New static inlines.
3038 * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3039 (sys_futex0): Return error code.
3040 (futex_wake, futex_wait): If ENOSYS was returned, clear
3041 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3042 (cpu_relax, atomic_write_barrier): New static inlines.
3043 * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3044 (sys_futex0): Return error code.
3045 (futex_wake, futex_wait): If ENOSYS was returned, clear
3046 FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3047 (cpu_relax, atomic_write_barrier): New static inlines.
3048 * config/linux/sem.c: Include wait.h instead of libgomp.h and
3050 (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
3051 * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
3052 * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
3054 (omp_nest_lock_t): Change owner into void *, add lock field.
3055 * config/posix95/omp-lock.h: Include semaphore.h.
3056 (omp_lock_25_t, omp_nest_lock_25_t): New types.
3057 (omp_lock_t): Use sem_t instead of mutex if semaphores
3059 (omp_nest_lock_t): Likewise. Change owner to void *.
3060 * config/posix/omp-lock.h: Include semaphore.h.
3061 (omp_lock_25_t, omp_nest_lock_25_t): New types.
3062 (omp_lock_t): Use sem_t instead of mutex if semaphores
3064 (omp_nest_lock_t): Likewise. Add owner field.
3066 2008-06-06 Jakub Jelinek <jakub@redhat.com>
3068 * testsuite/libgomp.c/collapse-1.c: New test.
3069 * testsuite/libgomp.c/collapse-2.c: New test.
3070 * testsuite/libgomp.c/collapse-3.c: New test.
3071 * testsuite/libgomp.c/icv-1.c: New test.
3072 * testsuite/libgomp.c/icv-2.c: New test.
3073 * testsuite/libgomp.c/lib-2.c: New test.
3074 * testsuite/libgomp.c/lock-1.c: New test.
3075 * testsuite/libgomp.c/lock-2.c: New test.
3076 * testsuite/libgomp.c/lock-3.c: New test.
3077 * testsuite/libgomp.c/loop-4.c: New test.
3078 * testsuite/libgomp.c/loop-5.c: New test.
3079 * testsuite/libgomp.c/loop-6.c: New test.
3080 * testsuite/libgomp.c/loop-7.c: New test.
3081 * testsuite/libgomp.c/loop-8.c: New test.
3082 * testsuite/libgomp.c/loop-9.c: New test.
3083 * testsuite/libgomp.c/nested-3.c: New test.
3084 * testsuite/libgomp.c/nestedfn-6.c: New test.
3085 * testsuite/libgomp.c/sort-1.c: New test.
3086 * testsuite/libgomp.c/task-1.c: New test.
3087 * testsuite/libgomp.c/task-2.c: New test.
3088 * testsuite/libgomp.c/task-3.c: New test.
3089 * testsuite/libgomp.c/task-4.c: New test.
3090 * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
3091 to C++ testsuite default compiler options.
3092 * testsuite/libgomp.c++/collapse-1.C: New test.
3093 * testsuite/libgomp.c++/collapse-2.C: New test.
3094 * testsuite/libgomp.c++/ctor-10.C: New test.
3095 * testsuite/libgomp.c++/for-1.C: New test.
3096 * testsuite/libgomp.c++/for-2.C: New test.
3097 * testsuite/libgomp.c++/for-3.C: New test.
3098 * testsuite/libgomp.c++/for-4.C: New test.
3099 * testsuite/libgomp.c++/for-5.C: New test.
3100 * testsuite/libgomp.c++/loop-8.C: New test.
3101 * testsuite/libgomp.c++/loop-9.C: New test.
3102 * testsuite/libgomp.c++/loop-10.C: New test.
3103 * testsuite/libgomp.c++/task-1.C: New test.
3104 * testsuite/libgomp.c++/task-2.C: New test.
3105 * testsuite/libgomp.c++/task-3.C: New test.
3106 * testsuite/libgomp.c++/task-4.C: New test.
3107 * testsuite/libgomp.c++/task-5.C: New test.
3108 * testsuite/libgomp.c++/task-6.C: New test.
3109 * testsuite/libgomp.fortran/allocatable1.f90: New test.
3110 * testsuite/libgomp.fortran/allocatable2.f90: New test.
3111 * testsuite/libgomp.fortran/allocatable3.f90: New test.
3112 * testsuite/libgomp.fortran/allocatable4.f90: New test.
3113 * testsuite/libgomp.fortran/collapse1.f90: New test.
3114 * testsuite/libgomp.fortran/collapse2.f90: New test.
3115 * testsuite/libgomp.fortran/collapse3.f90: New test.
3116 * testsuite/libgomp.fortran/collapse4.f90: New test.
3117 * testsuite/libgomp.fortran/lastprivate1.f90: New test.
3118 * testsuite/libgomp.fortran/lastprivate2.f90: New test.
3119 * testsuite/libgomp.fortran/lib4.f90: New test.
3120 * testsuite/libgomp.fortran/lock-1.f90: New test.
3121 * testsuite/libgomp.fortran/lock-2.f90: New test.
3122 * testsuite/libgomp.fortran/nested1.f90: New test.
3123 * testsuite/libgomp.fortran/nestedfn4.f90: New test.
3124 * testsuite/libgomp.fortran/strassen.f90: New test.
3125 * testsuite/libgomp.fortran/tabs1.f90: New test.
3126 * testsuite/libgomp.fortran/tabs2.f: New test.
3127 * testsuite/libgomp.fortran/task1.f90: New test.
3128 * testsuite/libgomp.fortran/task2.f90: New test.
3129 * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
3130 * testsuite/libgomp.fortran/vla5.f90: Likewise.
3131 * testsuite/libgomp.c/pr26943-2.c: Likewise.
3132 * testsuite/libgomp.c/pr26943-3.c: Likewise.
3133 * testsuite/libgomp.c/pr26943-4.c: Likewise.
3135 2008-05-23 Jakub Jelinek <jakub@redhat.com>
3138 * testsuite/libgomp.c++/ctor-11.C: New test.
3139 * testsuite/libgomp.c++/ctor-12.C: New test.
3141 2008-05-15 Janis Johnson <janis187@us.ibm.com>
3143 * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
3145 2008-05-07 Jakub Jelinek <jakub@redhat.com>
3148 * testsuite/libgomp.c/atomic-5.c: New test.
3149 * testsuite/libgomp.c/atomic-6.c: New test.
3150 * testsuite/libgomp.c/autopar-1.c: New test.
3152 2008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3154 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
3155 (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
3156 (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
3157 (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
3158 * configure: Regenerate.
3159 * Makefile.in, testsuite/Makefile.in: Likewise.
3161 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
3164 * aclocal.m4: Regenerate.
3165 * configure: Regenerate.
3167 2008-03-18 Jakub Jelinek <jakub@redhat.com>
3170 * testsuite/libgomp.c/atomic-4.c: New test.
3173 * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
3174 (gomp_iter_guided_next): Likewise.
3175 * testsuite/libgomp.c/pr35625.c: New test.
3177 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3179 * aclocal.m4: Regenerate.
3180 * configure: Likewise.
3181 * Makefile.in: Likewise.
3182 * testsuite/Makefile.in: Likewise.
3184 2008-03-13 Jakub Jelinek <jakub@redhat.com>
3187 * testsuite/libgomp.c++/pr35185.C: New test.
3189 2008-03-12 Jakub Jelinek <jakub@redhat.com>
3192 * testsuite/libgomp.c/pr35549.c: New test.
3194 2008-03-06 Jakub Jelinek <jakub@redhat.com>
3196 * testsuite/libgomp.c/atomic-3.c: New test.
3198 2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3201 * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
3204 2008-03-03 Peter O'Gorman <pogma@thewrittenword.com>
3207 * configure.ac: Add ACX_HEADER_STRING.
3208 * env.c: Include strings.h.
3209 * aclocal.m4: Regenerate.
3210 * config.h.in: Regenerate.
3211 * configure: Regenerate.
3212 * Makefile.in: Regenerate.
3213 * testsuite/Makefile.in: Regenerate.
3215 2008-02-15 Jakub Jelinek <jakub@redhat.com>
3218 * testsuite/libgomp.c/pr35196.c: New test.
3221 * testsuite/libgomp.fortran/pr35130.f90: New test.
3222 * testsuite/libgomp.c/pr35130.c: New test.
3224 2008-01-25 Jakub Jelinek <jakub@redhat.com>
3227 * testsuite/libgomp.c/pr33880.c: New test.
3228 * testsuite/libgomp.fortran/pr33880.f90: New test.
3230 2008-01-24 David Edelsohn <edelsohn@gnu.org>
3232 * configure: Regenerate.
3234 2008-01-08 Jakub Jelinek <jakub@redhat.com>
3236 * configure.ac: Move futex checking into ../config/futex.m4.
3237 * configure: Rebuilt.
3238 * aclocal.m4: Rebuilt.
3239 * Makefile.in: Rebuilt.
3241 * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
3242 2007-10-15 ../config/tls.m4 change.
3244 2007-12-19 Jakub Jelinek <jakub@redhat.com>
3247 * testsuite/libgomp.c/pr34513.c: New test.
3248 * testsuite/libgomp.c++/pr34513.C: New test.
3250 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
3253 * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
3255 2007-12-04 Jakub Jelinek <jakub@redhat.com>
3257 * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
3259 2007-12-03 Jakub Jelinek <jakub@redhat.com>
3261 * testsuite/libgomp.c/private-1.c: New test.
3263 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
3264 Paolo Bonzini <bonzini@gnu.org>
3266 * Makefile.am: Use space as vpath separator. Use 'vpath %'
3267 instead of 'VPATH ='.
3268 * Makefile.in: Regenerate.
3270 2007-11-23 Matthias Klose <doko@ubuntu.com>
3272 * configure.ac: Adjust makeinfo version check.
3273 * configure: Regenerate.
3275 2007-11-10 Jakub Jelinek <jakub@redhat.com>
3278 * testsuite/libgomp.fortran/pr34020.f90: New test.
3280 2007-11-06 Jakub Jelinek <jakub@redhat.com>
3283 * testsuite/libgomp.c++/atomic-1.C: New test.
3285 2007-10-25 Jakub Jelinek <jakub@redhat.com>
3288 * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
3289 Make x and y integers rather than (implicit) reals. Add private (j)
3290 clause to the last omp parallel.
3292 2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
3294 * configure: Regenerate following changes to ../config/tls.m4.
3296 2007-09-28 Jakub Jelinek <jakub@redhat.com>
3298 * testsuite/libgomp.fortran/stack.f90: New test.
3300 2007-09-10 Danny Smith <dannysmith@users.sourceforge.net>
3302 * config/mingw32/proc.c: New file.
3304 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
3306 * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
3307 (main): Use __get_cpuid to get i386 target fetaures.
3308 * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
3309 (main): Use __get_cpuid to get x86_64 target fetaures.
3311 2007-08-15 Jack Howarth <howarth@bromo.med.uc.edu>
3314 * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
3315 * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
3317 2007-07-12 Jakub Jelinek <jakub@redhat.com>
3320 * testsuite/libgomp.fortran/pr32550.f90: New test.
3321 * testsuite/libgomp.fortran/crayptr2.f90: New test.
3323 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
3325 * aclocal.m4: Regenerated.
3327 2007-07-05 Tobias Burnus <burnus@net-b.de>
3330 * testsuite/libgomp.fortran/pr32359.f90: New.
3332 2007-07-02 Jakub Jelinek <jakub@redhat.com>
3335 * sections.c (GOMP_parallel_sections_start): Only decrease
3336 number of threads to COUNT if dyn_var is true.
3337 * testsuite/libgomp.c/pr32468.c: New test.
3339 2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3342 * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
3344 2007-06-21 Jakub Jelinek <jakub@redhat.com>
3347 * testsuite/libgomp.c/pr32362-1.c: New test.
3348 * testsuite/libgomp.c/pr32362-2.c: New test.
3349 * testsuite/libgomp.c/pr32362-3.c: New test.
3351 2007-06-07 Jakub Jelinek <jakub@redhat.com>
3353 * team.c (gomp_team_start): Fix setting up thread_attr
3356 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
3358 * configure: Regenerate.
3360 2007-05-23 Steve Ellcey <sje@cup.hp.com>
3362 * Makefile.in: Regenerate.
3363 * configure: Regenerate.
3364 * aclocal.m4: Regenerate.
3365 * testsuite/Makefile.in: Regenerate.
3367 2007-05-04 Jakub Jelinek <jakub@redhat.com>
3369 * config/linux/proc.c: New file.
3372 * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
3374 2007-04-19 Daniel Franke <franke.daniel@gmail.com>
3376 * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
3378 2007-04-16 Matthias Klose <doko@debian.org>
3380 * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
3381 flags if not building with -m64.
3382 * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
3383 flag for i?86-*-* targets, if current target matches -m64.
3385 2007-04-14 Steve Ellcey <sje@cup.hp.com>
3387 * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
3388 * Makefile.in: Regenerate.
3390 2007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3393 * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
3395 * testsuite/libgomp.fortran/fortran.exp: Likewise.
3397 2007-04-04 Jakub Jelinek <jakub@redhat.com>
3399 * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
3401 (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
3402 * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
3403 (parse_affinity): New function.
3404 (initialize_env): Call it and gomp_init_affinity.
3405 * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
3406 create new pthread_attr_t and call gomp_init_thread_affinity
3407 on it for each thread before passing the attribute to pthread_create.
3408 * config/linux/affinity.c: New file.
3409 * config/posix/affinity.c: New file.
3410 * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
3411 * configure: Rebuilt.
3412 * config.h.in: Rebuilt.
3413 * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
3414 * Makefile.in: Rebuilt.
3416 2007-03-23 Andreas Tobler <a.tobler@schweiz.org>
3418 * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
3420 * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
3421 and use it if found.
3423 2007-03-18 Uros Bizjak <ubizjak@gmail.com>
3425 * testsuite/config/default.exp: New file.
3426 * testsuite/lib/libgomp.exp: New file.
3427 * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
3428 libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
3429 load_lib *, load_gcc_lib *): Move to libgomp.exp.
3430 (libgomp_load): Remove.
3431 * testsuite/lib/libgomp.exp (libgomp_init): Compute
3432 always_ld_library_path, not ld_library_path. Set additional_flags
3433 to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
3434 (target_compile): Do not call libgomp_init. Append lang_library_path
3435 and lang_link_flags to options.
3436 * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set
3437 ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH
3439 * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
3440 always_ld_library_path. Set LD_LIBRARY_PATH here.
3441 * testsuite/libgomp.fortran/fortran.exp: Ditto.
3442 * testsuite/libgomp.c/atomic-1.c: Set dg-options to
3443 "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
3445 * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
3446 lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
3447 * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
3448 * testsuite/libgomp.c/pr29947-1.c: Ditto.
3449 * testsuite/libgomp.c/atomic-10.c: Ditto.
3451 2007-03-21 Jakub Jelinek <jakub@redhat.com>
3453 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
3454 dg-final cleanup-modules line.
3455 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
3456 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
3457 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
3458 * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
3459 * testsuite/libgomp.fortran/reduction5.f90: Likewise.
3460 * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
3461 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
3463 2007-03-18 Andreas Schwab <schwab@suse.de>
3465 * acinclude.m4: Adjust regular expression for ld version
3467 * configure: Regenerate.
3469 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
3471 * Makefile.am: Add install-pdf target as copied from
3472 automake v1.10 rules.
3473 * Makefile.in: Regenerate
3475 2007-02-07 Jakub Jelinek <jakub@redhat.com>
3478 * configure: Regenerate.
3481 * testsuite/libgomp.c++/pr30703.C: New test.
3483 2007-02-02 Jakub Jelinek <jakub@redhat.com>
3486 2006-07-05 Eric Christopher <echristo@apple.com>
3487 * configure.ac: Depend addition of -pthread on host OS.
3488 * configure: Regenerate.
3490 2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3492 * libgomp.texi: Fix spacing after abbreviations.
3494 2007-01-31 Daniel Franke <franke.daniel@gmail.com>
3497 * configure.ac: Add check for makeinfo
3498 * Makefile.am: Redefined target libgomp.info, build libgomp.info only
3499 if an appropiate version of makeinfo is found.
3500 * aclocal.m4: Regenerated.
3501 * configure: Regenerated.
3502 * Makefile.in: Regenerated.
3503 * testsuite/Makefile.in: Regenerated.
3505 2007-01-29 Daniel Franke <franke.daniel@gmail.com>
3508 * libgomp.texi: More about implementation-dependent settings.
3510 2007-01-26 Tobias Burnus <burnus@net-b.de>
3512 * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
3514 2007-01-24 Jakub Jelinek <jakub@redhat.com>
3517 * testsuite/libgomp.c/pr30494.c: New test.
3519 2007-01-15 Tom Tromey <tromey@redhat.com>
3521 * configure: Rebuilt.
3522 * configure.ac: Fixed comment.
3524 2007-01-14 Daniel Franke <franke.daniel@gmail.com>
3526 * libgomp.texi: Document implementation specific default values of
3527 environment variables.
3529 2006-12-21 Daniel Franke <franke.daniel@gmail.com>
3532 * libgomp.texi: New file.
3533 * configure.ac: Add --enable-generated-files-in-srcdir option.
3534 * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
3536 * Makefile.in: Regenerated.
3537 * config.h.in: Regenerated.
3538 * testsuite/Makefile.in: Regenerated.
3541 2006-12-04 Daniel Franke <franke.daniel@gmail.com>
3544 * env.c (omp_set_num_threads): Set illegal thread count to 1.
3546 2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3548 * configure: Regenerate.
3550 2006-12-04 Jakub Jelinek <jakub@redhat.com>
3553 * loop.c (gomp_loop_init): Make parameters signed. Set ws->end to
3554 start if there shouldn't be any loop iterations.
3555 (gomp_loop_ordered_static_start): Remove start == end test.
3556 * testsuite/libgomp.c/pr29947-1.c: New test.
3557 * testsuite/libgomp.c/pr29947-2.c: New test.
3559 2006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr>
3561 * configure.tgt: Force initial-exec TLS model on Linux only.
3563 2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
3565 * configure: Regenerated.
3567 2006-11-09 Uros Bizjak <ubizjak@gmail.com>
3569 * env.c (parse_schedule): Reject out of range values.
3570 (parse_unsigned_long): Reject out of range, negative or zero values.
3572 2006-10-29 Jakub Jelinek <jakub@redhat.com>
3575 * testsuite/libgomp.fortran/pr29629.f90: New test.
3577 2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr>
3580 * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
3581 * config/posix95: New directory.
3582 * config/posix95/omp-lock.h: New file.
3583 * config/posix95/lock.c: Likewise.
3585 2006-10-14 Geoffrey Keating <geoffk@apple.com>
3587 * aclocal.m4: Regenerate.
3588 * configure: Regenerate.
3590 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
3592 * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
3595 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
3597 * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
3599 * configure: Regenerate.
3600 * fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
3602 2006-09-26 Jakub Jelinek <jakub@redhat.com>
3606 * testsuite/libgomp.c/nestedfn-4.c: New test.
3607 * testsuite/libgomp.c/nestedfn-5.c: New test.
3608 * testsuite/libgomp.fortran/nestedfn3.f90: New test.
3611 * testsuite/libgomp.fortran/condinc1.f: New test.
3612 * testsuite/libgomp.fortran/condinc2.f: New test.
3613 * testsuite/libgomp.fortran/condinc3.f90: New test.
3614 * testsuite/libgomp.fortran/condinc4.f90: New test.
3615 * testsuite/libgomp.fortran/condinc1.inc: New file.
3617 2006-09-18 Tom Tromey <tromey@redhat.com>
3619 * configure: Rebuilt.
3621 2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
3624 PR preprocessor/14634
3625 * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
3627 * configure: Regenerate.
3629 2006-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
3631 * testsuite/libgomp.fortran/reduction3.f90: Change
3632 -2147483648 to -huge(i)-1 to avoid overflow.
3633 * testsuite/libgomp.fortran/reduction4.f90: Change
3634 Z'ffffffff' to not(0) to avoid overflow.
3636 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
3639 * Makefile.am (libsubincludedir): New.
3640 (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
3641 * Makefile.in: Regenerate.
3643 2006-08-17 Jakub Jelinek <jakub@redhat.com>
3646 * env.c: Include ctype.h.
3647 (parse_schedule, parse_unsigned_long, parse_boolean): Allow
3648 leading and/or trailing whitespace and compare strings case
3651 2006-07-16 Jakub Jelinek <jakub@redhat.com>
3654 * testsuite/libgomp.fortran/pr28390.f: New test.
3656 2006-07-05 Eric Christopher <echristo@apple.com>
3658 * configure.ac: Depend addition of -pthread on host OS.
3659 * configure: Regenerate.
3661 2006-06-21 Jakub Jelinek <jakub@redhat.com>
3663 * critical.c (GOMP_critical_name_start): Fix *pptr initialization
3664 when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
3667 2006-06-20 Jakub Jelinek <jakub@redhat.com>
3671 * configure.ac: If neither --enable-linux-futex nor
3672 --disable-linux-futex is passed, determine the default by checking
3673 for compiling and/or running against NPTL. With --enable-linux-futex,
3674 check if SYS_gettid and SYS_futex are defined.
3675 * configure: Rebuilt.
3677 2006-06-14 Richard Henderson <rth@redhat.com>
3680 * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
3681 undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
3683 2006-06-09 Richard Henderson <rth@redhat.com>
3685 * env.c (gomp_nthreads_var): Change to unsigned long.
3686 (gomp_run_sched_chunk): Likewise.
3687 (parse_unsigned_long): Rename from parse_num_threads and generalize.
3688 (initialize_env): Initialize gomp_thread_attr.
3689 * libgomp.h (gomp_nthreads_var): Update decl.
3690 (gomp_run_sched_chunk): Likewise.
3691 (gomp_thread_attr): Declare.
3692 * team.c (gomp_thread_attr): Export.
3693 (initialize_team): Don't initialize it.
3695 2006-06-09 Jakub Jelinek <jakub@redhat.com>
3698 * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3699 * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3701 2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3703 * config/mingw32/time.c: New file.
3704 * configure.tgt: Use it.
3706 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3708 * Makefile.am: Add install-html target. Add install-html to .PHONY
3709 * Makefile.in: Regenerate.
3711 2006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3714 * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3715 * testsuite/libgomp.c/critical-1.c: Likewise.
3716 * testsuite/libgomp.c/loop-1.c: Likewise.
3717 * testsuite/libgomp.c/loop-2.c: Likewise.
3718 * testsuite/libgomp.c/single-1.c: Likewise.
3719 * testsuite/libgomp.c/ordered-1.c: Likewise.
3720 * testsuite/libgomp.c/ordered-2.c: Likewise.
3722 2006-05-15 Jakub Jelinek <jakub@redhat.com>
3725 * libgomp.fortran/pr27416-1.f90: New test.
3727 2006-05-03 Jakub Jelinek <jakub@redhat.com>
3730 * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3731 * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3733 2006-05-02 Jakub Jelinek <jakub@redhat.com>
3736 * testsuite/libgomp.c/pr26943-1.c: New test.
3737 * testsuite/libgomp.c/pr26943-2.c: New test.
3738 * testsuite/libgomp.c/pr26943-3.c: New test.
3739 * testsuite/libgomp.c/pr26943-4.c: New test.
3740 * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3741 * testsuite/libgomp.c++/pr26943.C: New test.
3743 2006-05-02 Jakub Jelinek <jakub@redhat.com>
3746 * testsuite/libgomp.c++/pr27337.C: New test.
3748 2006-04-26 Jakub Jelinek <jakub@redhat.com>
3751 * testsuite/libgomp.c/pr26171.c: New test.
3753 2006-04-25 Richard Henderson <rth@redhat.com>
3756 * configure.ac: Use GCC_CHECK_TLS.
3757 * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3758 * Makefile.in, aclocal.m4, configure: Regenerate.
3760 2006-04-10 Matthias Klose <doko@debian.org>
3762 * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3763 directory names containing underscores.
3765 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3768 * testsuite/libgomp.c++/pr26691.C: New test.
3770 2006-03-13 Jakub Jelinek <jakub@redhat.com>
3772 * testsuite/libgomp.fortran/retval2.f90: New test.
3774 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3776 * testsuite/libgomp.c++: New directory.
3778 2006-02-25 Shantonu Sen <ssen@opendarwin.org>
3780 * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3781 * config/posix/sem.c: Implement the above.
3783 2006-02-25 Andreas Tobler <a.tobler@schweiz.ch>
3785 * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3786 define HAVE_BROKEN_POSIX_SEMAPHORES.
3787 * configure: Rebuilt.
3788 * config.h.in: Rebuilt.
3790 2006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3793 * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3794 for the other pthread check.
3795 * configure: Regenerate.
3796 * config.h.in: Regenerate.
3798 2006-02-15 Jakub Jelinek <jakub@redhat.com>
3802 * Makefile.am (fincludedir): New variable.
3803 (nodist_include_HEADERS): Remove Fortran files.
3804 (nodist_finclude_HEADERS): New variable.
3805 * Makefile.in: Regenerated.
3807 2006-02-13 Jakub Jelinek <jakub@redhat.com>
3809 * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3810 Remove tests for returning assumed character length arrays.
3812 2006-02-12 Roger Sayle <roger@eyesopen.com>
3813 John David Anglin <dave@hiauly1.hia.nrc.ca>
3816 * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3818 2006-02-08 Ulrich Weigand <uweigand@de.ibm.com>
3820 * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3822 2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
3824 * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3825 part of LD_LIBRARY_PATH manually.
3827 2006-02-03 H.J. Lu <hongjiu.lu@intel.com>
3830 * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3833 2005-01-25 Paolo Bonzini <bonzini@gnu.org>
3836 * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3837 * configure.ac (PERL): Don't set.
3838 (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3839 (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3840 OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3841 * omp.h.in: Wrap the new configure substitutions with @ characters.
3842 * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3843 * aclocal.m4, configure, Makefile.in: Regenerate.
3844 * mkomp_h.pl: Delete.
3846 2005-01-24 Paolo Bonzini <bonzini@gnu.org>
3849 * configure.ac: Use GCC_HEADER_STDINT.
3850 * libgomp.h: Include gstdint.h.
3851 * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3852 * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3854 2006-01-24 Richard Henderson <rth@redhat.com>
3857 * configure.ac: Add AM_MAINTAINER_MODE.
3858 * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3860 2006-01-24 Diego Novillo <dnovillo@redhat.com>
3862 * Makefile.in: Regenerate.
3863 * testsuite/Makefile.in: Regenerate.
3864 * aclocal.m4: Regenerate.
3866 2006-01-23 Andreas Tobler <a.tobler@schweiz.ch>
3868 * config/posix/proc.c: Conditional include of sys/loadavg.h for
3870 * configure.ac: Add check for loadavg.h.
3871 (link_gomp): Adjust comment.
3872 * configure: Regenerate.
3873 * config.h.in: Regenerate.
3875 2006-01-21 Steve Ellcey <sje@cup.hp.com>
3878 * configure.ac: Remove check for alloca.h.
3879 * configure: Regenerate.
3880 * config.h.in: Regenerate.
3881 * libgomp.h: define gomp_alloca to be __builtin_alloca.
3882 * team.c: Remove use of alloca.h.
3883 Call gomp_alloca instead of alloca.
3885 2006-01-20 Steve Ellcey <sje@cup.hp.com>
3888 * team.c: Add include of alloca.h.
3889 * configure.ac: Add check for alloca.h.
3890 * configure: Regenerate.
3891 * config.h.in: Regenerate.
3893 2006-01-17 Jakub Jelinek <jakub@redhat.com>
3896 * testsuite/libgomp.fortran/pr25219.f90: New test.
3898 2005-12-05 Uros Bizjak <uros@kss-loka.si>
3900 * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3901 testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3902 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3903 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3904 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3905 testsuite/libgomp.fortran/threadprivate1.f90,
3906 testsuite/libgomp.fortran/threadprivate2.f90,
3907 testsuite/libgomp.fortran/threadprivate3.f90,
3908 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3909 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3910 testsuite/libgomp.fortran/omp_parse3.f90: Change required
3911 effective-target to TLS runtime.
3913 * testsuite/libgomp.fortran/pr25162.f: Require
3914 effective-target TLS runtime.
3916 2005-12-01 Jakub Jelinek <jakub@redhat.com>
3918 * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3919 * testsuite/libgomp.c/nestedfn-3.c: New test.
3921 2005-11-30 Jakub Jelinek <jakub@redhat.com>
3924 * testsuite/libgomp.fortran/pr25162.f: New test.
3926 2005-11-28 Jakub Jelinek <jakub@redhat.com>
3928 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3929 CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3931 2005-11-25 Jakub Jelinek <jakub@redhat.com>
3933 * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3934 libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3935 omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3936 single.c, team.c, work.c, config/linux/alpha/futex.h,
3937 config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3938 config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3939 config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3940 config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3941 config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3942 config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3943 config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3946 2005-11-18 Jakub Jelinek <jakub@redhat.com>
3948 * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3949 to nodist_noinst_HEADERS.
3950 * Makefile.in: Rebuilt.
3952 * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3953 add integer count field.
3954 * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3955 omp_nest_lock_t type change.
3956 (omp_init_nest_lock): Likewise. Initialize count to 0.
3957 (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3959 (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3961 (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3962 Increment count if successful and return the new nesting level.
3963 * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3964 * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3965 * testsuite/libgomp.c/lib-1.c: New test.
3966 * testsuite/libgomp.fortran/lib1.f90: New test.
3967 * testsuite/libgomp.fortran/lib2.f: New test.
3968 * testsuite/libgomp.fortran/lib3.f: New test.
3970 2005-11-17 Richard Henderson <rth@redhat.com>
3973 * Makefile.am (nodist_toolexeclib_HEADERS): New.
3974 * configure.ac (link_gomp): New. Substitute it.
3975 (AC_CONFIG_FILES): Add libgomp.spec.
3976 * libgomp.spec.in: New file.
3977 * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3978 * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3980 2005-11-18 Jakub Jelinek <jakub@redhat.com>
3982 * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3983 reduction(-:var) behaving the same as reduction(+:var).
3984 * testsuite/libgomp.c/reduction-4.c: New test.
3986 2005-11-15 Uros Bizjak <uros@kss-loka.si>
3988 * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3989 testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3990 testsuite/libgomp.c/copyin-3.c,
3991 testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3992 testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3993 testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3994 testsuite/libgomp.c++/pr24455.C,
3995 testsuite/libgomp.fortran/threadprivate1.f90,
3996 testsuite/libgomp.fortran/threadprivate2.f90,
3997 testsuite/libgomp.fortran/threadprivate3.f90,
3998 testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3999 testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4000 testsuite/libgomp.fortran/omp_parse3.f90: Require
4001 effective-target TLS.
4003 2005-11-14 Diego Novillo <dnovillo@redhat.com>
4007 2005-11-13 Jakub Jelinek <jakub@redhat.com>
4010 * team.c (initialize_team): Pass NULL rather than free as
4011 pthread_key_create destructor. Initialize thread specific data
4012 pointer in initial thread to a static local variable rather than
4015 2005-11-11 Uros Bizjak <uros@kss-loka.si>
4017 * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
4018 its location to ld_library_path.
4020 2005-11-10 Diego Novillo <dnovillo@redhat.com>
4022 * testsuite/libgomp.c/c.exp: Rename from dg.exp.
4024 2005-11-10 Diego Novillo <dnovillo@redhat.com>
4026 * testsuite/libgomp.c: Rename from libgomp.dg.
4028 2005-11-09 Diego Novillo <dnovillo@redhat.com>
4030 * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
4031 threadprivate variable 'i'.
4033 2005-11-09 Jakub Jelinek <jakub@redhat.com>
4035 * config/linux/s390/futex.h: New file.
4036 * configure.tgt: Use it.
4038 * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
4039 before the parallel.
4041 2005-11-08 Jakub Jelinek <jakub@redhat.com>
4044 * testsuite/libgomp.c++/master-1.C: New test.
4046 2005-11-07 Jakub Jelinek <jakub@redhat.com>
4048 * testsuite/libgomp.dg/copyin-3.c: New test.
4050 2005-11-07 Jakub Jelinek <jakub@redhat.com>
4052 * testsuite/libgomp.fortran/retval1.f90: New test.
4053 * testsuite/libgomp.fortran/vla7.f90: New test.
4055 2005-11-06 Jakub Jelinek <jakub@redhat.com>
4057 * testsuite/libgomp.fortran/vla2.f90: New test.
4058 * testsuite/libgomp.fortran/vla3.f90: New test.
4059 * testsuite/libgomp.fortran/vla4.f90: New test.
4060 * testsuite/libgomp.fortran/vla5.f90: New test.
4061 * testsuite/libgomp.fortran/vla6.f90: New test.
4063 2005-11-01 Jakub Jelinek <jakub@redhat.com>
4065 * config/linux/sparc/futex.h: New file.
4066 * configure.tgt: Use it.
4067 * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
4069 * critical.c: Include stdlib.h.
4070 * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
4071 ignoring return value.
4072 * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
4073 LIBGOMP_CHECK_SYNC_BUILTINS check.
4074 * configure: Rebuilt.
4076 2005-10-31 Jakub Jelinek <jakub@redhat.com>
4078 * testsuite/libgomp.fortran/vla1.f90: New test.
4080 2005-10-31 Richard Henderson <rth@redhat.com>
4082 * testsuite/libgomp.fortran/character2.f90: Fix race condition
4083 setting 's' in different threads.
4085 2005-10-31 Jakub Jelinek <jakub@redhat.com>
4087 * libgomp.h (attribute_hidden, ialias): Define.
4088 * config/posix/proc.c (omp_get_num_procs): Add ialias.
4089 * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
4090 * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
4091 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4092 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4093 omp_test_lock, omp_test_nest_lock): Likewise.
4094 * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
4095 omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4096 omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4097 omp_test_lock, omp_test_nest_lock): Likewise.
4098 * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
4099 omp_get_dynamic, omp_get_nested): Likewise.
4100 * parallel.c (omp_get_num_threads, omp_get_max_threads,
4101 omp_get_thread_num, omp_in_parallel): Likewise.
4102 * fortran.c (ialias_redirect): Define.
4103 (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
4104 omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
4105 omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
4106 omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
4107 omp_set_num_threads, omp_get_dynamic, omp_get_nested,
4108 omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
4109 omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
4110 omp_get_wtime): Add ialias_redirect.
4112 2005-10-30 Jakub Jelinek <jakub@redhat.com>
4114 * fortran.c: Include stdlib.h.
4116 2005-10-29 Jakub Jelinek <jakub@redhat.com>
4118 * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
4119 * Makefile.in: Regenerated.
4121 2005-10-28 Jakub Jelinek <jakub@redhat.com>
4123 * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
4124 * libgomp_f.h.in (omp_check_defines): New function.
4125 * env.c: Include libgomp_f.h.
4126 (initialize_env): Call omp_check_defines.
4128 * testsuite/libgomp.dg/copyin-2.c: New test.
4129 * testsuite/libgomp.c++/copyin-2.C: New test.
4130 * testsuite/libgomp.fortran/threadprivate3.f90: New test.
4132 * testsuite/libgomp.fortran/threadprivate2.f90: New test.
4133 * testsuite/libgomp.fortran/sharing2.f90: New test.
4135 * testsuite/libgomp.dg/copyin-1.c: New test.
4136 * testsuite/libgomp.c++/copyin-1.C: New test.
4138 2005-10-26 Jakub Jelinek <jakub@redhat.com>
4140 * testsuite/libgomp.fortran/crayptr1.f90: New test.
4142 * testsuite/libgomp.fortran/workshare1.f90: New test.
4144 * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
4146 * libgomp.fortran/sharing1.f90: New test.
4148 2005-10-24 Jakub Jelinek <jakub@redhat.com>
4151 * testsuite/libgomp.c++/loop-7.C: New test.
4153 * testsuite/libgomp.dg/nestedfn-2.c: New test.
4155 * testsuite/libgomp.dg/nestedfn-1.c: New test.
4156 * testsuite/libgomp.fortran/reduction6.f90: New test.
4157 * testsuite/libgomp.fortran/nestedfn1.f90: New test.
4159 2005-10-23 Richard Henderson <rth@redhat.com>
4161 * testsuite/libgomp.c++/ctor-1.C: New.
4162 * testsuite/libgomp.c++/ctor-2.C: New.
4163 * testsuite/libgomp.c++/ctor-3.C: New.
4164 * testsuite/libgomp.c++/ctor-4.C: New.
4165 * testsuite/libgomp.c++/ctor-5.C: New.
4166 * testsuite/libgomp.c++/ctor-6.C: New.
4167 * testsuite/libgomp.c++/ctor-7.C: New.
4168 * testsuite/libgomp.c++/ctor-8.C: New.
4169 * testsuite/libgomp.c++/ctor-9.C: New.
4171 2005-10-21 Diego Novillo <dnovillo@redhat.com>
4174 * testsuite/libgomp.c++/pr24455-1.C: New test.
4175 * testsuite/libgomp.c++/pr24455.C: New test.
4176 * testsuite/libgomp.dg/pr24455-1.c: New test.
4177 * testsuite/libgomp.dg/pr24455.c: New test.
4179 2005-10-20 Richard Henderson <rth@redhat.com>
4181 * testsuite/libgomp.c++/loop-6.C: New.
4182 * testsuite/libgomp.dg/loop-3.c: New.
4184 2005-10-20 Jakub Jelinek <jakub@redhat.com>
4186 * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
4188 * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
4191 2005-10-19 Diego Novillo <dnovillo@redhat.com>
4193 * testsuite/libgomp.fortran/jacobi.f: New test.
4195 2005-10-19 Richard Henderson <rth@redhat.com>
4197 * configure.tgt (i?86-linux): Default to with_arch instead of
4198 CFLAGS. Add -mtune to match target_cpu.
4199 (x86_64-linux): Tune to i686.
4201 * fortran.c (omp_test_nest_lock_): Fix typo.
4203 2005-10-19 Jakub Jelinek <jakub@redhat.com>
4205 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4206 gomp_ordered_sync): Do nothing if team->nthreads == 1.
4207 * testsuite/libgomp.dg/ordered-3.c: New test.
4209 * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
4210 Remove volatile keyword.
4212 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
4213 in COMMON block to avoid warnings on 64-bit targets.
4215 2005-10-18 Diego Novillo <dnovillo@redhat.com>
4217 * testsuite/libgomp.dg/shared-3.c: New test.
4219 2005-10-18 Jakub Jelinek <jakub@redhat.com>
4221 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
4222 * testsuite/libgomp.fortran/reduction5.f90: New test.
4224 2005-10-18 Jakub Jelinek <jakub@redhat.com>
4226 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
4228 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable
4229 flush loop now that __sync_synchronize has proper memory barrier.
4230 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
4231 Add -ffixed-form to dg-options.
4233 2005-10-17 Diego Novillo <dnovillo@redhat.com>
4235 * testsuite/libgomp.fortran/fortran.exp: Also gather tests
4236 from subdirectories.
4237 * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
4238 * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
4239 * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
4240 * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
4241 * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
4242 * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
4243 * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
4244 * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
4245 * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
4246 * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
4247 * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
4248 * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
4249 * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
4250 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
4251 * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
4252 * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
4253 * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
4254 * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
4255 * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
4256 * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
4257 * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
4258 * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
4259 * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
4260 * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
4261 * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
4263 2005-10-17 Jakub Jelinek <jakub@redhat.com>
4265 * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
4266 lang_library_path exists. Use find instead of glob to gather tests.
4267 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
4269 2005-10-17 Diego Novillo <dnovillo@redhat.com>
4271 * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
4272 * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
4273 * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
4274 * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
4275 * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
4276 * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
4277 * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
4278 * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
4279 * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
4280 * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
4281 * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
4282 * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
4283 * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
4285 2005-10-15 Jakub Jelinek <jakub@redhat.com>
4287 * testsuite/libgomp.dg/vla-1.c: New test.
4289 * testsuite/libgomp.fortran/reference2.f90: New test.
4291 * testsuite/libgomp.fortran/character2.f90: Remove explicit
4292 declaration of omp_get_thread_num.
4293 * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add
4296 * testsuite/libgomp.fortran/reduction1.f90: New test.
4297 * testsuite/libgomp.fortran/reduction2.f90: New test.
4298 * testsuite/libgomp.fortran/reduction3.f90: New test.
4299 * testsuite/libgomp.fortran/reduction4.f90: New test.
4301 2005-10-13 Richard Henderson <rth@redhat.com>
4303 * Makefile.am (libgomp_la_SOURCES): Add bar.c.
4304 * Makefile.in: Regenerate.
4305 * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
4306 * libgomp.h: Include bar.h.
4307 (struct gomp_barrier): Remove.
4308 (struct gomp_team): Add barrier. Replace master_barrier with
4309 master_release. Replace threads with ordered_release.
4310 (struct gomp_thread): Replace barrier with release.
4311 * ordered.c (gomp_ordered_first): Update for ordered_release change.
4312 (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
4313 gomp_ordered_static_next, gomp_ordered_sync): Likewise.
4314 * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
4315 (GOMP_single_copy_end): Likewise.
4316 * team.c (gomp_threads_dock): New.
4317 (gomp_barrier_init, gomp_barrier_destroy): Remove.
4318 (gomp_thread_start): Use gomp_barrier_wait.
4319 (new_team, free_team): Update for gomp_team changes.
4320 (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
4321 (gomp_team_end): Use gomp_barrier_wait.
4322 (initialize_team): Update for gomp_thread changes.
4323 * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
4324 (gomp_work_share_end_nowait): Use atomic ops when available.
4325 * config/linux/bar.c, config/linux/bar.h: New files.
4326 * config/posix/bar.c, config/posix/bar.h: New files.
4328 2005-10-13 Jakub Jelinek <jakub@redhat.com>
4330 * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
4331 * testsuite/libgomp.dg/single-2.c: New test.
4333 * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
4334 lang_link_flags): Unset, so that they aren't inherited from previously
4337 * testsuite/libgomp.fortran/threadprivate1.f90: New test.
4339 2005-10-12 Richard Henderson <rth@redhat.com>
4341 * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
4342 (libgomp_init): Use lang_test_file, lang_library_path, and
4343 lang_link_flags, set by the subdirectory files. Add -fopenmp here.
4345 * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
4346 (lang_test_file, lang_link_flags): New.
4347 (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
4349 * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
4350 testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
4351 testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
4352 testsuite/libgomp.c++/parallel-1.C,
4353 testsuite/libgomp.c++/reduction-1.C,
4354 testsuite/libgomp.c++/reduction-2.C,
4355 testsuite/libgomp.c++/reduction-3.C,
4356 testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
4357 testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
4358 testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
4359 New files, largely cribbed from the C testsuite.
4361 2005-10-12 Jakub Jelinek <jakub@redhat.com>
4363 * testsuite/libgomp.fortran/character1.f90: New test.
4364 * testsuite/libgomp.fortran/character2.f90: New test.
4366 * testsuite/libgomp.dg/nested-1.c: New test.
4367 * testsuite/libgomp.dg/nested-2.c: New test.
4368 * testsuite/libgomp.fortran/do1.f90: New test.
4369 * testsuite/libgomp.fortran/do2.f90: New test.
4371 * testsuite/libgomp.fortran/reference1.f90: New test.
4373 2005-10-11 Jakub Jelinek <jakub@redhat.com>
4375 * testsuite/libgomp.dg/reduction-1.c: New test.
4376 * testsuite/libgomp.dg/reduction-2.c: New test.
4377 * testsuite/libgomp.dg/reduction-3.c: New test.
4379 2005-10-10 Jakub Jelinek <jakub@redhat.com>
4381 * testsuite/libgomp.dg/atomic-1.c: New test.
4382 * testsuite/libgomp.dg/atomic-2.c: New test.
4384 2005-10-09 Richard Henderson <rth@redhat.com>
4386 * critical.c (atomic_lock): New.
4387 (initialize_critical): Initialize it.
4388 (GOMP_atomic_start, GOMP_atomic_end): New.
4389 * libgomp.map: Export them.
4390 * libgomp_g.h: Declare them.
4392 * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
4394 2005-10-02 Richard Henderson <rth@redhat.com>
4396 * configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror
4397 to XCFLAGS instead of CFLAGS.
4399 2005-09-30 Richard Henderson <rth@redhat.com>
4401 * configure.ac: Determine whether -pthread or -lpthread is needed.
4402 * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
4403 * Makefine.in, configure: Rebuild.
4405 2005-09-28 Richard Henderson <rth@redhat.com>
4407 * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
4408 * testsuite/libgomp.dg/omp-single-3.c: New test.
4410 2005-09-28 Diego Novillo <dnovillo@redhat.com>
4412 * testsuite/libgomp.dg/omp-single-2.c: New test.
4413 * testsuite/libgomp.dg/shared-2.c: Fix return code.
4415 2005-09-27 Richard Henderson <rth@redhat.com>
4417 * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
4418 * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
4420 2005-09-27 Jakub Jelinek <jakub@redhat.com>
4422 * testsuite/libgomp.dg/omp-loop03.c: New test.
4424 2005-09-27 Diego Novillo <dnovillo@redhat.com>
4426 * testsuite/libgomp.dg/omp-parallel-for.c: New test.
4428 2005-09-27 Diego Novillo <dnovillo@redhat.com>
4430 * testsuite/libgomp.dg/omp-single-1.c: New test.
4431 * testsuite/libgomp.dg/shared-1.c: Return 0.
4432 Add prototype for abort.
4433 * testsuite/libgomp.dg/shared-2.c: Likewise.
4435 2005-09-26 Jakub Jelinek <jakub@redhat.com>
4437 * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
4440 2005-09-26 Diego Novillo <dnovillo@redhat.com>
4442 * testsuite/libgomp.dg/shared-1.c: New test.
4443 * testsuite/libgomp.dg/shared-2.c: New test.
4445 2005-09-24 Richard Henderson <rth@redhat.com>
4447 * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
4449 2005-09-24 Richard Henderson <rth@redhat.com>
4451 * iter.c (gomp_iter_static_next): Round up when computing number
4452 of iterations. Don't bother distributing a remainder equally.
4454 * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
4455 Don't call srand. Zero b before testing.
4458 2005-09-24 Jakub Jelinek <jakub@redhat.com>
4460 * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
4461 * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
4463 2005-09-23 Jakub Jelinek <jakub@redhat.com>
4465 * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
4466 without !$omp end do, followed immediately by subroutine end.
4468 2005-09-23 Diego Novillo <dnovillo@redhat.com>
4470 * testsuite/libgomp.dg/omp-parallel-if.c: New test.
4472 2005-09-22 Richard Henderson <rth@redhat.com>
4474 * critical.c (GOMP_critical_name_start): Change argument to void**.
4475 Reuse the pointer space if the mutex fits.
4476 (GOMP_critical_name_end): Likewise.
4477 (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
4478 * libgomp_g.h (GOMP_critical_name_start): Update decl.
4479 (GOMP_critical_name_end): Likewise.
4480 * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
4481 * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
4483 2005-09-20 Richard Henderson <rth@redhat.com>
4485 * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
4486 (create_lock_lock): New.
4487 (initialize_critical): Initialize it.
4488 * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
4489 * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
4491 2005-09-20 Diego Novillo <dnovillo@redhat.com>
4493 * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
4495 2005-09-20 Diego Novillo <dnovillo@redhat.com>
4497 * testsuite/libgomp.dg/omp-loop01.c: New test.
4498 * testsuite/libgomp.dg/omp-loop02.c: New test.
4500 2005-09-20 Jakub Jelinek <jakub@redhat.com>
4502 * configure.ac (AC_PROG_FC): Add.
4503 (USE_FORTRAN): New automake conditional.
4504 * configure: Rebuilt.
4505 * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
4506 (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
4507 If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
4508 Add rules to build them.
4509 * Makefile.in: Rebuilt.
4510 * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
4512 * libgomp.map: Add Fortran wrappers.
4513 * libgomp_f.h.in: New file.
4514 * omp_lib.h.in: New file.
4515 * omp_lib.f90.in: New file.
4516 * fortran.c: New file.
4517 * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
4518 Append libgfortran directory to LD_LIBRARY_PATH if it exists.
4519 Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
4520 libgfortran has been built.
4521 * testsuite/libgomp.fortran/fortran.exp: New file.
4522 * testsuite/libgomp.fortran/omp_cond1.f: New test.
4523 * testsuite/libgomp.fortran/omp_cond2.f: New test.
4524 * testsuite/libgomp.fortran/omp_cond3.F90: New test.
4525 * testsuite/libgomp.fortran/omp_cond4.F90: New test.
4526 * testsuite/libgomp.fortran/omp_hello.f: New test.
4527 * testsuite/libgomp.fortran/omp_orphan.f: New test.
4528 * testsuite/libgomp.fortran/omp_parse1.f90: New test.
4529 * testsuite/libgomp.fortran/omp_parse2.f90: New test.
4530 * testsuite/libgomp.fortran/omp_parse3.f90: New test.
4531 * testsuite/libgomp.fortran/omp_parse4.f90: New test.
4532 * testsuite/libgomp.fortran/omp_reduction.f: New test.
4533 * testsuite/libgomp.fortran/omp_workshare1.f: New test.
4534 * testsuite/libgomp.fortran/omp_workshare2.f: New test.
4536 2005-08-30 Richard Henderson <rth@redhat.com>
4538 * loop.c (GOMP_loop_static_start): Provide fallback wrapper
4539 function for when aliases are not usable.
4540 (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
4541 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4542 GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
4543 GOMP_loop_dynamic_next, GOMP_loop_guided_next,
4544 GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
4545 GOMP_loop_ordered_guided_next): Likewise.
4546 * ordered.c (GOMP_ordered_start): Likewise.
4548 2005-08-01 Diego Novillo <dnovillo@redhat.com>
4550 * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
4551 * testsuite/libgomp.dg/omp_hello.c: Fix return code
4552 * testsuite/libgomp.dg/omp_matvec.c: Likewise.
4553 * testsuite/libgomp.dg/omp_orphan.c: Likewise
4554 * testsuite/libgomp.dg/omp_reduction.c: Likewise
4555 * testsuite/libgomp.dg/omp_workshare1.c: Likewise
4556 * testsuite/libgomp.dg/omp_workshare2.c: Likewise
4557 * testsuite/libgomp.dg/omp_workshare3.c: Likewise
4558 * testsuite/libgomp.dg/omp_workshare4.c: Likewise
4560 2005-07-07 Eric Christopher <echristo@redhat.com>
4561 Diego Novillo <dnovillo@redhat.com>
4563 * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
4564 * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
4566 * testsuite/libgomp.dg/omp_matvec.c: Ditto.
4567 * testsuite/libgomp.dg/omp_orphan.c: Ditto.
4568 * testsuite/libgomp.dg/omp_reduction.c: Ditto.
4569 * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
4570 * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
4571 * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
4572 * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
4574 2005-06-13 Diego Novillo <dnovillo@redhat.com>
4576 * TOPLEVEL.patch: Remove.
4578 2005-05-16 Richard Henderson <rth@redhat.com>
4580 * configure.ac: Test for clock_gettime.
4581 * config.h.in, configure: Rebuild.
4582 * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
4583 (omp_get_wtime): Use clock_gettime if available.
4584 (omp_get_wtick): Use clock_getres if available.
4586 2005-05-11 Richard Henderson <rth@redhat.com>
4588 * config/linux/ia64/futex.h: New file.
4589 * configure.tgt: Use it.
4591 * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
4593 2005-05-07 Richard Henderson <rth@redhat.com>
4595 * config/linux/powerpc/futex.h: New file.
4596 * configure.tgt: Use it.
4598 * config/linux/i486/futex.h: Merge ...
4599 * config/linux/x86_64/futex.h: ... into ...
4600 * config/linux/x86/futex.h: ... here.
4601 * configure.tgt: Update to match.
4603 2005-05-06 Richard Henderson <rth@redhat.com>
4605 * config/linux/alpha/futex.h: Conditionally define SYS_futex.
4606 * config/linux/i486/futex.h: Likewise.
4607 * config/linux/x86_64/futex.h: Likewise.
4609 * config/linux/lock.c: New file.
4610 * config/linux/omp-lock.h: New file.
4612 * critical.c, env.h: Don't include omp.h
4613 * config/posix/lock.c: Include libgomp.h instead of omp.h.
4614 * config/posix/time.c: Likewise.
4615 * config/posix/omp-lock.h: New file.
4616 * libgomp.h: Include omp-lock.h and omp.h.
4617 * Makefile.am (nodist_include_HEADERS): New.
4619 * configure.ac (PERL): New.
4620 * mkomp_h.pl: New file.
4621 * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
4623 * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
4625 * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
4626 build directory. Re-add -march=i486 hack.
4628 * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
4629 (libgomp_link_flags): Remove.
4630 (libgomp_initialized): Remove.
4631 (libgomp_init): Don't protect from reinitialization. Copy code
4632 from libstdc++ for getting the multilib set correctly.
4634 2005-05-05 Richard Henderson <rth@redhat.com>
4636 * config/linux/alpha/futex.h: New file.
4637 * configure.tgt (alpha*-*-linux*): Use it.
4639 * config/posix/mutex.c: New file.
4640 * config/posix/sem.c: Use libgomp.h.
4642 * configure.tgt (x86_64-linux): Also test CC for -m32.
4643 * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
4645 * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
4648 * Makefile.am (SUBDIRS): New.
4649 (libgomp_la_LDFLAGS): Add -lpthread.
4650 * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
4651 * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
4653 * libgomp_g.h: New file.
4654 * libgomp.h: Split out all public declarations to libgomp_g.h.
4655 Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
4656 * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
4657 * config/linux/sem.h: Likewise.
4658 * config/posix/sem.h: Likewise.
4660 * Makefile.am (AM_LDFLAGS): New.
4661 (libgomp_version_script): Split out from ...
4662 (libgomp_la_LDFLAGS): ... here.
4663 (libgomp_version_info): New.
4664 * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
4665 (LIBGOMP_ENABLE): New.
4666 (LIBGOMP_CHECK_LINKER_FEATURES): New.
4667 (LIBGOMP_ENABLE_SYMVERS): New.
4668 * configure.ac (AC_INIT): Version 1.0.
4669 (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
4670 (enable-linux-futex): Likewise. Rename from enable-futex.
4671 (libtool_VERSION): New.
4672 (LIBGOMP_ENABLE_SYMVERS): Use it.
4673 * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
4674 * Makefile.in, aclocal.m4, configure: Rebuild.
4676 * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
4677 (gomp_mutex_unlock_slow): Fix typo.
4678 * config/linux/sem.c: Similarly.
4679 (gomp_sem_post_slow): Fix typo.
4680 * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
4681 * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
4682 [__PIC__] (sys_futex0): Don't use tmp output in asm.
4684 * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
4685 (libgomp_la_LDFLAGS): Add top_srcdir to path.
4686 * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
4687 * configure.ac: Check for getloadavg. Substitute XCFLAGS and
4688 XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
4689 * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
4690 LDFLAGS. Pull enable_futex check to top-level.
4691 * libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN.
4692 * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
4694 First attempt at real configury.
4695 * Makefile, config.h: Remove file.
4696 * Makefile.am, Makefile.in: New file.
4697 * acinclude.m4 aclocal.m4: New file.
4698 * configure.ac, configure.tgt, configure: New file.
4700 * config/posix/lock.c: Rename from sys-lock.c.
4701 * config/posix/mutex.h: Rename from sys-mutex.h.
4702 * config/posix/sem.c: Rename from sys-sem.c.
4703 * config/posix/sem.h: Rename from sys-sem.h.
4704 * config/posix/proc.c: Rename from sys-proc.c.
4705 * config/posix/time.c: Rename from sys-proc.c.
4707 * config/linux/mutex.c: New file.
4708 * config/linux/mutex.h: New file.
4709 * config/linux/sem.c: New file.
4710 * config/linux/sem.h: New file.
4711 * config/linux/i486/futex.h: New file.
4712 * config/linux/x86_64/futex.h: New file.
4714 2005-05-04 Richard Henderson <rth@redhat.com>
4716 * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4717 * libgomp.h: Declare them.
4718 * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4719 gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4721 2005-05-04 Richard Henderson <rth@redhat.com>
4723 * libgomp-1 code drop
4725 2005-05-04 Richard Henderson <rth@redhat.com>
4727 * iter.c (gomp_iter_static_next): Return tri-state on 0.
4728 * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4729 * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4730 (gomp_iter_static_next): Update.
4731 (gomp_ordered_static_next): Update.
4732 * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4733 (gomp_loop_ordered_static_start): Likewise. Exit early for a
4734 totally empty range.
4735 (gomp_loop_ordered_static_next): Refine test for calling
4736 gomp_ordered_static_next.
4737 * testsuite/ordered-1.c: Add case for more threads than iterations.
4739 * iter.c (gomp_iter_runtime_next_locked): Remove.
4740 * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4741 gomp_loop_guided_start, gomp_loop_ordered_static_start,
4742 gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4743 gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4744 gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4745 gomp_loop_ordered_guided_next): Downcase name, make static, add
4746 an external alias with the old name.
4747 (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4748 GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4749 switch and call one of the above static functions.
4750 * libgomp.h: Update.
4752 * work.c (gomp_work_share_start): Lock the mutex for !first too.
4753 * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4754 GOMP_loop_guided_start, GOMP_loop_runtime_start,
4755 GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4756 GOMP_loop_ordered_guided_start): Update to match.
4757 * sections.c (GOMP_sections_start): Likewise.
4758 * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4760 * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4761 gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4762 Use bounds check instead of modulus.
4763 (gomp_ordered_sync): Split out of GOMP_ordered_start.
4764 (gomp_ordered_last): Don't sync with ordered_owner here.
4765 (gomp_ordered_next): Likewise.
4766 (gomp_ordered_static_loop_next): Likewise.
4767 * loop.c, libgomp.h: Update to match.
4769 * libgomp.h (GOMP_barrier): Declare.
4771 * testsuite/barrier-1.c: New file.
4772 * testsuite/critical-1.c: New file.
4773 * testsuite/ordered-2.c: New file.
4774 * testsuite/ordered-1.c: New file.
4775 * testsuite/sections-1.c: New file.
4776 * testsuite/single-1.c: New file.
4777 * testsuite/Makefile (TESTS): Add them.
4779 2005-05-04 Richard Henderson <rth@redhat.com>
4781 * libgomp.h (struct gomp_work_share): Add ordered_owner.
4782 * loop.c (GOMP_loop_static_start): If not the startup thread,
4783 acquire the mutex to wait for initialization complete.
4784 (GOMP_loop_ordered_static_start): Likewise.
4785 (GOMP_loop_ordered_runtime_start): Likewise.
4786 (GOMP_loop_ordered_static_first): Remove.
4787 (GOMP_loop_ordered_dynamic_first): Remove.
4788 (GOMP_loop_ordered_guided_first): Remove.
4789 (GOMP_loop_ordered_runtime_first): Remove.
4790 * ordered.c (gomp_ordered_loop_first): Post to own release when
4791 we're the first thread.
4792 (gomp_ordered_loop_last): Wait on release if not owner.
4793 (gomp_ordered_loop_next): Likewise.
4794 (gomp_ordered_static_loop_init): New.
4795 (gomp_ordered_static_loop_next): Use ordered_owner.
4796 (GOMP_ordered_start): Likewise.
4797 * work.c (gomp_new_work_share): Initialize ordered_owner.
4799 2005-05-03 Richard Henderson <rth@redhat.com>
4801 * Makefile (OPT): New.
4804 * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4805 * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4806 * libgomp.h, libgomp.map, NOTES: Update to match.
4808 * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4809 Add initialized and thr members.
4810 (gomp_thread_start): Pause when initially spawned to wait for
4811 the whole team to be created.
4812 (gomp_team_start): Release team members at the end.
4814 * testsuite/loop-1.c (N): New. Use it instead of hardcoded 100.
4815 (f_foo_1): Use GOMP_loop_end.
4816 (f_foo_2): Use GOMP_loop_end_nowait.
4818 * testsuite/loop-2.c: New file.
4819 * testsuite/Makefile (TESTS): Add it.
4821 2005-05-03 Richard Henderson <rth@redhat.com>
4823 * iter.c (gomp_iter_static_next): Fix overflow check typo.
4824 (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4825 * team.c (new_team): Initialize oldest_live_gen to 1 if no
4828 * testsuite/Makefile: New file.
4829 * testsuite/loop-1.c: New file.
4831 2005-05-03 Richard Henderson <rth@redhat.com>
4833 Initial implementation and checkin.