Merge current set of OpenACC changes from gomp-4_0-branch.
[official-gcc.git] / libgomp / ChangeLog
blob9b003cbb027f5f54884bb9710e6e12fe7ea26103
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
27         export.
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
38         variables.
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
93         environment variable.
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
123         OpenACC changes.
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
147         procedures.
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:
290         Likewise.
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
358         all users.
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
365         "$tgt_dir/lib32".
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.
393         * team.c: Likewise.
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>
417         PR fortran/63938
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>
427         PR bootstrap/63784
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
439         of 32 as block_size.
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):
544         New structures.
545         (offload_images, num_offload_images, devices, num_devices): New static
546         variables.
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>
577         PR target/63610
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
611         declarations.
613 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
615         PR libgomp/61200
616         * testsuite/libgomp.c/pr61200.c: New test.
618 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
620         PR c++/63248
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
650         that task.
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>
671         PR c/6940
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
682         ALWAYS_CFLAGS.
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
702         SC macro.
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):
723         Make elemental.
724         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
725         omp_in): Likewise.
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
740         openmp_version.
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>
752         PR fortran/60928
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>
787         PR middle-end/61252
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>
842         PR c++/60331
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>
875         PR testsuite/59534
876         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
877         comparisons.
879 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
881         PR libgomp/58756
882         * testsuite/libgomp.c/pr58756.c: New test.
884 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
886         PR libgomp/59467
887         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
888         !$omp parallel.
890 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
892         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
893         ALWAYS_CFLAGS.
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):
898         Likewise.
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
915         order.
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>
924         PR libgomp/58691
925         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
926         to check variable.
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
939         list.
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
945         of 5 loopfn matches.
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
961         exceptions.
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
998         functions.
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
1002         @@GOMP_4.0.
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
1031         caller.
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
1040         sized places.
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):
1054         Define.
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
1067         and depend fields.
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
1083         prototypes.
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
1111         all tasks.
1112         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
1113         * omp_lib.f90.in
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
1146         free_work_share.
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
1168         thread.
1169         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
1170         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
1171         functions.
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
1194         prototypes.
1195         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
1196         defines.
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.
1209         Use BAR_* defines.
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
1213         argument.
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):
1240         New functions.
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>
1342         PR testsuite/57605
1343         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
1344         ALWAYS_CFLAGS.
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>
1386         PR fortran/57423
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
1392         the OpenMP spec.
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>
1409         PR middle-end/56217
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>
1419         PR libgomp/55561
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
1424         for ptrlock.
1426 2013-01-22  Alan Modra  <amodra@gmail.com>
1428         PR libgomp/51376
1429         PR libgomp/56073
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>
1439         PR driver/55884
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>
1460         PR libgomp/55411
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
1503         syscall insn.
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>
1539         PR middle-end/53580
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>
1550         PR libgomp/52993
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>
1564         PR bootstrap/52812
1565         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
1567 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
1569         PR middle-end/52547
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>
1593         PR libstdc++/52188
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.
1603         Use libgomp.ver.
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>
1624         PR libgomp/51376
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>
1631         PR libgomp/51132
1632         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1633         to file scope.
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>
1659         PR libgomp/51298
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
1664         double unlock.
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>
1680         PR libgomp/51249
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>
1702         PR fortran/49792
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>
1712         PR libgomp/49965
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>
1727         PR fortran/42041
1728         PR fortran/46752
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
1742         tasks.
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
1750         variables.
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
1799         __LP64__.
1801 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1803         PR middle-end/49897
1804         PR middle-end/49898
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>
1825         PR libgomp/45351
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>
1831         PR target/49541
1832         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1833         ldflags.
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
1839         it should be done.
1840         (do_wait): Implement using do_spin.
1841         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1842         to prototype.
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
1850         of two.
1851         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1852         to prototype.
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>
1859         PR libgomp/49490
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>
1873         PR c++/49043
1874         * testsuite/libgomp.c++/pr49043.C: New test.
1876         PR c++/48869
1877         * testsuite/libgomp.c++/pr48869.C: New test.
1879 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1881         PR fortran/48894
1882         * fortran.c: Include limits.h.
1883         (TO_INT): Define.
1884         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1885         *set.
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>
1893         PR middle-end/48591
1894         * testsuite/libgomp.c/pr48591.c: New test.
1896 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1898         PR bootstrap/48135
1899         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1900         * configure: Regenerate.
1902 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1904         PR fortran/47886
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>
1913         PR libgomp/47854
1914         * libgomp.texi (omp_get_wtime): Don't say time in the past
1915         must be Unix Epoch.
1917 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1919         PR libgomp/47804
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}
1923         to ld_library_path.
1925 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1927         PR libgomp/47758
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>
1933         PR libgomp/47731
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>
1944         PR libstdc++/36104
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>
1953         PR fortran/46874
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>
1963         PR target/40125
1964         PR lto/46695
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>
1974         PR fortran/46753
1975         * libgomp.fortran/pr46753.f90: New test.
1977         PR libgomp/43706
1978         * env.c (initialize_env): Default to spin count 300000
1979         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1980         is specified.
1982         PR libgomp/45240
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>
2001         PR fortran/32049
2002         * configure.ac:
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
2059         versioning.
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>
2076         PR bootstrap/43170
2077         * configure: Regenerate.
2079 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2081         PR other/43620
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>
2089         PR c/43893
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>
2095         PR middle-end/43570
2096         * testsuite/libgomp.fortran/vla8.f90: New test.
2098 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2100         PR libgomp/43706
2101         * config/linux/affinity.c (gomp_init_affinity): Decrease
2102         gomp_available_cpus if affinity mask confines the process to fewer
2103         CPUs.
2104         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
2105         non-NULL, just return gomp_available_cpus.
2107         PR libgomp/43569
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>
2124         PR libgomp/42942
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>
2134         PR middle-end/42644
2135         PR middle-end/42130
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>
2155         PR fortran/42866
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>
2169         PR libgomp/42602
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>
2188         PR target/41605
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>
2194         PR testsuite/42135
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>
2210         PR fortran/42162
2211         * testsuite/libgomp.fortran/pr42162.f90: New test.
2213 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
2215         PR middle-end/42029
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>
2230         PR libgomp/41418
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
2239         version.
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>
2278         PR fortran/41102
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
2291         only build.
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>
2309         PR testsuite/40699
2310         PR testsuite/40707
2311         PR testsuite/40709
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.
2329         Use add_path.
2330         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
2332 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
2334         * Makefile.am (LTLDFLAGS): Define.
2335         (LINK): Define.
2336         * Makefile.in: Regenerate.
2338 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
2340         PR fortran/39718
2341         * testsuite/libgomp.fortran/fortran.exp: Don't link with
2342         libgfortranbegin, check existence of libgfortran.a instead of
2343         libgfortranbegin.a.
2345 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
2347         PR libgomp/40174
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>
2354         PR fortran/35423
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.
2400         * env.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.
2407         * loop.c: 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.
2416         * task.c: Likewise.
2417         * team.c: Likewise.
2418         * work.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>
2428         PR middle-end/39573
2429         * libgomp.c++/pr39573.C: New test.
2431 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2433         PR other/39591
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>
2445         PR c/39495
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>
2458         PR middle-end/39154
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>
2475         PR libgomp/38086
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>
2484         PR c++/38650
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>
2502         PR middle-end/36802
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>
2509         PR libgomp/38270
2510         * config/linux/powerpc/mutex.h: New.
2512 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
2514         PR c++/38257
2515         * testsuite/libgomp.c++/for-7.C: New test.
2517         PR c++/38348
2518         * testsuite/libgomp.c++/for-6.C: New test.
2520 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
2522         PR testsuite/28870
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>
2528         PR libgomp/37938
2529         * config/linux/ia64/mutex.h: New.
2531 2008-11-04  Tobias Burnus  <burnus@net-b.de>
2533         PR libgomp/37935
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
2585         just one thread.
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.
2606         PR debug/36617
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.
2613         PR c++/36523
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>
2635         PR middle-end/36506
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.
2647         PR libgomp/36471
2648         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2649         omp_get_team_size_8): Fix pastos.
2651         PR libgomp/36469
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
2656         defined.
2658 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
2660         PR bootstrap/36452
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.
2681         * task.c: New file.
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
2734         decls.
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.
2741         (gomp_icv): New.
2742         (gomp_schedule_type): Reorder enum to match
2743         omp_sched_t.
2744         * team.c (struct gomp_thread_start_data): Add thread_pool and task
2745         fields.
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
2758         HAVE_SYNC_BUILTINS.
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
2764         functions.
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
2800         functions.
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
2820         GFS_AUTO.
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
2849         prototypes.
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):
2903         Likewise.
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,
2907         add ialias.
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_):
2922         New functions.
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,
2934         add ialias.
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
2942         lock around it.
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.
2947         Use gomp_icv.
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
2951         code.
2952         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2953         types.
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
2975         inlines.
2976         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2977         futex.h.
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
2995         inlines.
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
3002         futex.h.
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
3008         futex.h.
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
3049         futex.h.
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
3053         types.
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
3058         aren't broken.
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
3063         aren't broken.
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>
3137         PR c++/36308
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>
3147         PR middle-end/36106
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>
3163         PR bootstrap/35457
3164         * aclocal.m4: Regenerate.
3165         * configure: Regenerate.
3167 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3169         PR middle-end/35611
3170         * testsuite/libgomp.c/atomic-4.c: New test.
3172         PR libgomp/35625
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>
3186         PR middle-end/35185
3187         * testsuite/libgomp.c++/pr35185.C: New test.
3189 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3191         PR middle-end/35549
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>
3200         PR fortran/33197
3201         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
3202         .F08 file suffixes.
3204 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
3206         PR libgomp/33131
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>
3217         PR middle-end/35196
3218         * testsuite/libgomp.c/pr35196.c: New test.
3220         PR middle-end/35130
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>
3226         PR middle-end/33880
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>
3246         PR c++/34513
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>
3252         PR target/32765
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>
3277         PR fortran/34020
3278         * testsuite/libgomp.fortran/pr34020.f90: New test.
3280 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
3282         PR c++/33894
3283         * testsuite/libgomp.c++/atomic-1.C: New test.
3285 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
3287         PR libgomp/33275
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>
3313         PR target/32765
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>
3319         PR fortran/32550
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>
3329         PR fortran/32359
3330         * testsuite/libgomp.fortran/pr32359.f90: New.
3332 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3334         PR libgomp/32468
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>
3341         PR libgomp/26308
3342         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
3344 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
3346         PR middle-end/32362
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
3354         stack size.
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.
3371         PR libgomp/28482
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>
3392         PR testsuite/31369
3393         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
3394         ld_library_path.
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
3400         decls.
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
3419         *-*-darwin*.
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
3438         here.
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
3444         CX8 flag.
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
3466         extraction.
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>
3477         PR libgomp/28486
3478         * configure: Regenerate.
3480         PR c++/30703
3481         * testsuite/libgomp.c++/pr30703.C: New test.
3483 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
3485         Revert:
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>
3496         PR libgomp/30546
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>
3507         PR libgomp/30540
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>
3516         PR middle-end/30494
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>
3531         PR libgomp/28209
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
3535         files to srcdir.
3536         * Makefile.in: Regenerated.
3537         * config.h.in: Regenerated.
3538         * testsuite/Makefile.in: Regenerated.
3539         * NOTES: Removed.
3541 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
3543         PR libgomp/29949
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>
3552         PR libgomp/29947
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>
3574         PR fortran/29629
3575         * testsuite/libgomp.fortran/pr29629.f90: New test.
3577 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3579         PR libgomp/29494
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
3593         '<' to '<='.
3595 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3597         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
3598         test.
3599         * configure: Regenerate.
3600         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
3602 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
3604         PR middle-end/25261
3605         PR middle-end/28790
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.
3610         PR fortran/29097
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>
3623         PR c/28768
3624         PR preprocessor/14634
3625         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
3626         to AC_DEFINE.
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>
3638         PR libgomp/25938
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>
3645         PR libgomp/28725
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
3649         insensitively.
3651 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
3653         PR fortran/28390
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
3665         defined.
3667 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
3669         PR libgomp/26175
3670         PR libgomp/26477
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>
3679         PR libgomp/28008
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>
3697         PR fortran/27916
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>
3713         PR libgomp/27612
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>
3724         PR middle-end/27416
3725         * libgomp.fortran/pr27416-1.f90: New test.
3727 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
3729         PR fortran/27395
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>
3735         PR c++/26943
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>
3745         PR middle-end/27337
3746         * testsuite/libgomp.c++/pr27337.C: New test.
3748 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3750         PR c/26171
3751         * testsuite/libgomp.c/pr26171.c: New test.
3753 2006-04-25  Richard Henderson  <rth@redhat.com>
3755         PR libgomp/25865
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>
3767         PR c++/26691
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>
3792         PR bootstrap/26161
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>
3800         PR libgomp/25938
3801         PR libgomp/25984
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>
3815         PR libgomp/25936
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>
3829         PR libgomp/25852
3830         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3831         libgomp_init.
3833 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3835         PR libgomp/25884
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>
3848         PR libgomp/25259
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>
3856         PR libgomp/25942
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
3869         Solaris.
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>
3877         PR libgomp/25877
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>
3887         PR libgomp/25877
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>
3895         PR fortran/25219
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>
3923         PR fortran/25162
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
3944         FSF address.
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.
3958         Increment count.
3959         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3960         Decrement count.
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>
3972         PR 24845
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>
4005         * HEADER: Remove.
4007 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
4009         PR libgomp/24797
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
4013         malloced memory.
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>
4043         PR c++/24734
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
4145         only test.
4146         * libgomp.fortran/sharing1.f90: New test.
4148 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
4150         PR c++/24502
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>
4173         PR 24455
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
4187         explicitly private.
4188         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
4189         explicitly shared.
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
4227         dg-options.
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
4294         use omp_lib.
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
4335         sourced *.exp.
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
4438         constructs.
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.
4456         (main): New.
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
4511         OMP_NEST_LOCK_KIND.
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
4565         up code.
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.
4618         (omp.h): New rule.
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
4622         with templates.
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 /
4646         after $gccpath.
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.
4802         (CFLAGS): Use it.
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
4826         initial work_share.
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.