* gcc-interface/lang-specs.h (TARGET_VXWORKS_RTP): Simplify and add
[official-gcc.git] / libgomp / ChangeLog
blob134d1e32f31e7ee748f5e5362df1312f76b938f3
1 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3         * testsuite/libgomp.graphite/bounds.c: Adjust for
4         cleanup-tree-dump removal.
5         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
6         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
7         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
8         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
9         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
10         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
11         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
12         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
13         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
14         * testsuite/libgomp.graphite/pr41118.c: Likewise.
16 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
18         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
19         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
20         (futex_wake) [!__x86_64__]: Ditto.
22 2015-05-28  Julian Brown  <julian@codesourcery.com>
24         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
25         function comment. Only call gomp_fatal if new argument is true.
26         (acc_dev_num_out_of_range): New function.
27         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
28         acc_dev_num_out_of_range as appropriate.
29         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
30         (acc_get_device_num, acc_set_device_num): Update calls to
31         resolve_device.
32         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
33         output.
35 2015-05-28  Julian Brown  <julian@codesourcery.com>
37         PR libgomp/65742
38         * oacc-init.c (plugin/plugin-host.h): Include.
39         (acc_on_device): Check whether we're in an offloaded region for
40         host_nonshm
41         plugin. Don't use __builtin_acc_on_device.
42         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
43         nonshm_exec flag in thread-local data.
44         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
45         data for host_nonshm plugin.
46         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
47         for host_nonshm plugin.
48         * plugin/plugin-host.h: New.
50 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
52         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
54 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
56         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
57         Declare as int.
58         (FUTEX_PRIVATE_FLAG): Remove L suffix.
59         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
60         Declare as int.
62 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
64         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
66 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
68         * target.c (gomp_map_pointer): New function abstracting out
69         GOMP_MAP_POINTER handling.
70         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
71         gomp_map_pointer().
73 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
75         PR middle-end/66199
76         * testsuite/libgomp.c/pr66199-1.c: New test.
77         * testsuite/libgomp.c/pr66199-2.c: New test.
78         * testsuite/libgomp.c++/pr66199-1.C: New test.
79         * testsuite/libgomp.c++/pr66199-2.C: New test.
80         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
81         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
83 2015-05-19  Julian Brown  <julian@codesourcery.com>
85         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
86         on cuInit failure.
88 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
90         PR middle-end/66133
91         * testsuite/libgomp.c/pr66133.c: New test.
93 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
95         * Makefile.in: Regenerated with automake-1.11.6.
96         * aclocal.m4: Likewise.
97         * config.h.in: Likewise.
98         * configure: Likewise.
99         * testsuite/Makefile.in: Likewise.
101 2015-05-08  Jason Merrill  <jason@redhat.com>
103         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
104         _Complex.
106         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
108 2015-05-06  Julian Brown  <julian@codesourcery.com>
110         * oacc-init.c (acc_device_lock): Add explanatory comment.
111         (resolve_device): Add comment about locking requirement.
112         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
113         gomp_init_device and gomp_fini_device calls.
114         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
115         (acc_get_device_num, acc_set_device_num): Add locking around
116         resolve_device and gomp_init_device calls.
118 2015-05-06  Julian Brown  <julian@codesourcery.com>
120         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
121         goacc_thread_lock on error paths.
122         * oacc-mem.c (lookup_host): Remove locking from function. Note
123         locking requirement for caller in function comment.
124         (lookup_dev): Likewise.
125         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
126         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
127         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
128         Add locking.
130 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
132         PR testsuite/65205
133         PR libgomp/65993
134         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
135         don't expect "0x" prefix for "%p" format specifier, don't expect
136         "(nil)" for NULL pointer.
137         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
138         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
139         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
140         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
141         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
142         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
143         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
144         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
145         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
146         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
147         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
148         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
149         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
150         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
151         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
152         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
153         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
154         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
155         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
156         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
157         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
158         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
159         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
160         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
161         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
162         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
163         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
164         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
165         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
166         accurately specify what we're looking for.
167         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
168         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
169         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
170         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
171         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
173 2015-04-30  James Norris  <jnorris@codesourcery.com>
175         PR testsuite/65205
176         * testsuite/lib/libgomp.exp
177         (check_effective_target_openacc_host_selected)
178         (check_effective_target_openacc_host_nonshm_selected): New
179         procedures.
180         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
181         dg-shouldfail.
182         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
183         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
184         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
185         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
186         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
187         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
188         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
189         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
190         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
191         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
192         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
193         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
194         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
195         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
196         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
197         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
198         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
199         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
200         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
201         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
202         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
203         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
204         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
205         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
206         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
207         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
208         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
209         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
210         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
211         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
212         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
213         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
214         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
215         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
216         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
217         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
218         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
219         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
220         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
221         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
222         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
223         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
224         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
226 2015-04-08  Julian Brown  <julian@codesourcery.com>
228         * libgomp.h (target_mem_desc: Remove mem_map field.
229         (acc_dispatch_t): Remove open_device_func, close_device_func,
230         get_device_num_func, set_device_num_func, target_data members.
231         Change create_thread_data_func argument to device number instead of
232         generic pointer.
233         * oacc-async.c (assert.h): Include.
234         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
235         (acc_wait_all, acc_wait_all_async): Use current host thread's
236         active device, not base_dev.
237         * oacc-cuda.c (acc_get_current_cuda_device)
238         (acc_get_current_cuda_context, acc_get_cuda_stream)
239         (acc_set_cuda_stream): Likewise.
240         * oacc-host.c (host_dispatch): Don't set open_device_func,
241         close_device_func, get_device_num_func or set_device_num_func.
242         * oacc-init.c (base_dev, init_key): Remove.
243         (cached_base_dev): New.
244         (name_of_acc_device_t): New.
245         (acc_init_1): Initialise default-numbered device, not zeroth.
246         (acc_shutdown_1): Close all devices of a given type.
247         (goacc_destroy_thread): Don't use base_dev.
248         (lazy_open, lazy_init, lazy_init_and_open): Remove.
249         (goacc_attach_host_thread_to_device): New.
250         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
251         (acc_get_num_devices): Don't use base_dev.
252         (acc_set_device_type): Reimplement.
253         (acc_get_device_type): Don't use base_dev.
254         (acc_get_device_num): Tweak logic.
255         (acc_set_device_num): Likewise.
256         (acc_on_device): Use acc_get_device_type.
257         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
258         (goacc_lazy_initialize): Reimplement with acc_init and
259         goacc_attach_host_thread_to_device.
260         * oacc-int.h (goacc_thread): Add base_dev field.
261         (base_dev): Remove extern declaration.
262         (goacc_attach_host_thread_to_device): Add prototype.
263         * oacc-mem.c (acc_malloc): Use current thread's device instead of
264         base_dev.
265         (acc_free): Likewise.
266         (acc_memcpy_to_device): Likewise.
267         (acc_memcpy_from_device): Likewise.
268         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
269         goacc_lazy_initialize (throughout).
270         (GOACC_parallel): Use tgt_offset to locate target functions.
271         * target.c (gomp_map_vars): Don't set tgt->mem_map.
272         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
273         (gomp_load_plugin_for_device): Remove open_device, close_device,
274         get_device_num, set_device_num openacc hook initialisation. Don't set
275         openacc.target_data.
276         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
277         (GOMP_OFFLOAD_openacc_close_device)
278         (GOMP_OFFLOAD_openacc_get_device_num)
279         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
280         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
281         to int.
282         * plugin/plugin-nvptx.c (ptx_inited): Remove.
283         (instantiated_devices, ptx_dev_lock): New.
284         (struct ptx_image_data): New.
285         (ptx_devices, ptx_images, ptx_image_lock): New.
286         (fini_streams_for_device): Reorder cuStreamDestroy call.
287         (nvptx_get_num_devices): Remove forward declaration.
288         (nvptx_init): Change return type to bool.
289         (nvptx_fini): Remove.
290         (nvptx_attach_host_thread_to_device): New.
291         (nvptx_open_device): Return struct ptx_device* instead of void*.
292         (nvptx_close_device): Change argument type to struct ptx_device*,
293         return type to void.
294         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
295         (kernel_target_data, kernel_host_table): Remove static globals.
296         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
297         (GOMP_OFFLOAD_init_device): Reimplement.
298         (GOMP_OFFLOAD_fini_device): Likewise.
299         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
300         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
301         (GOMP_OFFLOAD_host2dev): Use ORD argument.
302         (GOMP_OFFLOAD_openacc_open_device)
303         (GOMP_OFFLOAD_openacc_close_device)
304         (GOMP_OFFLOAD_openacc_set_device_num)
305         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
306         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
307         (device number).
309         testsuite/
310         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
312 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
314         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
315         * libgomp.h (struct gomp_memory_mapping): Remove.
316         (struct target_mem_desc): Change type of mem_map from
317         gomp_memory_mapping * to splay_tree_s *.
318         (struct gomp_device_descr): Remove register_image_func, get_table_func.
319         Add load_image_func, unload_image_func.
320         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
321         Remove offload_regions_registered.
322         (gomp_init_tables): Remove.
323         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
324         to splay_tree_s *.
325         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
326         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
327         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
328         offload_regions_registered.
329         Initialize load_image_func, unload_image_func, mem_map.root.
330         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
331         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
332         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
333         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
334         gomp_memory_mapping *.  Use dev's lock and splay_tree.
335         (lookup_dev): Use dev's lock.
336         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
337         (acc_is_present): Likewise.
338         (acc_map_data): Likewise.
339         (acc_unmap_data): Likewise.  Use dev's lock.
340         (present_create_copy): Likewise.
341         (delete_copyout): Pass dev to lookup_host instead of mem_map.
342         (update_dev_host): Likewise.
343         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
344         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
345         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
346         (GOMP_OFFLOAD_get_table): Remove
347         (GOMP_OFFLOAD_load_image): New function.
348         (GOMP_OFFLOAD_unload_image): New function.
349         * target.c (register_lock): New mutex for offload image registration.
350         (num_devices): Do not guard with PLUGIN_SUPPORT.
351         (gomp_realloc_unlock): New static function.
352         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
353         before gomp_fatal.
354         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
355         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
356         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
357         mem_map's.
358         (gomp_unmap_vars): Likewise.
359         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
360         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
361         (gomp_offload_image_to_device): New static function.
362         (GOMP_offload_register): Add mutex lock.
363         Call gomp_offload_image_to_device for all initialized devices.
364         Replace gomp_realloc with gomp_realloc_unlock.
365         (GOMP_offload_unregister): New function.
366         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
367         get_table_func from the plugin with calls to init_device_func and
368         gomp_offload_image_to_device.
369         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
370         to splay_tree_s *.
371         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
372         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
373         (GOMP_target_data): Do not call gomp_init_tables.
374         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
375         (gomp_load_plugin_for_device): Replace register_image and get_table
376         with load_image and unload_image in DLSYM ().
377         (gomp_register_images_for_device): Remove function.
378         (gomp_target_init): Do not initialize current_device.mem_map.*,
379         current_device.offload_regions_registered.
380         Remove call to gomp_register_images_for_device.
381         Do not free offload_images and num_offload_images.
383 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
385         PR fortran/65597
386         * testsuite/libgomp.fortran/pr65597.f90: New test.
388 2015-03-27  Tom de Vries  <tom@codesourcery.com>
390         PR testsuite/65594
391         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
392         (init, check): New function.
393         (foo): Change return type to void.
394         (main): Call init and check.
396 2015-03-27  Tom de Vries  <tom@codesourcery.com>
398         PR testsuite/65594
399         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
400         (foo): Use M for non-inner loops to scale down test-case.
402 2015-03-25  Kai Tietz  <ktietz@redhat.com>
404         PR libgomp/64972
405         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
406         (GOACC_data_start): Likewise.
407         * target.c (gomp_map_vars): Likewise.
409 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
411         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
412         hppa*-*-hpux*.
414 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
416         * testsuite/libgomp.c/target-10.c: New test.
417         * testsuite/libgomp.c++/target-4.C: New test.
419 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
421         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
422         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
424 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
426         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
427         * configure.ac (*-*-rtems*): Assume Pthread is supported.
428         (pthread.h): Check for this header file.
429         * configure: Regenerate.
431 2015-02-25  Tom de Vries  <tom@codesourcery.com>
433         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
434         (check_reduction_op, check_reduction_macro, max, min):
435         Declare.
436         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
437         function.
438         (main): Use new functions.
440 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
442         * target.c (gomp_load_plugin_for_device): Use const char * instead of
443         char * for variables holding dlerror return values.
444         (DLSYM_OPT): Ditto.
446 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
448         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
450 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
451             Cesar Philippidis  <cesar@codesourcery.com>
453         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
454         GOACC_ctaid, and GOACC_nctaid routines.
456 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
458         PR c/64824
459         * testsuite/libgomp.c/atomic-18.c: New test.
460         * testsuite/libgomp.c++/atomic-16.C: New test.
462 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
464         PR c/64824
465         PR c/64868
466         * testsuite/libgomp.c/pr64824.c: New test.
467         * testsuite/libgomp.c/pr64868.c: New test.
468         * testsuite/libgomp.c++/pr64824.C: New test.
469         * testsuite/libgomp.c++/pr64868.C: New test.
471 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
473         PR libgomp/64635
474         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
475         Link with -lpthread.
476         * config/aix/plugin-suffix.h: Delete.
478 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
480         PR libgomp/64635
481         * configure.tgt (*-*-aix*): Use config_path "aix posix".
482         (*-*-darwin*): Use config_path "bsd darwin posix".
483         (*-*-hpux*): Use config_path "hpux posix".
484         * target.c: Add include of plugin-suffix.h and use
485         SONAME_SUFFIX macro.
486         * config/aix/plugin-suffix.h: New file.
487         * config/darwin/plugin-suffix.h: New file.
488         * config/hpux/plugin-suffix.h: New file.
489         * config/posix/plugin-suffix.h: New file.
491 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
493         PR middle-end/64734
494         * libgomp.c/pr64734.c: New test.
496 2015-01-23  Tom de Vries  <tom@codesourcery.com>
498         PR libgomp/64672
499         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
501 2015-01-23  Tom de Vries  <tom@codesourcery.com>
503         PR libgomp/64707
504         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
505         dg-options.
507 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
509         PR libgomp/64625
510         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
511         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
512         formal parameter.  Update all users.
513         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
514         Document unused formal parameter.
516 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
518         * oacc-parallel.c: Don't include <alloca.h>.
519         (GOACC_parallel): Use gomp_alloca instead of alloca.
521 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
523         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
525 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
526             James Norris  <jnorris@codesourcery.com>
527             Tom de Vries  <tom@codesourcery.com>
528             Julian Brown  <julian@codesourcery.com>
529             Cesar Philippidis  <cesar@codesourcery.com>
530             Nathan Sidwell  <nathan@codesourcery.com>
531             Tobias Burnus  <burnus@net-b.de>
533         * Makefile.am (search_path): Add $(top_srcdir)/../include.
534         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
535         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
536         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
537         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
538         Include $(top_srcdir)/plugin/Makefrag.am.
539         (nodist_libsubinclude_HEADERS): Add openacc.h.
540         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
541         openacc.f90, openacc.mod, openacc_kinds.mod.
542         (omp_lib.mod): Generalize into...
543         (%.mod): ... this new rule.
544         (openacc_kinds.mod, openacc.mod): New rules.
545         * plugin/configfrag.ac: New file.
546         * configure.ac: Move plugin/offloading support into it.  Include
547         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
548         * plugin/Makefrag.am: New file.
549         * testsuite/Makefile.am (OFFLOAD_TARGETS)
550         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
551         export.
552         (libgomp-test-support.exp): New rule.
553         (all-local): Depend on it.
554         * Makefile.in: Regenerate.
555         * testsuite/Makefile.in: Regenerate.
556         * config.h.in: Likewise.
557         * configure: Likewise.
558         * configure.tgt: Harden shell syntax.
559         * env.c: Include "oacc-int.h".
560         (parse_acc_device_type): New function.
561         (gomp_debug_var, goacc_device_type, goacc_device_num): New
562         variables.
563         (initialize_env): Initialize those.  Call
564         goacc_runtime_initialize.
565         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
566         (gomp_fatal): Call gomp_vfatal.
567         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
568         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
569         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
570         (splay_tree_node, splay_tree, splay_tree_key)
571         (struct target_mem_desc, struct splay_tree_key_s)
572         (struct gomp_memory_mapping, struct acc_dispatch_t)
573         (struct gomp_device_descr, gomp_acc_insert_pointer)
574         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
575         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
576         (gomp_free_memmap, gomp_fini_device): New declarations.
577         (gomp_vdebug, gomp_debug): New macros.
578         Include "splay-tree.h".
579         * libgomp.map (OACC_2.0): New symbol version.  Use for
580         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
581         acc_set_device_type_h_, acc_get_device_type,
582         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
583         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
584         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
585         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
586         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
587         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
588         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
589         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
590         acc_copyin_array_h_, acc_present_or_copyin,
591         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
592         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
593         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
594         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
595         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
596         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
597         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
598         acc_update_device, acc_update_device_32_h_,
599         acc_update_device_64_h_, acc_update_device_array_h_,
600         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
601         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
602         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
603         acc_is_present_64_h_, acc_is_present_array_h_,
604         acc_memcpy_to_device, acc_memcpy_from_device,
605         acc_get_current_cuda_device, acc_get_current_cuda_context,
606         acc_get_cuda_stream, acc_set_cuda_stream.
607         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
608         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
609         GOACC_update, GOACC_wait, GOACC_get_thread_num,
610         GOACC_get_num_threads.
611         (GOMP_PLUGIN_1.0): New symbol version.  Use for
612         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
613         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
614         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
615         GOMP_PLUGIN_acc_thread.
616         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
617         environment variable.
618         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
619         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
620         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
621         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
622         (splay_tree_remove): New declarations.
623         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
624         (splay_tree_remove, splay_tree_lookup): Move into...
625         * splay-tree.c: ... this new file.
626         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
627         (splay_tree_node, splay_tree, splay_tree_key)
628         (struct target_mem_desc, struct splay_tree_key_s)
629         (struct gomp_device_descr): Don't declare.
630         (num_devices_openmp): New variable.
631         (gomp_get_num_devices ): Use it.
632         (gomp_init_targets_once): New function.
633         (gomp_get_num_devices ): Use it.
634         (get_kind, gomp_copy_from_async, gomp_free_memmap)
635         (gomp_fini_device, gomp_register_image_for_device): New functions.
636         (gomp_map_vars): Add devaddrs parameter.
637         (gomp_update): Add mm parameter.
638         (gomp_init_device): Move most of it into...
639         (gomp_init_tables): ... this new function.
640         (gomp_register_images_for_device): Remove function.
641         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
642         Make them hidden instead of static.
643         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
644         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
645         (GOMP_target_end_data, GOMP_target_update)
646         (gomp_load_plugin_for_device, gomp_target_init): Update for
647         OpenACC changes.
648         * oacc-async.c: New file.
649         * oacc-cuda.c: Likewise.
650         * oacc-host.c: Likewise.
651         * oacc-init.c: Likewise.
652         * oacc-int.h: Likewise.
653         * oacc-mem.c: Likewise.
654         * oacc-parallel.c: Likewise.
655         * oacc-plugin.c: Likewise.
656         * oacc-plugin.h: Likewise.
657         * oacc-ptx.h: Likewise.
658         * openacc.f90: Likewise.
659         * openacc.h: Likewise.
660         * openacc_lib.h: Likewise.
661         * plugin/plugin-host.c: Likewise.
662         * plugin/plugin-nvptx.c: Likewise.
663         * libgomp-plugin.c: Likewise.
664         * libgomp-plugin.h: Likewise.
665         * libgomp_target.h: Remove file after merging content into the
666         former file.  Update all users.
667         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
668         (offload_targets_s, offload_targets_s_openacc): New variables.
669         (check_effective_target_openacc_nvidia_accel_present)
670         (check_effective_target_openacc_nvidia_accel_selected): New
671         procedures.
672         (libgomp_init): Update for OpenACC changes.
673         * testsuite/libgomp-test-support.exp.in: New file.
674         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
675         * testsuite/libgomp.oacc-c/c.exp: Likewise.
676         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
677         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
678         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
679         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
680         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
681         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
682         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
683         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
684         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
685         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
686         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
687         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
688         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
689         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
690         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
691         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
692         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
693         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
694         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
695         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
696         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
697         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
698         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
699         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
700         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
701         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
702         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
703         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
704         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
705         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
706         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
707         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
708         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
709         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
710         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
711         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
712         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
713         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
714         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
715         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
716         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
717         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
718         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
719         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
720         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
721         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
722         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
723         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
724         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
725         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
726         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
727         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
728         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
729         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
730         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
731         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
732         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
733         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
734         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
735         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
736         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
737         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
738         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
739         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
740         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
741         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
742         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
743         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
744         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
745         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
746         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
747         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
748         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
749         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
750         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
751         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
752         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
753         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
754         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
755         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
756         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
757         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
758         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
759         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
760         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
761         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
762         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
763         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
764         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
765         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
766         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
767         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
768         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
769         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
770         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
771         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
772         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
773         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
774         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
775         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
776         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
777         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
778         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
779         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
780         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
781         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
782         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
783         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
784         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
785         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
786         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
787         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
788         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
789         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
790         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
791         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
792         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
793         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
794         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
795         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
796         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
797         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
798         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
799         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
800         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
801         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
802         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
803         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
804         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
805         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
806         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
807         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
808         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
809         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
810         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
811         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
812         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
813         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
814         Likewise.
815         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
816         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
817         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
818         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
819         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
820         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
821         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
822         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
823         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
824         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
825         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
826         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
827         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
828         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
829         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
830         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
831         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
832         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
833         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
834         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
835         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
836         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
837         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
838         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
839         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
840         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
841         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
842         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
843         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
844         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
845         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
846         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
847         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
848         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
849         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
850         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
851         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
852         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
853         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
854         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
855         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
856         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
857         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
858         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
859         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
860         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
861         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
862         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
863         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
864         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
865         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
866         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
867         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
868         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
869         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
870         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
871         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
872         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
873         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
874         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
876 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
877             Julian Brown  <julian@codesourcery.com>
878             David Malcolm  <dmalcolm@redhat.com>
880         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
881         to "GNU Offloading and Multi Processing Runtime Library".  Change
882         all users.
883         * configure: Regenerate.
884         * libgomp.texi: Update.
886 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
888         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
889         "$tgt_dir/lib32".
890         * configure: Regenerate.
892         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
893         "intelmic" in $offload_targets.
895 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
897         Update copyright years.
899         * libgomp.texi: Bump @copying's copyright year.
901 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
903         * testsuite/lib/libgomp.exp: Load target-utils.exp.
904         Move load of target-supportes.exp earlier.
906 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
908         * testsuite/libgomp.c/target-9.c: New test.
910 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
912         * config.h.in: Regenerate.
913         * configure: Regenerate.
914         * configure.ac: Add GCC_CHECK_EMUTLS.
915         * libgomp.h: Add check for USE_EMUTLS: this case
916         is equal to HAVE_TLS.
917         * team.c: Likewise.
919 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
921         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
923 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
924             Ilya Verbin  <ilya.verbin@intel.com>
926         * testsuite/libgomp.c/target-critical-1.c: New test.
928 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
930         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
931         to dg-options unless expensive testing is on.
932         (TESTITERS): Define to N if not defined.
933         (main): Use TESTITERS instead of N.
934         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
935         dg-additional-options depending on whether expensive testing is on.
936         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
937         Decrease N to 100000 and CHUNKSZ to 10000.
939 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
941         PR fortran/63938
942         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
943         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
945 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
947         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
949 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
951         PR bootstrap/63784
952         * configure: Regenerated.
954 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
956         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
957         vect_simd_clones effective target.
958         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
960 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
962         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
963         of 32 as block_size.
964         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
965         instead of 32 as block_size.
967 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
968             Ilya Verbin  <ilya.verbin@intel.com>
970         * Makefile.in: Regenerate.
971         * configure: Regenerate.
972         * configure.ac: Set up offload_additional_options,
973         offload_additional_lib_paths and offload_targets.
974         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
975         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
976         * testsuite/Makefile.in: Regenerate.
977         * testsuite/lib/libgomp.exp (libgomp_init): Append
978         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
979         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
980         build directory to LD_LIBRARY_PATH for intelmic offload targets.
982 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
983             Ilya Verbin  <ilya.verbin@intel.com>
984             Kirill Yukhin  <kirill.yukhin@intel.com>
985             Ilya Tocar  <ilya.tocar@intel.com>
987         * testsuite/lib/libgomp.exp
988         (check_effective_target_offload_device): New.
989         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
990         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
991         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
992         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
993         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
994         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
995         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
996         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
997         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
998         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
999         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
1000         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
1001         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
1002         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
1003         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
1004         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
1005         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
1006         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
1007         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
1008         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
1009         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
1010         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
1011         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
1012         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
1013         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
1014         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
1015         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
1016         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
1017         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
1018         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
1019         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
1020         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
1021         * testsuite/libgomp.c/target-7.c: Fix test.
1022         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
1023         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
1024         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
1025         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
1026         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
1027         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
1028         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
1029         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
1030         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
1031         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
1032         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
1033         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
1034         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
1035         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
1036         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
1037         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
1038         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
1039         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
1040         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
1041         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
1042         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
1043         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
1044         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
1045         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
1046         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
1047         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
1048         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
1049         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
1050         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
1051         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
1052         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
1054 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
1055             Ilya Verbin  <ilya.verbin@intel.com>
1056             Thomas Schwinge  <thomas@codesourcery.com>
1057             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1059         * libgomp.map (GOMP_4.0.1): New symbol version.
1060         Add GOMP_offload_register.
1061         * libgomp_target.h: New file.
1062         * splay-tree.h: New file.
1063         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
1064         (gomp_target_init): New forward declaration.
1065         (gomp_is_initialized): New static variable.
1066         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
1067         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
1068         New structures.
1069         (offload_images, num_offload_images, devices, num_devices): New static
1070         variables.
1071         (splay_compare): New static function.
1072         (struct gomp_device_descr): New structure.
1073         (gomp_get_num_devices): Call gomp_target_init.
1074         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
1075         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
1076         (GOMP_offload_register): New function.
1077         (GOMP_target): Arrange for host callback to be performed in a separate
1078         initial thread and contention group, inheriting ICVs from
1079         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
1080         Add device initialization and lookup for target function in splay tree.
1081         (GOMP_target_data): Add device initialization and call gomp_map_vars.
1082         (GOMP_target_end_data): Call gomp_unmap_vars.
1083         (GOMP_target_update): Add device initialization and call gomp_update.
1084         (gomp_load_plugin_for_device, gomp_register_images_for_device)
1085         (gomp_target_init): New static functions.
1087 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
1088             Thomas Schwinge  <thomas@codesourcery.com>
1089             Ilya Verbin  <ilya.verbin@intel.com>
1090             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1092         * config.h.in: Regenerate.
1093         * configure: Regenerate.
1094         * configure.ac: Check for libdl, required for plugin support.
1095         (PLUGIN_SUPPORT): Define if plugins are supported.
1096         (enable_offload_targets): Support Intel MIC targets.
1097         (OFFLOAD_TARGETS): List of target names suitable for offloading.
1099 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1101         PR target/63610
1102         * configure: Regenerate.
1104 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1106         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
1108 2014-10-06  Marek Polacek  <polacek@redhat.com>
1110         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
1111         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
1112         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
1113         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
1115 2014-10-06  Marek Polacek  <polacek@redhat.com>
1117         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
1118         * testsuite/libgomp.c/nqueens-1.c: Likewise.
1119         * testsuite/libgomp.c/pr26943-3.c: Likewise.
1120         * testsuite/libgomp.c/pr26943-4.c: Likewise.
1121         * testsuite/libgomp.c/pr36802-2.c: Likewise.
1122         * testsuite/libgomp.c/pr36802-3.c: Likewise.
1123         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
1124         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
1125         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
1126         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
1127         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
1128         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
1129         * testsuite/libgomp.c/omp-single-1.c: Likewise.
1130         * testsuite/libgomp.c/omp-single-2.c: Likewise.
1131         * testsuite/libgomp.c/omp_matvec.c: Likewise.
1132         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
1133         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
1134         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
1135         declarations.
1137 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
1139         PR libgomp/61200
1140         * testsuite/libgomp.c/pr61200.c: New test.
1142 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
1144         PR c++/63248
1145         * testsuite/libgomp.c++/pr63248.C: New test.
1147 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
1149         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
1150         is not zero, but taskgroup->children is NULL and there are
1151         any task->children, schedule those instead of waiting.
1152         * testsuite/libgomp.c/depend-6.c: New test.
1153         * testsuite/libgomp.c/depend-7.c: New test.
1154         * testsuite/libgomp.c/depend-8.c: New test.
1155         * testsuite/libgomp.c/depend-9.c: New test.
1156         * testsuite/libgomp.c/depend-10.c: New test.
1158 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
1160         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
1161         (struct gomp_taskwait): New type.
1162         (struct gomp_task): Add taskwait and parent_depends_on, remove
1163         in_taskwait and taskwait_sem fields.
1164         (gomp_finish_task): Don't destroy taskwait_sem.
1165         * task.c (gomp_init_task): Don't init in_taskwait, instead init
1166         taskwait and parent_depends_on.
1167         (GOMP_task): For if (0) tasks with depend clause that depend on
1168         earlier tasks don't defer them, instead call
1169         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
1170         Initialize redundant_out field, for redundant out entries just
1171         move them at the end of linked list instead of removing them
1172         completely, and set redundant_out flag instead of redundant.
1173         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
1174         that task.
1175         (gomp_task_run_post_handle_dependers): If parent is in
1176         gomp_task_maybe_wait_for_dependencies and newly runnable task
1177         is not parent_depends_on, queue it in parent->children linked
1178         list after all runnable tasks with parent_depends_on set.
1179         Adjust for addition of taskwait indirection.
1180         (gomp_task_run_post_remove_parent): If parent is in
1181         gomp_task_maybe_wait_for_dependencies and task to be removed
1182         is parent_depends_on, decrement n_depend and if needed awake
1183         parent.  Adjust for addition of taskwait indirection.
1184         (GOMP_taskwait): Adjust for addition of taskwait indirection.
1185         (gomp_task_maybe_wait_for_dependencies): New function.
1186         * testsuite/libgomp.c/depend-5.c: New test.
1188 2014-07-13  Tobias Burnus  <burnus@net-b.de>
1190         * testsuite/libgomp.fortran/pr34020.f90: Make compile
1191         with TS 18508/Fortran 2015.
1193 2014-07-06  Marek Polacek  <polacek@redhat.com>
1195         PR c/6940
1196         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
1198 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
1200         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
1201         matches regex $lang_source_re, add $lang_include_flags to options.
1202         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
1203         * testsuite/libgomp.c++/c++.exp: Likewise.
1204         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
1205         and lang_include_flags instead of adding -fintrinsic-modules-path= to
1206         ALWAYS_CFLAGS.
1207         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
1209 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
1211         * testsuite/libgomp.fortran/fortran.exp: Explain
1212         gfortran-dg-runtest usage.
1214 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1216         * testsuite/libgomp.fortran/simd5.f90: New test.
1217         * testsuite/libgomp.fortran/simd6.f90: New test.
1218         * testsuite/libgomp.fortran/simd7.f90: New test.
1220 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1222         * testsuite/libgomp.c/for-2.c: Define SC to static for
1223         #pragma omp for simd testing.
1224         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
1225         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
1226         SC macro.
1227         * testsuite/libgomp.c/simd-14.c: New test.
1228         * testsuite/libgomp.c/simd-15.c: New test.
1229         * testsuite/libgomp.c/simd-16.c: New test.
1230         * testsuite/libgomp.c/simd-17.c: New test.
1231         * testsuite/libgomp.c++/for-10.C: Define SC to static for
1232         #pragma omp for simd testing.
1233         * testsuite/libgomp.c++/simd10.C: New test.
1234         * testsuite/libgomp.c++/simd11.C: New test.
1235         * testsuite/libgomp.c++/simd12.C: New test.
1236         * testsuite/libgomp.c++/simd13.C: New test.
1238         * testsuite/libgomp.fortran/aligned1.f03: New test.
1239         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
1240         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
1241         tasks with !$omp parallel !$omp single.
1242         * testsuite/libgomp.fortran/target8.f90: New test.
1243         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
1244         not to use trim in the combiner, instead call elemental function.
1245         (fn): New elemental function.
1246         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
1247         Make elemental.
1248         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
1249         omp_in): Likewise.
1250         * testsuite/libgomp.fortran/udr12.f90: New test.
1251         * testsuite/libgomp.fortran/udr13.f90: New test.
1252         * testsuite/libgomp.fortran/udr14.f90: New test.
1253         * testsuite/libgomp.fortran/udr15.f90: New test.
1255 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
1257         * omp_lib.f90.in (openmp_version): Set to 201307.
1258         * omp_lib.h.in (openmp_version): Likewise.
1259         * testsuite/libgomp.c/target-8.c: New test.
1260         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
1261         and inbranch clauses.
1262         * testsuite/libgomp.fortran/depend-3.f90: New test.
1263         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
1264         openmp_version.
1265         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1266         * testsuite/libgomp.fortran/target1.f90: New test.
1267         * testsuite/libgomp.fortran/target2.f90: New test.
1268         * testsuite/libgomp.fortran/target3.f90: New test.
1269         * testsuite/libgomp.fortran/target4.f90: New test.
1270         * testsuite/libgomp.fortran/target5.f90: New test.
1271         * testsuite/libgomp.fortran/target6.f90: New test.
1272         * testsuite/libgomp.fortran/target7.f90: New test.
1274 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
1276         PR fortran/60928
1277         * testsuite/libgomp.fortran/allocatable9.f90: New test.
1278         * testsuite/libgomp.fortran/allocatable10.f90: New test.
1279         * testsuite/libgomp.fortran/allocatable11.f90: New test.
1280         * testsuite/libgomp.fortran/allocatable12.f90: New test.
1281         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
1282         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
1283         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
1284         * testsuite/libgomp.fortran/associate1.f90: New test.
1285         * testsuite/libgomp.fortran/associate2.f90: New test.
1286         * testsuite/libgomp.fortran/procptr1.f90: New test.
1288 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
1290         * testsuite/libgomp.fortran/simd1.f90: New test.
1291         * testsuite/libgomp.fortran/udr1.f90: New test.
1292         * testsuite/libgomp.fortran/udr2.f90: New test.
1293         * testsuite/libgomp.fortran/udr3.f90: New test.
1294         * testsuite/libgomp.fortran/udr4.f90: New test.
1295         * testsuite/libgomp.fortran/udr5.f90: New test.
1296         * testsuite/libgomp.fortran/udr6.f90: New test.
1297         * testsuite/libgomp.fortran/udr7.f90: New test.
1298         * testsuite/libgomp.fortran/udr8.f90: New test.
1299         * testsuite/libgomp.fortran/udr9.f90: New test.
1300         * testsuite/libgomp.fortran/udr10.f90: New test.
1301         * testsuite/libgomp.fortran/udr11.f90: New test.
1303 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
1305         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
1306         vect_simd_clones effective target.
1307         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
1309 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
1311         PR middle-end/61252
1312         * testsuite/libgomp.c++/simd-9.C: New test.
1314 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
1316         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
1317         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
1318         texts according to their @menu entry positions.
1320 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
1322         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
1323         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
1324         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
1325         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
1326         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
1327         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
1328         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
1329         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
1330         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
1331         * testsuite/libgomp.fortran/depend-1.f90: New test.
1332         * testsuite/libgomp.fortran/depend-2.f90: New test.
1333         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
1334         * testsuite/libgomp.fortran/simd1.f90: New test.
1335         * testsuite/libgomp.fortran/simd2.f90: New test.
1336         * testsuite/libgomp.fortran/simd3.f90: New test.
1337         * testsuite/libgomp.fortran/simd4.f90: New test.
1338         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
1340 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
1342         * testsuite/libgomp.c/simd-10.c: New test.
1343         * testsuite/libgomp.c/simd-11.c: New test.
1344         * testsuite/libgomp.c/simd-12.c: New test.
1345         * testsuite/libgomp.c/simd-13.c: New test.
1347 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
1349         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
1350         atomic type clauses in any order and optional comma in between.
1351         * testsuite/libgomp.c++/atomic-15.C: Likewise.
1352         * testsuite/libgomp.c/atomic-17.c: Likewise.
1354         * testsuite/libgomp.c/simd-7.c: New test.
1355         * testsuite/libgomp.c/simd-8.c: New test.
1356         * testsuite/libgomp.c/simd-9.c: New test.
1357         * testsuite/libgomp.c/loop-16.c: New test.
1359 2014-04-02  Richard Henderson  <rth@redhat.com>
1361         * config/linux/futex.h (futex_wait): Get error value from errno.
1362         (futex_wake): Likewise.
1364 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
1366         PR c++/60331
1367         * testsuite/libgomp.c++/udr-11.C: New test.
1368         * testsuite/libgomp.c++/udr-12.C: New test.
1369         * testsuite/libgomp.c++/udr-13.C: New test.
1370         * testsuite/libgomp.c++/udr-14.C: New test.
1371         * testsuite/libgomp.c++/udr-15.C: New test.
1372         * testsuite/libgomp.c++/udr-16.C: New test.
1373         * testsuite/libgomp.c++/udr-17.C: New test.
1374         * testsuite/libgomp.c++/udr-18.C: New test.
1375         * testsuite/libgomp.c++/udr-19.C: New test.
1377 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1379         Update copyright years
1381 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1383         * hashtab.h: Use the standard form for the copyright notice.
1385 2014-01-02  Tobias Burnus  <burnus@net-b.de>
1387         * libgomp.texi: Bump @copying's copyright year.
1389 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
1391         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
1392         alloca () with __builtin_alloca ().
1393         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
1394         * testsuite/libgomp.c/lock-3.c: Likewise.
1395         * testsuite/libgomp.c/pr48591.c: Likewise.
1397 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
1399         PR testsuite/59534
1400         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
1401         comparisons.
1403 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
1405         PR libgomp/58756
1406         * testsuite/libgomp.c/pr58756.c: New test.
1408 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
1410         PR libgomp/59467
1411         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
1412         !$omp parallel.
1414 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
1416         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
1417         ALWAYS_CFLAGS.
1418         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
1419         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
1420         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
1421         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
1422         Likewise.
1424         * libgomp_g.h: Include <stddef.h> for size_t.
1426         * libgomp.spec.in: Update comment about libgomp's dependencies.
1427         * configure.ac: Likewise.
1428         * configure: Regenerate.
1430 2013-10-16  Tobias Burnus  <burnus@net-b.de>
1432         * libgomp.texi: (Runtime Library Routines): Update references for
1433         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
1434         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
1435         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
1436         (Environment Variables): Update references for OpenMP 4.0. Add
1437         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
1438         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
1439         order.
1441 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
1443         * env.c (parse_bind_var): Initialize value to avoid
1444         (false positive) warning.
1446 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
1448         PR libgomp/58691
1449         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
1450         to check variable.
1451         (gomp_init_num_threads): Move i variable declaration into
1452         #ifdef CPU_ALLOC_SIZE block.
1453         * config/linux/affinity.c (gomp_affinity_init_level): Test
1454         gomp_places_list_len == 0 rather than gomp_places_list == 0
1455         when checking for topology reading error.
1456         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
1457         * env.c (parse_affinity): Add ignore argument, if true, don't populate
1458         gomp_places_list, only parse env var and always return false.
1459         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
1460         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
1461         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
1462         and either of these variables were parsed correctly into a places
1463         list.
1465 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
1466             Jakub Jelinek  <jakub@redhat.com>
1468         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
1469         of 5 loopfn matches.
1470         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1471         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1472         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
1473         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1474         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1475         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1476         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1477         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1479 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
1481         * Makefile.am (omp_lib.mod): Streamline rule.
1482         * Makefile.in: Regenerate.
1484         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
1485         exceptions.
1487         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
1488         * testsuite/libgomp.fortran/lib1.f90: Likewise.
1489         * testsuite/libgomp.fortran/lib2.f: Likewise.
1490         * testsuite/libgomp.fortran/lib3.f: Likewise.
1492         * configure.ac: Typo fix.
1493         * configure: Regenerate.
1495         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
1496         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1498         * omp.h.in: Don't touch the user's namespace.
1500 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
1501             Tobias Burnus  <burnus@net-b.de>
1502             Richard Henderson  <rth@redhat.com>
1504         * target.c: New file.
1505         * Makefile.am (libgomp_la_SOURCES): Add target.c.
1506         * Makefile.in: Regenerated.
1507         * libgomp_g.h (GOMP_task): Add depend argument.
1508         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1509         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1510         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
1511         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1512         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1513         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
1514         GOMP_taskgroup_start, GOMP_taskgroup_end,
1515         GOMP_parallel_sections): New prototypes.
1516         * fortran.c (omp_is_initial_device): Add ialias_redirect.
1517         (omp_is_initial_device_): New function.
1518         (ULP, STR1, STR2, ialias_redirect): Removed.
1519         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
1520         omp_set_default_device_8_, omp_get_default_device_,
1521         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
1522         functions.
1523         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1524         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1525         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
1526         @@GOMP_4.0.
1527         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
1528         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
1529         omp_set_default_device, omp_set_default_device_,
1530         omp_set_default_device_8_, omp_get_default_device,
1531         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
1532         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
1533         omp_get_team_num_): Export @@OMP_4.0.
1534         * team.c (struct gomp_thread_start_data): Add place field.
1535         (gomp_thread_start): Clear thr->thread_pool and
1536         thr->task before returning.  Use gomp_team_barrier_wait_final
1537         instead of gomp_team_barrier_wait.  Initialize thr->place.
1538         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
1539         team_cancelled and task_queued_count fields.
1540         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
1541         before calling pthread_exit.
1542         (gomp_free_thread): No longer static.  Use
1543         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
1544         (gomp_team_start): Add flags argument.  Set
1545         thr->thread_pool->threads_busy to nthreads immediately after creating
1546         new pool.  Use gomp_managed_threads_lock instead of
1547         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
1548         (gomp_team_end): Use gomp_managed_threads_lock instead of
1549         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
1550         of gomp_team_barrier_wait.  If team->team_cancelled, call
1551         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
1552         rather than thr->ts.work_share.
1553         (initialize_team): Don't call gomp_sem_init here.
1554         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
1555         caller.
1556         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
1557         * env.c (gomp_global_icv): Add default_device_var, target_data and
1558         bind_var initializers.
1559         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1560         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1561         gomp_places_list_len): New variables.
1562         (parse_bind_var, parse_one_place, parse_places_var): New functions.
1563         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
1564         sized places.
1565         (gomp_cancel_var): New global variable.
1566         (parse_int): New function.
1567         (handle_omp_display_env): New function.
1568         (initialize_env): Use it.  Initialize default_device_var.
1569         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
1570         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
1571         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
1572         been successfully parsed (and call gomp_init_affinity in that case).
1573         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1574         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1575         omp_get_team_num, omp_is_initial_device): New functions.
1576         * libgomp.h: Include stdlib.h.
1577         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
1578         Define.
1579         (struct target_mem_desc): Forward declare.
1580         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
1581         and thread_limit_var fields.
1582         (gomp_get_num_devices): New prototype.
1583         (gomp_cancel_var): New extern decl.
1584         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
1585         team_cancelled and task_queued_count fields.  Add comments about
1586         task_{,queued_,running_}count.
1587         (gomp_cancel_kind): New enum.
1588         (gomp_work_share_end_cancel): New prototype.
1589         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
1590         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
1591         and depend fields.
1592         (struct gomp_taskgroup): New type.
1593         (struct gomp_task_depend_entry,
1594         struct gomp_dependers_vec): New types.
1595         (gomp_finish_task): Free depend_hash if non-NULL.
1596         (struct gomp_team_state): Add place_partition_off
1597         and place_partition_len fields.
1598         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1599         gomp_places_list_len): New extern decls.
1600         (struct gomp_thread): Add place field.
1601         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1602         (gomp_init_thread_affinity): Add place argument.
1603         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1604         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1605         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1606         gomp_affinity_init_level, gomp_affinity_print_place): New
1607         prototypes.
1608         (gomp_team_start): Add flags argument.
1609         (gomp_thread_limit_var, gomp_remaining_threads_count,
1610         gomp_remaining_threads_lock): Remove.
1611         (gomp_managed_threads_lock): New variable.
1612         (struct gomp_thread_pool): Add threads_busy field.
1613         (gomp_free_thread): New prototype.
1614         * task.c: Include hashtab.h.
1615         (hash_entry_type): New typedef.
1616         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
1617         (gomp_init_task): Clear dependers, depend_hash, depend_count,
1618         copy_ctors_done and taskgroup fields.
1619         (GOMP_task): Add depend argument, handle depend clauses.  If
1620         gomp_team_barrier_cancelled or if it's taskgroup has been
1621         cancelled, don't queue or start new tasks.  Set copy_ctors_done
1622         field if needed.  Initialize taskgroup field.  If copy_ctors_done
1623         and already cancelled, don't discard the task.  If taskgroup is
1624         non-NULL, enqueue the task into taskgroup queue.  Increment
1625         num_children field in taskgroup.  Increment task_queued_count.
1626         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
1627         gomp_task_run_post_remove_taskgroup): New inline functions.
1628         (gomp_task_run_post_handle_depend_hash,
1629         gomp_task_run_post_handle_dependers,
1630         gomp_task_run_post_handle_depend): New functions.
1631         (GOMP_taskwait): Use them.  If more than one new tasks
1632         have been queued, wake other threads if needed.
1633         (gomp_barrier_handle_tasks): Likewise.  If
1634         gomp_team_barrier_cancelled, don't start any new tasks, just free
1635         all tasks.
1636         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
1637         * omp_lib.f90.in
1638         (omp_proc_bind_kind, omp_proc_bind_false,
1639         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1640         omp_proc_bind_spread): New params.
1641         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1642         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1643         omp_get_team_num, omp_is_initial_device): New interfaces.
1644         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
1645         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
1646         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
1647         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
1648         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
1649         useless use omp_lib_kinds.
1650         * omp.h.in (omp_proc_bind_t): New typedef.
1651         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1652         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1653         omp_get_team_num, omp_is_initial_device): New prototypes.
1654         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
1655         through to gomp_team_start.
1656         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
1657         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
1658         Adjust gomp_parallel_loop_start callers.
1659         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1660         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1661         GOMP_loop_end_cancel): New functions.
1662         (GOMP_parallel_end): Add ialias_redirect.
1663         * hashtab.h: New file.
1664         * libgomp.texi (Environment Variables): Minor cleanup,
1665         update section refs to OpenMP 4.0rc2.
1666         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
1667         environment variables.
1668         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
1669         team->work_shares_to_free to thr->ts.work_share before calling
1670         free_work_share.
1671         (gomp_work_share_end_cancel): New function.
1672         * config/linux/proc.c: Include errno.h.
1673         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
1674         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
1675         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
1676         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
1677         gomp_cpuset_size is sizeof (cpu_set_t).
1678         (gomp_init_num_threads): Initialize gomp_cpuset_size,
1679         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
1680         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
1681         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
1682         contain any logical CPUs.
1683         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
1684         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
1685         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
1686         pthread_getaffinity_np.  Check gomp_places_list instead of
1687         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
1688         * config/linux/bar.c (gomp_barrier_wait_end,
1689         gomp_barrier_wait_last): Use BAR_* defines.
1690         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
1691         from state where needed.  Set work_share_cancelled to 0 on last
1692         thread.
1693         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
1694         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
1695         functions.
1696         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
1697         Add cpusetsize argument.
1698         (gomp_cpuset_size, gomp_cpusetp): Declare.
1699         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
1700         (affinity_counter): Remove.
1701         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
1702         if CPU_ALLOC_SIZE isn't defined.
1703         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
1704         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
1705         bind current thread to the first place.
1706         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
1707         pthread_setaffinity_np to gomp_places_list[place].
1708         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1709         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1710         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1711         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
1712         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1713         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1714         (gomp_barrier_t): Add awaited_final field.
1715         (gomp_barrier_init): Initialize awaited_final field.
1716         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
1717         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
1718         prototypes.
1719         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
1720         defines.
1721         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
1722         gomp_team_barrier_cancelled): New inline functions.
1723         (gomp_barrier_last_thread,
1724         gomp_team_barrier_set_task_pending,
1725         gomp_team_barrier_clear_task_pending,
1726         gomp_team_barrier_set_waiting_for_tasks,
1727         gomp_team_barrier_waiting_for_tasks,
1728         gomp_team_barrier_done): Use BAR_* defines.
1729         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
1730         (gomp_barrier_wait_end): Use BAR_* defines.
1731         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
1732         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
1733         Use BAR_* defines.
1734         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
1735         gomp_team_barrier_cancel): New functions.
1736         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
1737         argument.
1738         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1739         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1740         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1741         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
1742         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1743         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1744         (gomp_barrier_t): Add cancellable field.
1745         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
1746         gomp_team_barrier_cancel): New prototypes.
1747         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
1748         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
1749         gomp_team_barrier_cancelled): New inline functions.
1750         (gomp_barrier_wait_start, gomp_barrier_last_thread,
1751         gomp_team_barrier_set_task_pending,
1752         gomp_team_barrier_clear_task_pending,
1753         gomp_team_barrier_set_waiting_for_tasks,
1754         gomp_team_barrier_waiting_for_tasks,
1755         gomp_team_barrier_done): Use BAR_* defines.
1756         * barrier.c (GOMP_barrier_cancel): New function.
1757         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
1758         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1759         omp_proc_bind_spread): New params.
1760         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1761         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1762         omp_get_team_num, omp_is_initial_device): New externals.
1763         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
1764         New functions.
1765         (gomp_resolve_num_threads): Adjust for thread_limit now being in
1766         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
1767         infinity.  If not nested, just return minimum of max_num_threads
1768         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
1769         to the returned value.  Otherwise, don't update atomically
1770         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
1771         (GOMP_parallel_end): Adjust for thread_limit now being in
1772         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
1773         infinity.  Adjust threads_busy in the pool rather than
1774         gomp_remaining_threads_count.  Remember team->nthreads and call
1775         gomp_team_end before adjusting threads_busy, if not nested
1776         afterwards, just set it to 1 non-atomically.  Add ialias.
1777         (GOMP_parallel_start): Adjust gomp_team_start caller.
1778         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
1779         * testsuite/libgomp.c/affinity-1.c: New test.
1780         * testsuite/libgomp.c/atomic-15.c: New test.
1781         * testsuite/libgomp.c/atomic-16.c: New test.
1782         * testsuite/libgomp.c/atomic-17.c: New test.
1783         * testsuite/libgomp.c/cancel-for-1.c: New test.
1784         * testsuite/libgomp.c/cancel-for-2.c: New test.
1785         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
1786         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
1787         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
1788         * testsuite/libgomp.c/cancel-sections-1.c: New test.
1789         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
1790         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
1791         * testsuite/libgomp.c/depend-1.c: New test.
1792         * testsuite/libgomp.c/depend-2.c: New test.
1793         * testsuite/libgomp.c/depend-3.c: New test.
1794         * testsuite/libgomp.c/depend-4.c: New test.
1795         * testsuite/libgomp.c/for-1.c: New test.
1796         * testsuite/libgomp.c/for-1.h: New file.
1797         * testsuite/libgomp.c/for-2.c: New test.
1798         * testsuite/libgomp.c/for-2.h: New file.
1799         * testsuite/libgomp.c/for-3.c: New test.
1800         * testsuite/libgomp.c/pr58392.c: New test.
1801         * testsuite/libgomp.c/simd-1.c: New test.
1802         * testsuite/libgomp.c/simd-2.c: New test.
1803         * testsuite/libgomp.c/simd-3.c: New test.
1804         * testsuite/libgomp.c/simd-4.c: New test.
1805         * testsuite/libgomp.c/simd-5.c: New test.
1806         * testsuite/libgomp.c/simd-6.c: New test.
1807         * testsuite/libgomp.c/target-1.c: New test.
1808         * testsuite/libgomp.c/target-2.c: New test.
1809         * testsuite/libgomp.c/target-3.c: New test.
1810         * testsuite/libgomp.c/target-4.c: New test.
1811         * testsuite/libgomp.c/target-5.c: New test.
1812         * testsuite/libgomp.c/target-6.c: New test.
1813         * testsuite/libgomp.c/target-7.c: New test.
1814         * testsuite/libgomp.c/taskgroup-1.c: New test.
1815         * testsuite/libgomp.c/thread-limit-1.c: New test.
1816         * testsuite/libgomp.c/thread-limit-2.c: New test.
1817         * testsuite/libgomp.c/thread-limit-3.c: New test.
1818         * testsuite/libgomp.c/udr-1.c: New test.
1819         * testsuite/libgomp.c/udr-2.c: New test.
1820         * testsuite/libgomp.c/udr-3.c: New test.
1821         * testsuite/libgomp.c++/affinity-1.C: New test.
1822         * testsuite/libgomp.c++/atomic-10.C: New test.
1823         * testsuite/libgomp.c++/atomic-11.C: New test.
1824         * testsuite/libgomp.c++/atomic-12.C: New test.
1825         * testsuite/libgomp.c++/atomic-13.C: New test.
1826         * testsuite/libgomp.c++/atomic-14.C: New test.
1827         * testsuite/libgomp.c++/atomic-15.C: New test.
1828         * testsuite/libgomp.c++/cancel-for-1.C: New test.
1829         * testsuite/libgomp.c++/cancel-for-2.C: New test.
1830         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
1831         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
1832         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
1833         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
1834         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
1835         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
1836         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
1837         * testsuite/libgomp.c++/cancel-test.h: New file.
1838         * testsuite/libgomp.c++/for-9.C: New test.
1839         * testsuite/libgomp.c++/for-10.C: New test.
1840         * testsuite/libgomp.c++/for-11.C: New test.
1841         * testsuite/libgomp.c++/simd-1.C: New test.
1842         * testsuite/libgomp.c++/simd-2.C: New test.
1843         * testsuite/libgomp.c++/simd-3.C: New test.
1844         * testsuite/libgomp.c++/simd-4.C: New test.
1845         * testsuite/libgomp.c++/simd-5.C: New test.
1846         * testsuite/libgomp.c++/simd-6.C: New test.
1847         * testsuite/libgomp.c++/simd-7.C: New test.
1848         * testsuite/libgomp.c++/simd-8.C: New test.
1849         * testsuite/libgomp.c++/target-1.C: New test.
1850         * testsuite/libgomp.c++/target-2.C: New test.
1851         * testsuite/libgomp.c++/target-2-aux.cc: New file.
1852         * testsuite/libgomp.c++/target-3.C: New test.
1853         * testsuite/libgomp.c++/taskgroup-1.C: New test.
1854         * testsuite/libgomp.c++/udr-1.C: New test.
1855         * testsuite/libgomp.c++/udr-2.C: New test.
1856         * testsuite/libgomp.c++/udr-3.C: New test.
1857         * testsuite/libgomp.c++/udr-4.C: New test.
1858         * testsuite/libgomp.c++/udr-5.C: New test.
1859         * testsuite/libgomp.c++/udr-6.C: New test.
1860         * testsuite/libgomp.c++/udr-7.C: New test.
1861         * testsuite/libgomp.c++/udr-8.C: New test.
1862         * testsuite/libgomp.c++/udr-9.C: New test.
1864 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
1866         PR testsuite/57605
1867         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
1868         ALWAYS_CFLAGS.
1870 2013-09-20  Alan Modra  <amodra@gmail.com>
1872         * configure: Regenerate.
1874 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
1876         * testsuite/libgomp.c/sections-2.c: New test.
1878 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1880         * testsuite/libgomp.fortran/strassen.f90:
1881         Add dg-skip-if aarch64_tiny.
1883 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
1884             Cesar Philippidis  <cesar@codesourcery.com>
1886         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
1887         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
1888         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
1889         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1890         * testsuite/libgomp.graphite/graphite.exp: Likewise.
1891         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
1892         Use dg-runtest rather than gfortran-dg-runtest.
1894 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1896         * testsuite/libgomp.c/icv-2.c: Extend current handling of
1897         Linux-based x86 systems to cover all GNU systems.
1898         * testsuite/libgomp.c/lock-3.c: Likewise.
1899         * testsuite/libgomp.c/pr48591.c: Likewise.
1901 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
1903         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
1904         GNU/Hurd, as done for Linux-based systems.
1906         * config/posix/ptrlock.h: Fix comment.
1908 2013-05-27  Tobias Burnus  <burnus@net-b.de>
1910         PR fortran/57423
1911         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
1912         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
1913         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
1914         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
1915         omp_destroy_nest_lock): Correct arguments to match the one in
1916         the OpenMP spec.
1917         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
1918         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
1919         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
1920         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
1922 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
1924         * testsuite/libgomp.c/loop-13.c: New test.
1925         * testsuite/libgomp.c/loop-14.c: New test.
1926         * testsuite/libgomp.c/loop-15.c: New test.
1927         * testsuite/libgomp.c++/loop-13.C: New test.
1928         * testsuite/libgomp.c++/loop-14.C: New test.
1929         * testsuite/libgomp.c++/loop-15.C: New test.
1931 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
1933         PR middle-end/56217
1934         * testsuite/libgomp.c++/pr56217.C: New test.
1936 2013-02-01  Alan Modra  <amodra@gmail.com>
1938         * task.c (GOMP_task, GOMP_taskwait): Comment.
1940 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
1941             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
1943         PR libgomp/55561
1944         * config/linux/wait.h (do_spin): Use atomic load for addr.
1945         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
1946         for intptr and ptrlock.
1947         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
1948         for ptrlock.
1950 2013-01-22  Alan Modra  <amodra@gmail.com>
1952         PR libgomp/51376
1953         PR libgomp/56073
1954         * task.c (GOMP_task): Revert 2011-12-09 change.
1955         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
1956         barrier to read task->children..
1957         (gomp_barrier_handle_tasks): ..and matching atomic store with
1958         release barrier here when setting parent->children to NULL.
1960 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1961             Tobias Burnus  <burnus@net-b.de>
1963         PR driver/55884
1964         * testsuite/libgomp.fortran/fortran.exp: Use
1965         -fintrinsic-modules-path= instead of
1966         -fintrinsic-modules-path.
1968 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
1970         Update copyright years.
1972 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1974         * testsuite/libgomp.fortran/fortran.exp: Set
1975         -fintrinsic-modules-path.
1977 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1979         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
1980         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
1982 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
1984         PR libgomp/55411
1985         * team.c (gomp_free_thread): Decrease gomp_managed_threads
1986         if pool had any threads_used.
1988 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
1990         * testsuite/libgomp.c++/pr24455.C: Use
1991         -Wl,-undefined,dynamic_lookup on darwin.
1993 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
1995         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
1997 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
1999         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
2001 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
2002             Jim MacArthur  <jim.macarthur@arm.com>
2003             Marcus Shawcroft  <marcus.shawcroft@arm.com>
2004             Nigel Stephens  <nigel.stephens@arm.com>
2005             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2006             Richard Earnshaw  <rearnsha@arm.com>
2007             Sofiane Naci  <sofiane.naci@arm.com>
2008             Stephen Thomas  <stephen.thomas@arm.com>
2009             Tejas Belagod  <tejas.belagod@arm.com>
2010             Yufeng Zhang  <yufeng.zhang@arm.com>
2012         * configure.tgt: Add AArch64.
2014 2012-10-04  Jason Merrill  <jason@redhat.com>
2016         * testsuite/libgomp.c++/tls-init1.C: New.
2018 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
2020         * configure: Regenerated.
2022 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
2024         * config/linux/mips/futex.h (sys_futex0): Change to static
2025         function with noinline, nomips16 attributes under MIPS16. Adjust
2026         asm statement to place 'li v0,SYS_futex' immediately before
2027         syscall insn.
2029 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
2031         * libgomp.texi (Library Index): Renamed from "Index" to prevent
2032         conflict with index.html on case-insensitive file systems.
2034 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
2036         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
2037         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
2039 2012-07-02  Richard Guenther  <rguenther@suse.de>
2040             Michael Matz  <matz@suse.de>
2041             Tobias Grosser <tobias@grosser.es>
2042             Sebastian Pop <sebpop@gmail.com>
2044         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
2045         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
2046         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2047         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2049 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
2051         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
2053 2012-06-22  Richard Guenther  <rguenther@suse.de>
2055         Merge from graphite branch
2056         2012-01-13  Tobias Grosser  <tobias@grosser.es>
2058         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2059         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
2061 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
2063         PR middle-end/53580
2064         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
2065         use GOMP_barrier () call instead.
2066         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2067         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2068         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
2069         call GOMP_barrier instead.
2070         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2072 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
2074         PR libgomp/52993
2075         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
2076         argument to memset call.
2078 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2080         * configure: Regenerated.
2082 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2084         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
2086 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2088         PR bootstrap/52812
2089         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
2091 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
2093         PR middle-end/52547
2094         * testsuite/libgomp.c/pr52547.c: New test.
2096 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2098         * testsuite/lib/libgomp.exp: load fortran-modules.exp
2100 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2102         * configure.tgt (mips-sgi-irix6*): Remove.
2104 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2106         * configure.tgt (alpha*-dec-osf*): Remove.
2108         * config/osf/sem.h: Remove.
2109         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
2111 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
2113         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
2115 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2117         PR libstdc++/52188
2118         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
2119         Remove ENABLE_SYMVERS_SOL2.
2120         * configure: Regenerate.
2121         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
2122         (PREPROCESS): New variable.
2123         (libgomp.ver): New target.
2124         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
2125         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
2126         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
2127         Use libgomp.ver.
2128         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
2129         * Makefile.in: Regenerate.
2131 2012-02-14  Walter Lee  <walt@tilera.com>
2133         * configure.tgt: Handle tilegx and tilepro.
2134         * config/linux/tile/futex.h: New file.
2136 2012-02-08  Richard Guenther  <rguenther@suse.de>
2138         PR tree-optimization/46886
2139         * testsuite/libgomp.c/pr46886.c: New testcase.
2141 2012-01-25  Matthias Klose  <doko@ubuntu.com>
2143         * config/linux/arm: Remove empty directory.
2144         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
2146 2011-12-09  Alan Modra  <amodra@gmail.com>
2148         PR libgomp/51376
2149         * task.c (GOMP_taskwait): Don't access task->children outside of
2150         task_lock mutex region.
2151         (GOMP_task): Likewise.
2153 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
2155         PR libgomp/51132
2156         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
2157         to file scope.
2158         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
2159         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
2160         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2161         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2162         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
2164 2011-12-02  Alan Modra  <amodra@gmail.com>
2166         * config/linux/affinity.c: Use atomic rather than sync builtin.
2167         * config/linux/lock.c: Likewise.
2168         * config/linux/ptrlock.h: Likewise.
2169         * config/linux/ptrlock.c: Likewise.
2170         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
2171         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
2172         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
2173         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
2174         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
2175         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
2176         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
2177         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
2178         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
2179         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
2181 2011-11-30  Alan Modra  <amodra@gmail.com>
2183         PR libgomp/51298
2184         * config/linux/bar.h: Use atomic rather than sync builtins.
2185         * config/linux/bar.c: Likewise.  Add missing acquire
2186         synchronisation on generation field.
2187         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
2188         double unlock.
2190 2011-11-30  Alan Modra  <amodra@gmail.com>
2192         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
2193         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
2194         * config/linux/mutex.h: Use atomic rather than sync builtins.
2195         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
2196         * config/linux/omp-lock.h: Comment fix.
2197         * config/linux/arm/mutex.h: Delete.
2198         * config/linux/powerpc/mutex.h: Delete.
2199         * config/linux/ia64/mutex.h: Delete.
2200         * config/linux/mips/mutex.h: Delete.
2202 2011-11-30  Alan Modra  <amodra@gmail.com>
2204         PR libgomp/51249
2205         * config/linux/sem.h: Rewrite.
2206         * config/linux/sem.c: Rewrite.
2208 2011-11-28  Richard Henderson  <rth@redhat.com>
2210         * libgomp.h (enum memmodel): New.
2212 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
2214         * configure: Regenerate.
2216 2011-10-10  Matthias Klose  <doko@ubuntu.com>
2218         * config/posix95: Remove empty directory.
2220 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
2222         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
2224 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
2226         PR fortran/49792
2227         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
2228         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
2230 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2232         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
2234 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2236         PR libgomp/49965
2237         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
2239 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
2241         * config/linux/proc.h: New.
2242         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
2243         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
2244         (gomp_init_num_threads): Update call to cpuset_popcount.
2245         (get_num_procs): Ditto.
2246         * config/linux/affinity.c (gomp_init_affinity): Call
2247         gomp_cpuset_popcount.
2249 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
2251         PR fortran/42041
2252         PR fortran/46752
2253         * omp.h.in (omp_in_final): New prototype.
2254         * omp_lib.f90.in (omp_in_final): New interface.
2255         (omp_integer_kind, omp_logical_kind): Remove
2256         and replace all its uses in the module with 4.
2257         (openmp_version): Change to 201107.
2258         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
2259         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
2260         kind for the parameters.
2261         (omp_in_final): New external.
2262         (openmp_version): Change to 201107.
2263         * task.c (omp_in_final): New function.
2264         (gomp_init_task): Initialize final_task.
2265         (GOMP_task): Remove unused attribute from flags.  Handle final
2266         tasks.
2267         (GOMP_taskyield): New function.
2268         (omp_in_final): Return true if if (false) or final (true) task
2269         or descendant of final (true).
2270         * fortran.c (omp_in_final_): New function.
2271         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
2272         (GOMP_3.0): Export GOMP_taskyield.
2273         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
2274         variables.
2275         (parse_unsigned_long_list): New function.
2276         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
2277         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
2278         even if parse_affinity returned false.
2279         * config/linux/affinity.c (gomp_init_affinity): Handle
2280         gomp_cpu_affinity_len == 0.
2281         * libgomp_g.h (GOMP_taskyield): New prototype.
2282         * libgomp.h (struct gomp_task): Add final_task field.
2283         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
2284         * team.c (gomp_team_start): Override new task's nthreads_var icv
2285         if list form OMP_NUM_THREADS has been used and it has value for
2286         the new nesting level.
2288         * testsuite/libgomp.c/atomic-11.c: New test.
2289         * testsuite/libgomp.c/atomic-12.c: New test.
2290         * testsuite/libgomp.c/atomic-13.c: New test.
2291         * testsuite/libgomp.c/atomic-14.c: New test.
2292         * testsuite/libgomp.c/reduction-6.c: New test.
2293         * testsuite/libgomp.c/task-5.c: New test.
2294         * testsuite/libgomp.c++/atomic-2.C: New test.
2295         * testsuite/libgomp.c++/atomic-3.C: New test.
2296         * testsuite/libgomp.c++/atomic-4.C: New test.
2297         * testsuite/libgomp.c++/atomic-5.C: New test.
2298         * testsuite/libgomp.c++/atomic-6.C: New test.
2299         * testsuite/libgomp.c++/atomic-7.C: New test.
2300         * testsuite/libgomp.c++/atomic-8.C: New test.
2301         * testsuite/libgomp.c++/atomic-9.C: New test.
2302         * testsuite/libgomp.c++/task-8.C: New test.
2303         * testsuite/libgomp.c++/reduction-4.C: New test.
2304         * testsuite/libgomp.fortran/allocatable7.f90: New test.
2305         * testsuite/libgomp.fortran/allocatable8.f90: New test.
2306         * testsuite/libgomp.fortran/crayptr3.f90: New test.
2307         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
2308         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
2309         * testsuite/libgomp.fortran/pointer1.f90: New test.
2310         * testsuite/libgomp.fortran/pointer2.f90: New test.
2311         * testsuite/libgomp.fortran/task4.f90: New test.
2313 2011-08-02  Tobias Burnus  <burnus@net-b.de>
2315         * libgomp.texi: Update OpenMP spec references to 3.1.
2316         (omp_in_final,OMP_PROC_BIND): New sections.
2317         (OMP_NUM_THREADS): Document that the value can be now a list.
2318         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
2320 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
2322         * config/linux/x86/futex.h: Check __x86_64__ instead of
2323         __LP64__.
2325 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
2327         PR middle-end/49897
2328         PR middle-end/49898
2329         * testsuite/libgomp.c/pr49897-1.c: New test.
2330         * testsuite/libgomp.c/pr49897-2.c: New test.
2331         * testsuite/libgomp.c/pr49898-1.c: New test.
2332         * testsuite/libgomp.c/pr49898-2.c: New test.
2334 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2336         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
2337         for ia32 instead of ilp32.
2339         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
2340         * testsuite/libgomp.c/atomic-6.c: Likewise.
2342 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
2344         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
2345         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
2347 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2349         PR libgomp/45351
2350         * config/osf/sem.h: New file.
2351         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
2353 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2355         PR target/49541
2356         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
2357         ldflags.
2359 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
2361         * config/linux/wait.h (do_spin): New inline, largely copied
2362         from do_wait, just don't do futex_wait here, instead return true if
2363         it should be done.
2364         (do_wait): Implement using do_spin.
2365         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
2366         to prototype.
2367         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
2368         __sync_bool_compare_and_swap, pass the oldval to
2369         gomp_mutex_lock_slow.
2370         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
2371         If all mutex contenders are just spinning and not sleeping, don't
2372         change state to 2 unnecessarily.  Optimize the loop when state has
2373         already become 2 to use just one atomic operation per loop instead
2374         of two.
2375         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
2376         to prototype.
2377         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
2378         __sync_bool_compare_and_swap, pass the oldval to
2379         gomp_mutex_lock_slow.
2381 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
2383         PR libgomp/49490
2384         * iter.c (gomp_iter_static_next): For chunk size 0
2385         only use n ceil/ nthreads size for the first
2386         n % nthreads threads in the team instead of
2387         all threads except for the last few ones which
2388         get less work or none at all.
2389         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
2390         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
2391         chunk argument, set run_sched_modifier to 0 for static
2392         resp. 1 for other kinds.  If chunk argument is 0
2393         and not static, set value to 1.
2395 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
2397         PR c++/49043
2398         * testsuite/libgomp.c++/pr49043.C: New test.
2400         PR c++/48869
2401         * testsuite/libgomp.c++/pr48869.C: New test.
2403 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
2405         PR fortran/48894
2406         * fortran.c: Include limits.h.
2407         (TO_INT): Define.
2408         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
2409         *set.
2410         (omp_set_num_threads_8_, omp_set_schedule_8_,
2411         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
2412         omp_get_team_size_8_): Use TO_INT macro.
2413         * testsuite/libgomp.fortran/pr48894.f90: New test.
2415 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
2417         PR middle-end/48591
2418         * testsuite/libgomp.c/pr48591.c: New test.
2420 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2422         PR bootstrap/48135
2423         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
2424         * configure: Regenerate.
2426 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
2428         PR fortran/47886
2429         * testsuite/libgomp.fortran/task3.f90: New test.
2431 2011-02-24  Tobias Burnus  <burnus@net-b.de>
2433         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
2435 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
2437         PR libgomp/47854
2438         * libgomp.texi (omp_get_wtime): Don't say time in the past
2439         must be Unix Epoch.
2441 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
2443         PR libgomp/47804
2444         * testsuite/libgomp.fortran/fortran.exp: Check for both
2445         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
2446         but $blddir != "", still append ${blddir}/${lang_library_path}
2447         to ld_library_path.
2449 2011-02-16  Tobias Burnus  <burnus@net-b.de>
2451         PR libgomp/47758
2452         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
2453         of libquadmath.a before adding its libpath to ldflags.
2455 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
2457         PR libgomp/47731
2458         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
2459         to FUTEX_WAIT futex syscall.
2460         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
2462 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2464         * configure: Regenerate.
2466 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
2468         PR libstdc++/36104
2469         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
2471 2011-01-16  Gerald Pfeifer
2473         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
2475 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
2477         PR fortran/46874
2478         * libgomp.fortran/allocatable6.f90: New test.
2480 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2482         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
2483         * configure: Regenerate.
2485 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2487         PR target/40125
2488         PR lto/46695
2489         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
2490         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
2491         * aclocal.m4: Regenerate.
2492         * configure: Regenerate.
2493         * Makefile.in: Regenerate.
2494         * testsuite/Makefile.in: Regenerate.
2496 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
2498         PR fortran/46753
2499         * libgomp.fortran/pr46753.f90: New test.
2501         PR libgomp/43706
2502         * env.c (initialize_env): Default to spin count 300000
2503         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
2504         is specified.
2506         PR libgomp/45240
2507         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
2508         at the end if sync builtins aren't supported.
2510 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2512         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
2514 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2516         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
2518 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
2520         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
2522 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2523             Tobias Burnus  <burnus@net-b.de>
2525         PR fortran/32049
2526         * configure.ac:
2527         * configure: Regenerate.
2529 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2531         * config/linux/futex.h: New.
2532         * config/linux/arm/mutex.h: New.
2533         * configure.tgt (arm*-*-linux*): Add config path.
2535 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2537         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2539 2010-09-23  Tobias Burnus  <burnus@net-b.de>
2541         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
2542         Change Fortran datatype to LOGICAL.
2543         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
2544         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
2546 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2548         * configure: Regenerate.
2550 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
2552         * libgomp.texi: Add function keyword to a couple of Fortran
2553         interfaces, use integer instead of int for Fortran.
2555 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
2557         * libgomp.texi: Fix spelling and pasto problems throughout.
2558         Adjust prototypes to match code.
2560 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2562         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
2563         silence -fwhole-file warning.
2565 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2567         * configure.tgt (*-*-solaris2.[56]*): Removed.
2569 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2571         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
2572         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
2573         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
2574         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
2575         targetting solaris2*.
2576         * configure: Regenerate.
2577         * config.h.in: Regenerate.
2579         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
2580         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
2581         Add libgomp_version_dep.
2582         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
2583         versioning.
2584         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
2585         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
2586         * Makefile.in: Regenerate.
2588         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
2589         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2590         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
2591         to common block, protected by
2592         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2594 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2596         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
2598 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
2600         PR bootstrap/43170
2601         * configure: Regenerate.
2603 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2605         PR other/43620
2606         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
2607         * configure: Regenerate.
2608         * Makefile.in: Regenerate.
2609         * testsuite/Makefile.in: Regenerate.
2611 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
2613         PR c/43893
2614         * testsuite/libgomp.c/pr43893.c: New test.
2615         * testsuite/libgomp.c++/pr43893.C: New test.
2617 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2619         PR middle-end/43570
2620         * testsuite/libgomp.fortran/vla8.f90: New test.
2622 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2624         PR libgomp/43706
2625         * config/linux/affinity.c (gomp_init_affinity): Decrease
2626         gomp_available_cpus if affinity mask confines the process to fewer
2627         CPUs.
2628         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
2629         non-NULL, just return gomp_available_cpus.
2631         PR libgomp/43569
2632         * sections.c (gomp_sections_init): Initialize ws->mode.
2634 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2636         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
2637         not unused bar variable.
2638         * configure: Regenerate.
2640 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2642         * Makefile.in: Regenerate.
2643         * aclocal.m4: Regenerate.
2644         * testsuite/Makefile.in: Regenerate.
2646 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
2648         PR libgomp/42942
2649         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
2650         (initialize_env): Adjust callers.
2651         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
2652         when the argument is 0.
2654         * testsuite/libgomp.c/pr42942.c: New test.
2656 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
2658         PR middle-end/42644
2659         PR middle-end/42130
2660         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2661         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
2663 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2665         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
2666         * testsuite/libgomp.c++/task-6.C: Likewise.
2668 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
2670         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
2672 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
2674         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
2675         * configure: Regenerate.
2677 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
2679         PR fortran/42866
2680         * testsuite/libgomp.fortran/allocatable5.f90: New test.
2682 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
2684         * configure.ac: Test for executability of GFORTRAN.
2685         * configure: Regenerate.
2687 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2689         * configure: Regenerate.
2691 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
2693         PR libgomp/42602
2694         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
2696 2010-01-03  Richard Guenther  <rguenther@suse.de>
2698         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
2700 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
2702         * testsuite/libgomp.graphite/pr4118.c: New.
2704 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2706         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
2707         for darwin, protect the test with require-effective-target tls_runtime.
2708         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
2710 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2712         PR target/41605
2713         * testsuite/lib/libgomp.exp: Provide -B options to allow for
2714         link spec %s substitutions for static libraries.
2716 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
2718         PR testsuite/42135
2719         * libgomp.graphite/force-parallel-2.c: Reduce array size.
2721 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2723         * Makefile.in: Regenerate.
2724         * configure: Regenerate.
2725         * testsuite/Makefile.in: Regenerate.
2727 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2729         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
2730         settings for LC_ALL and LANG.
2732 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
2734         PR fortran/42162
2735         * testsuite/libgomp.fortran/pr42162.f90: New test.
2737 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
2739         PR middle-end/42029
2740         * testsuite/libgomp.c/pr42029.c: New test.
2742 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
2744         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
2745         *s.  Accept ld version without text in ()s.
2746         * configure: Regenerated.
2748 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
2750         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
2752 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2754         PR libgomp/41418
2755         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
2756         or a hyphen (happens with fortran language disabled).
2757         * configure: Regenerate.
2759 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2761         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
2762         use sed script portable to Solaris /bin/sed for extracting ld
2763         version.
2764         * configure: Regenerate.
2766 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
2768         * testsuite/libgomp.graphite/bounds.c: New test.
2770 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2772         * Makefile.am (libgomp_la_LINK): New.
2773         * Makefile.in: Regenerate.
2775 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2777         * configure.ac (AC_PREREQ): Bump to 2.64.
2779 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2781         * Makefile.am (install-html, install-pdf): Remove.
2782         * Makefile.in: Regenerate.
2784         * Makefile.in: Regenerate.
2785         * aclocal.m4: Regenerate.
2786         * config.h.in: Regenerate.
2787         * configure: Regenerate.
2788         * testsuite/Makefile.in: Regenerate.
2790 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2792         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
2793         * Makefile.in: Regenerate.
2795 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
2797         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
2798         * Makefile.in: Regenerate.
2800 2009-08-19  Tobias Burnus  <burnus@net-b.de>
2802         PR fortran/41102
2803         omp_lib.h.in: Fix -std=f95 errors.
2806 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
2808         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
2809         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
2810         * testsuite/libgomp.graphite/graphite.exp: New.
2812 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
2814         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
2815         only build.
2817 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
2819         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
2820         needed memory barrier semantics.
2821         * config/linux/mips/mutex.h: New file.
2823 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2825         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2827 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
2829         * configure: Regenerate.
2831 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
2833         PR testsuite/40699
2834         PR testsuite/40707
2835         PR testsuite/40709
2836         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
2837         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
2838         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
2840 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2842         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
2843         options when choosing a multilib.
2845 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
2847         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
2848         ld_library_path.  Use add_path.  Add just find_libgcc_s to
2849         ld_library_path, not every libgcc multilib directory.
2850         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
2851         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
2852         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
2853         Use add_path.
2854         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
2856 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
2858         * Makefile.am (LTLDFLAGS): Define.
2859         (LINK): Define.
2860         * Makefile.in: Regenerate.
2862 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
2864         PR fortran/39718
2865         * testsuite/libgomp.fortran/fortran.exp: Don't link with
2866         libgfortranbegin, check existence of libgfortran.a instead of
2867         libgfortranbegin.a.
2869 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
2871         PR libgomp/40174
2872         * team.c (gomp_thread_start): Destroy thr->release semaphore.
2873         (gomp_free_pool_helper): Likewise.
2875 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
2876             Jakub Jelinek  <jakub@redhat.com>
2878         PR fortran/35423
2879         * testsuite/libgomp.fortran/workshare2.f90: New test.
2881 2009-04-09  Nick Clifton  <nickc@redhat.com>
2883         * iter.c: Change copyright header to refer to version 3 of the
2884         GNU General Public License with version 3.1 of the GCC Runtime
2885         Library Exception and to point readers at the COPYING3 and
2886         COPYING3.RUNTIME files and the FSF's license web page.
2887         * alloc.c: Likewise.
2888         * barrier.c: Likewise.
2889         * config/bsd/proc.c: Likewise.
2890         * config/linux/affinity.c: Likewise.
2891         * config/linux/alpha/futex.h: Likewise.
2892         * config/linux/bar.c: Likewise.
2893         * config/linux/bar.h: Likewise.
2894         * config/linux/ia64/futex.h: Likewise.
2895         * config/linux/ia64/mutex.h: Likewise.
2896         * config/linux/lock.c: Likewise.
2897         * config/linux/mips/futex.h: Likewise.
2898         * config/linux/mutex.c: Likewise.
2899         * config/linux/mutex.h: Likewise.
2900         * config/linux/powerpc/futex.h: Likewise.
2901         * config/linux/proc.c: Likewise.
2902         * config/linux/ptrlock.c: Likewise.
2903         * config/linux/ptrlock.h: Likewise.
2904         * config/linux/s390/futex.h: Likewise.
2905         * config/linux/sem.c: Likewise.
2906         * config/linux/sem.h: Likewise.
2907         * config/linux/sparc/futex.h: Likewise.
2908         * config/linux/wait.h: Likewise.
2909         * config/linux/x86/futex.h: Likewise.
2910         * config/mingw32/proc.c: Likewise.
2911         * config/mingw32/time.c: Likewise.
2912         * config/posix/affinity.c: Likewise.
2913         * config/posix/bar.c: Likewise.
2914         * config/posix/bar.h: Likewise.
2915         * config/posix/lock.c: Likewise.
2916         * config/posix/mutex.h: Likewise.
2917         * config/posix/proc.c: Likewise.
2918         * config/posix/ptrlock.h: Likewise.
2919         * config/posix/sem.c: Likewise.
2920         * config/posix/sem.h: Likewise.
2921         * config/posix/time.c: Likewise.
2922         * config/posix95/lock.c: Likewise.
2923         * critical.c: Likewise.
2924         * env.c: Likewise.
2925         * error.c: Likewise.
2926         * fortran.c: Likewise.
2927         * iter_ull.c: Likewise.
2928         * libgomp.h: Likewise.
2929         * libgomp_f.h.in: Likewise.
2930         * libgomp_g.h: Likewise.
2931         * loop.c: Likewise.
2932         * loop_ull.c: Likewise.
2933         * omp.h.in: Likewise.
2934         * omp_lib.f90.in: Likewise.
2935         * omp_lib.h.in: Likewise.
2936         * ordered.c: Likewise.
2937         * parallel.c: Likewise.
2938         * sections.c: Likewise.
2939         * single.c: Likewise.
2940         * task.c: Likewise.
2941         * team.c: Likewise.
2942         * work.c: Likewise.
2944 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2946         * testsuite/config/default.exp: Change copyright header to refer to
2947         version 3 of the GNU General Public License and to point readers
2948         at the COPYING3 file and the FSF's license web page.
2950 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2952         PR middle-end/39573
2953         * libgomp.c++/pr39573.C: New test.
2955 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2957         PR other/39591
2958         * testsuite/libgomp.c/pr39591-1.c: New test.
2959         * testsuite/libgomp.c/pr39591-2.c: New test.
2960         * testsuite/libgomp.c/pr39591-3.c: New test.
2962 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
2964         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
2965         * testsuite/libgomp.c/atomic-6.c: Ditto.
2967 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2969         PR c/39495
2970         * testsuite/libgomp.c/loop-12.c: New test.
2971         * testsuite/libgomp.c/loop-11.c: New test.
2972         * testsuite/libgomp.c++/loop-11.C: New test.
2973         * testsuite/libgomp.c++/loop-12.C: New test.
2974         * testsuite/libgomp.c++/for-8.C: New test.
2976 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2978         * configure: Regenerate.
2980 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2982         PR middle-end/39154
2983         * testsuite/libgomp.c/pr39154.c: New test.
2985 2009-01-30  Ian Lance Taylor  <iant@google.com>
2987         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
2988         libgomp_ld_is_gold.  Get gold version number.
2989         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
2990         * configure: Rebuild.
2992 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2994         * testsuite/lib/libgomp.exp: Add -B option for targets that
2995         use libgfortran.a%s in their specs.
2997 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
2999         PR libgomp/38086
3000         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
3001         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
3002         HAVE_AS_SYMVER_DIRECTIVE is not defined.
3003         * configure: Regenerated.
3004         * config.h.in: Likewise.
3006 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
3008         PR c++/38650
3009         * testsuite/libgomp.c/pr38650.c: New test.
3010         * testsuite/libgomp.c++/pr38650.C: New test.
3012 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
3014         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
3016 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
3018         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
3020 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3022         * configure: Regenerate.
3024 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
3026         PR middle-end/36802
3027         * testsuite/libgomp.c/pr36802-1.c: New test.
3028         * testsuite/libgomp.c/pr36802-2.c: New test.
3029         * testsuite/libgomp.c/pr36802-3.c: New test.
3031 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
3033         PR libgomp/38270
3034         * config/linux/powerpc/mutex.h: New.
3036 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
3038         PR c++/38257
3039         * testsuite/libgomp.c++/for-7.C: New test.
3041         PR c++/38348
3042         * testsuite/libgomp.c++/for-6.C: New test.
3044 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
3046         PR testsuite/28870
3047         * testsuite/lib/libgomp.exp: Include new timeout library files.
3048         (libgomp_target_compile): Set timeout value from new proc.
3050 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
3052         PR libgomp/37938
3053         * config/linux/ia64/mutex.h: New.
3055 2008-11-04  Tobias Burnus  <burnus@net-b.de>
3057         PR libgomp/37935
3058         * libgomp.texi (Runtime library routines, environment variables):
3059         Update for OpenMP version 3.0.
3061 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
3062             Steve Ellcey  <sje@cup.hp.com>
3064         * configure: Regenerate for new libtool.
3065         * Makefile.in: Ditto.
3066         * testsuite/Makefile.in: Ditto.
3068 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
3069             Andreas Tobler  <a.tobler@schweiz.org>
3071         * config/bsd/proc.c: New file.
3072         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
3073         * configure.ac: Check for header <sys/sysctl.h>
3074         * configure: Regenerate.
3075         * config.h.in: Likewise.
3077 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3079         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
3081 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3083         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
3084         * Makefile.in: Regenerated.
3085         * testsuite/Makefile.in: Regenerated.
3087 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
3089         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
3090         depend on blddir if blddir exists.
3091         (libgomp_target_compile): Likewise.
3092         * testsuite/libgomp.c++/c++.exp: Likewise.
3093         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3095 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3097         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
3098         Do not list GPL as Invariant Section.
3100 2008-07-28  Ilie Garbacea  <ilie@mips.com>
3101             Chao-ying Fu  <fu@mips.com>
3103         * configure.tgt: Enable futex for MIPS.
3104         * config/linux/mips/futex.h: New file.
3106 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
3108         * team.c (gomp_team_end): Free team immediately if it has
3109         just one thread.
3111 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
3113         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
3114         * testsuite/libgomp.fortran/fortran.exp: Same.
3115         * testsuite/libgomp.c/c.exp: Same.
3116         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
3117         directory to library path first.
3119 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
3121         * env.c (parse_stacksize): Add cast to avoid warning.
3122         (parse_spincount): Likewise.
3124 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
3126         * testsuite/libgomp.c/loop-10.c: New test.
3127         * libgomp.c/loop-3.c (main): Add lastprivate clause.
3128         * libgomp.c++/loop-6.C (main): Likewise.
3130         PR debug/36617
3131         * testsuite/libgomp.c/debug-1.c: New test.
3133 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3135         * testsuite/libgomp.c/nqueens-1.c: New test.
3137         PR c++/36523
3138         * testsuite/libgomp.c++/task-7.C: New function.
3140 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3142         * configure: Regenerate.
3144 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3146         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
3147         mutex when HAVE_SYNC_BUILTINS isn't defined.
3149 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3151         * libgomp.texi (omp_test_lock): Fix typo.
3153 2008-06-12  Tobias Burnus  <burnus@net-b.de>
3155         * omp_lib.f90.in: Add "implicit none".
3157 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3159         PR middle-end/36506
3160         * testsuite/libgomp.c/reduction-5.c: New test.
3162 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
3164         * libgomp.h (struct gomp_task): Add in_tied_task field.
3165         * task.c (gomp_init_task): Initialize it.
3166         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
3167         unconditionally.  Don't call gomp_team_barrier_wake if
3168         current task is implicit or if(0) from implicit and number of
3169         running tasks is equal to nthreads - 1.
3171         PR libgomp/36471
3172         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
3173         omp_get_team_size_8): Fix pastos.
3175         PR libgomp/36469
3176         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
3177         * configure: Regenerated.
3178         * config.h.in: Regenerated.
3179         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
3180         defined.
3182 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
3184         PR bootstrap/36452
3185         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
3186         (GOMP_loop_ull_dynamic_start): Likewise.
3187         (GOMP_loop_ull_guided_start): Likewise.
3188         (GOMP_loop_ull_ordered_static_start): Likewise.
3189         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
3190         (GOMP_loop_ull_ordered_guided_start): Likewise.
3192 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3193             Richard Henderson  <rth@redhat.com>
3194             Ulrich Drepper  <drepper@redhat.com>
3195             Jakob Blomer  <jakob.blomer@ira.uka.de>
3197         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
3198         Substitute also OMP_*LOCK_25*.
3199         * configure: Regenerated.
3200         * config.h.in: Regenerated.
3201         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
3202         ptrlock.c and task.c.
3203         * Makefile.in: Regenerated.
3204         * testsuite/Makefile.in: Regenerated.
3205         * task.c: New file.
3206         * loop_ull.c: New file.
3207         * iter_ull.c: New file.
3208         * libgomp.h: Include ptrlock.h.
3209         (enum gomp_task_kind): New type.
3210         (struct gomp_team): Add task_lock, task_queue, task_count,
3211         task_running_count, single_count fields.  Add
3212         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
3213         Remove work_share_lock, generation_mask,
3214         oldest_live_gen, num_live_gen and init_work_shares fields, add
3215         work work_share_list_alloc, work_share_list_free and work_share_chunk
3216         fields.  Change work_shares from pointer to pointers into an array.
3217         Change ordered_release field into gomp_sem_t ** from flexible array
3218         member.  Add implicit_task and initial_work_shares fields.
3219         Move close to the end of the struct.
3220         (struct gomp_team_state): Add single_count, last_work_share,
3221         active_level and level fields, remove work_share_generation.
3222         (gomp_barrier_handle_tasks): New prototype.
3223         (gomp_finish_task): New inline function.
3224         (struct gomp_work_share): Move chunk_size, end, incr into
3225         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
3226         next_ll fields.  Reshuffle fields.  Add next_alloc,
3227         next_ws, next_free and inline_ordered_team_ids fields, change
3228         ordered_team_ids into pointer from flexible array member.
3229         Add mode field.  Put lock and next into a different cache line
3230         from most of the write-once fields.
3231         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
3232         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
3233         gomp_iter_ull_guided_next): New prototypes.
3234         (gomp_new_icv): New prototype.
3235         (struct gomp_thread): Add thread_pool and task fields.
3236         (struct gomp_thread_pool): New type.
3237         (gomp_new_team): New prototype.
3238         (gomp_team_start): Change type of last argument.
3239         (gomp_new_work_share): Removed.
3240         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
3241         (gomp_work_share_init_done): New static inline.
3242         (gomp_throttled_spin_count_var, gomp_available_cpus,
3243         gomp_managed_threads): New extern decls.
3244         (gomp_init_task): New prototype.
3245         (gomp_spin_count_var): New extern var decl.
3246         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
3247         or no alias support, or if not PIC.
3248         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
3249         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
3250         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
3251         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
3252         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
3253         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
3254         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
3255         gomp_test_nest_lock_25): New prototypes.
3256         (omp_lock_symver, strong_alias): Define.
3257         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
3258         decls.
3259         (gomp_end_task): New.
3260         (struct gomp_task_icv, gomp_global_icv): New.
3261         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
3262         (struct gomp_task): New.
3263         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
3264         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
3265         (gomp_icv): New.
3266         (gomp_schedule_type): Reorder enum to match
3267         omp_sched_t.
3268         * team.c (struct gomp_thread_start_data): Add thread_pool and task
3269         fields.
3270         (gomp_thread_start): Add gomp_team_barrier_wait call.
3271         For non-nested case remove clearing of docked thread thr fields.
3272         Use pool fields instead of global gomp_* variables.  Use
3273         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
3274         Create tasks for each member thread.
3275         (free_team): Only destroy team barrier, task_lock here and free it.
3276         (gomp_free_thread): Free last_team if non-NULL.
3277         (gomp_team_end): Call gomp_team_barrier_wait instead of
3278         gomp_barrier_wait.  For nested case call one extra
3279         gomp_barrier_wait.  Move here some destruction from free_team.
3280         Call free_team on pool->last_team if any, rather than freeing
3281         current team.  Destroy work_share_list_free_lock ifndef
3282         HAVE_SYNC_BUILTINS.
3283         (gomp_new_icv): New function.
3284         (gomp_threads, gomp_threads_size, gomp_threads_used,
3285         gomp_threads_dock): Removed.
3286         (gomp_thread_destructor): New variable.
3287         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
3288         functions.
3289         (gomp_team_start): Create new pool if current thread doesn't have
3290         one.  Use pool fields instead of global gomp_* variables.
3291         Initialize thread_pool field for new threads.  Clear single_count.
3292         Change last argument from ws to team, don't create
3293         new team, set ts.work_share to &team->work_shares[0] and clear
3294         ts.last_work_share.  Don't clear ts.work_share_generation.
3295         If number of threads changed, adjust atomically gomp_managed_threads.
3296         Use gomp_init_task instead of gomp_new_task,
3297         set thr->task to the corresponding implicit_task array entry.
3298         Create tasks for each member thread.  Initialize ts.level.
3299         (initialize_team): Call pthread_key_create on
3300         gomp_thread_destructor.
3301         (team_destructor): New function.
3302         (new_team): Removed.
3303         (gomp_new_team): New function.
3304         (free_team): Free gomp_work_share blocks chained through next_alloc,
3305         instead of freeing work_shares and destroying work_share_lock.
3306         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
3307         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
3308         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
3309         of gomp_barrier_wait.
3310         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
3311         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
3312         if gomp_work_share_start returned true.  Don't unlock ws->lock.
3313         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
3314         of gomp_barrier_wait.
3315         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
3316         gomp_work_share_init_done if gomp_work_share_start returned true.
3317         Don't unlock ws->lock.
3318         * work.c: Include stddef.h.
3319         (free_work_share): Use work_share_list_free_lock instead
3320         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
3321         Call gomp_fini_work_share and then either free ws if orphaned, or
3322         put it into work_share_list_free list of the current team.
3323         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
3324         functions.
3325         (gomp_work_share_start, gomp_work_share_end,
3326         gomp_work_share_end_nowait): Rewritten.
3327         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
3328         (openmp_version): Set to 200805.
3329         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
3330         omp_sched_guided, omp_sched_auto): New parameters.
3331         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3332         omp_set_max_active_levels, omp_get_max_active_levels,
3333         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3334         omp_get_active_level): New interfaces.
3335         * omp_lib.h.in (openmp_version): Set to 200805.
3336         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
3337         omp_sched_guided, omp_sched_auto): New parameters.
3338         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3339         omp_set_max_active_levels, omp_get_max_active_levels,
3340         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3341         omp_get_active_level): New externals.
3342         * loop.c: Include limits.h.
3343         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
3344         GFS_AUTO.
3345         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
3346         Likewise.  Use gomp_icv.
3347         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
3348         ts.static_trip here.
3349         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
3350         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
3351         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
3352         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
3353         don't unlock ws->lock, otherwise lock it.
3354         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
3355         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
3356         (gomp_parallel_loop_start): Call gomp_new_team instead of
3357         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
3358         Adjust gomp_team_start caller.  Pass 0 as second argument to
3359         gomp_resolve_num_threads.
3360         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
3361         If adding ws->chunk_size nthreads + 1 times after end won't
3362         overflow, set ws->mode to 1.
3363         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
3364         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
3365         GOMP_loop_ull_ordered_static_start,
3366         GOMP_loop_ull_ordered_dynamic_start,
3367         GOMP_loop_ull_ordered_guided_start,
3368         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
3369         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
3370         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
3371         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
3372         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
3373         prototypes.
3374         * libgomp.map: Export lock routines also @@OMP_2.0.
3375         (GOMP_loop_ordered_dynamic_first,
3376         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
3377         GOMP_loop_ordered_static_first): Remove.
3378         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
3379         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
3380         GOMP_loop_ull_ordered_dynamic_next,
3381         GOMP_loop_ull_ordered_dynamic_start,
3382         GOMP_loop_ull_ordered_guided_next,
3383         GOMP_loop_ull_ordered_guided_start,
3384         GOMP_loop_ull_ordered_runtime_next,
3385         GOMP_loop_ull_ordered_runtime_start,
3386         GOMP_loop_ull_ordered_static_next,
3387         GOMP_loop_ull_ordered_static_start,
3388         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
3389         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
3390         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
3391         (omp_set_schedule, omp_get_schedule,
3392         omp_get_thread_limit, omp_set_max_active_levels,
3393         omp_get_max_active_levels, omp_get_level,
3394         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
3395         omp_set_schedule_, omp_set_schedule_8_,
3396         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
3397         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
3398         omp_get_max_active_levels_, omp_get_level_,
3399         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
3400         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
3401         New exports @@OMP_3.0.
3402         * omp.h.in (omp_sched_t): New type.
3403         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3404         omp_set_max_active_levels, omp_get_max_active_levels,
3405         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
3406         omp_get_active_level): New prototypes.
3407         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
3408         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
3409         gomp_thread_limit_var, gomp_remaining_threads_count,
3410         gomp_remaining_threads_lock): New variables.
3411         (parse_spincount): New function.
3412         (initialize_env): Call gomp_init_num_threads unconditionally.
3413         Initialize gomp_available_cpus.  Call parse_spincount,
3414         initialize gomp_{,throttled_}spin_count_var
3415         depending on presence and value of OMP_WAIT_POLICY and
3416         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
3417         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
3418         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
3419         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
3420         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
3421         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
3422         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
3423         (gomp_global_icv): New.
3424         (parse_schedule): Use it.  Parse "auto".
3425         (omp_set_num_threads): Use gomp_icv.
3426         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
3427         Likewise.
3428         (omp_get_max_threads): Move from parallel.c.
3429         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
3430         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
3431         add ialias.
3432         (parse_stacksize, parse_wait_policy): New functions.
3433         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
3434         both wrappers for compatibility and new locks.
3435         (omp_set_schedule, omp_get_schedule,
3436         omp_get_thread_limit, omp_set_max_active_levels,
3437         omp_get_max_active_levels, omp_get_level,
3438         omp_get_ancestor_thread_num, omp_get_team_size,
3439         omp_get_active_level): New ialias_redirect.
3440         (omp_set_schedule_, omp_set_schedule_8_,
3441         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
3442         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
3443         omp_get_max_active_levels_, omp_get_level_,
3444         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
3445         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
3446         New functions.
3447         * parallel.c: Include limits.h.
3448         (gomp_resolve_num_threads): Add count argument.  Rewritten.
3449         (GOMP_parallel_start): Call gomp_new_team and pass that as last
3450         argument to gomp_team_start.  Pass 0 as second argument to
3451         gomp_resolve_num_threads.
3452         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
3453         if gomp_thread_limit_var != ULONG_MAX.
3454         (omp_in_parallel): Implement using ts.active_level.
3455         (omp_get_max_threads): Move to env.c.
3456         (omp_get_level, omp_get_ancestor_thread_num,
3457         omp_get_team_size, omp_get_active_level): New functions,
3458         add ialias.
3459         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
3460         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
3461         gomp_iter_dynamic_next instead of the _locked variant and don't take
3462         lock around it, otherwise acquire it before calling
3463         gomp_iter_dynamic_next_locked.
3464         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
3465         gomp_iter_dynamic_next instead of the _locked variant and don't take
3466         lock around it.
3467         (GOMP_parallel_sections_start): Call gomp_new_team instead of
3468         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
3469         Adjust gomp_team_start caller.  Pass count as second argument to
3470         gomp_resolve_num_threads, don't adjust num_threads after the call.
3471         Use gomp_icv.
3472         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
3473         ws->chunk_size by incr.
3474         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
3475         code.
3476         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
3477         types.
3478         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
3479         (omp_check_defines): Check even the compat defines.
3480         * config/linux/ptrlock.c: New file.
3481         * config/linux/ptrlock.h: New file.
3482         * config/linux/wait.h: New file.
3483         * config/posix/ptrlock.c: New file.
3484         * config/posix/ptrlock.h: New file.
3485         * config/linux/bar.h (gomp_team_barrier_wait,
3486         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3487         (gomp_team_barrier_set_task_pending,
3488         gomp_team_barrier_clear_task_pending,
3489         gomp_team_barrier_set_waiting_for_tasks,
3490         gomp_team_barrier_waiting_for_tasks,
3491         gomp_team_barrier_done): New inlines.
3492         (gomp_barrier_t): Rewritten.
3493         (gomp_barrier_state_t): New typedef.
3494         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
3495         gomp_barrier_wait_start): Rewritten.
3496         (gomp_barrier_wait_end): Change second argument to
3497         gomp_barrier_state_t.
3498         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3499         inlines.
3500         * config/linux/bar.c: Include wait.h instead of libgomp.h and
3501         futex.h.
3502         (gomp_barrier_wait_end): Rewritten.
3503         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3504         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
3505         * config/posix/bar.h (gomp_barrier_t): Add generation field.
3506         (gomp_barrier_state_t): New typedef.
3507         (gomp_team_barrier_wait,
3508         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3509         (gomp_barrier_wait_start): Or all but low 2 bits from generation
3510         into the return value.  Return gomp_barrier_state_t.
3511         (gomp_team_barrier_set_task_pending,
3512         gomp_team_barrier_clear_task_pending,
3513         gomp_team_barrier_set_waiting_for_tasks,
3514         gomp_team_barrier_waiting_for_tasks,
3515         gomp_team_barrier_done): New inlines.
3516         (gomp_barrier_wait_end): Change second argument to
3517         gomp_barrier_state_t.
3518         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3519         inlines.
3520         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
3521         (gomp_barrier_wait_end): Change second argument to
3522         gomp_barrier_state_t.
3523         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3524         gomp_team_barrier_wake): New functions.
3525         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
3526         futex.h.
3527         (gomp_futex_wake, gomp_futex_wait): New variables.
3528         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
3529         * config/linux/lock.c: Rewrite to make locks task owned,
3530         for backwards compatibility provide the old entrypoints
3531         if symbol versioning.  Include wait.h instead of libgomp.h and
3532         futex.h.
3533         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
3534         * config/posix95/lock.c: Rewrite to make locks task owned,
3535         for backwards compatibility provide the old entrypoints
3536         if symbol versioning.
3537         * config/posix/lock.c: Rewrite to make locks task owned,
3538         for backwards compatibility provide the old entrypoints
3539         if symbol versioning.
3540         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
3541         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
3542         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
3543         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3544         (sys_futex0): Return error code.
3545         (futex_wake, futex_wait): If ENOSYS was returned, clear
3546         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3547         (cpu_relax, atomic_write_barrier): New static inlines.
3548         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3549         (futex_wake, futex_wait): If ENOSYS was returned, clear
3550         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3551         (cpu_relax, atomic_write_barrier): New static inlines.
3552         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3553         (sys_futex0): Return error code.
3554         (futex_wake, futex_wait): If ENOSYS was returned, clear
3555         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3556         (cpu_relax, atomic_write_barrier): New static inlines.
3557         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3558         (sys_futex0): Return error code.
3559         (futex_wake, futex_wait): If ENOSYS was returned, clear
3560         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3561         (cpu_relax, atomic_write_barrier): New static inlines.
3562         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3563         (sys_futex0): Return error code.
3564         (futex_wake, futex_wait): If ENOSYS was returned, clear
3565         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3566         (cpu_relax, atomic_write_barrier): New static inlines.
3567         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3568         (sys_futex0): Return error code.
3569         (futex_wake, futex_wait): If ENOSYS was returned, clear
3570         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3571         (cpu_relax, atomic_write_barrier): New static inlines.
3572         * config/linux/sem.c: Include wait.h instead of libgomp.h and
3573         futex.h.
3574         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
3575         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
3576         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
3577         types.
3578         (omp_nest_lock_t): Change owner into void *, add lock field.
3579         * config/posix95/omp-lock.h: Include semaphore.h.
3580         (omp_lock_25_t, omp_nest_lock_25_t): New types.
3581         (omp_lock_t): Use sem_t instead of mutex if semaphores
3582         aren't broken.
3583         (omp_nest_lock_t): Likewise.  Change owner to void *.
3584         * config/posix/omp-lock.h: Include semaphore.h.
3585         (omp_lock_25_t, omp_nest_lock_25_t): New types.
3586         (omp_lock_t): Use sem_t instead of mutex if semaphores
3587         aren't broken.
3588         (omp_nest_lock_t): Likewise.  Add owner field.
3590 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3592         * testsuite/libgomp.c/collapse-1.c: New test.
3593         * testsuite/libgomp.c/collapse-2.c: New test.
3594         * testsuite/libgomp.c/collapse-3.c: New test.
3595         * testsuite/libgomp.c/icv-1.c: New test.
3596         * testsuite/libgomp.c/icv-2.c: New test.
3597         * testsuite/libgomp.c/lib-2.c: New test.
3598         * testsuite/libgomp.c/lock-1.c: New test.
3599         * testsuite/libgomp.c/lock-2.c: New test.
3600         * testsuite/libgomp.c/lock-3.c: New test.
3601         * testsuite/libgomp.c/loop-4.c: New test.
3602         * testsuite/libgomp.c/loop-5.c: New test.
3603         * testsuite/libgomp.c/loop-6.c: New test.
3604         * testsuite/libgomp.c/loop-7.c: New test.
3605         * testsuite/libgomp.c/loop-8.c: New test.
3606         * testsuite/libgomp.c/loop-9.c: New test.
3607         * testsuite/libgomp.c/nested-3.c: New test.
3608         * testsuite/libgomp.c/nestedfn-6.c: New test.
3609         * testsuite/libgomp.c/sort-1.c: New test.
3610         * testsuite/libgomp.c/task-1.c: New test.
3611         * testsuite/libgomp.c/task-2.c: New test.
3612         * testsuite/libgomp.c/task-3.c: New test.
3613         * testsuite/libgomp.c/task-4.c: New test.
3614         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
3615         to C++ testsuite default compiler options.
3616         * testsuite/libgomp.c++/collapse-1.C: New test.
3617         * testsuite/libgomp.c++/collapse-2.C: New test.
3618         * testsuite/libgomp.c++/ctor-10.C: New test.
3619         * testsuite/libgomp.c++/for-1.C: New test.
3620         * testsuite/libgomp.c++/for-2.C: New test.
3621         * testsuite/libgomp.c++/for-3.C: New test.
3622         * testsuite/libgomp.c++/for-4.C: New test.
3623         * testsuite/libgomp.c++/for-5.C: New test.
3624         * testsuite/libgomp.c++/loop-8.C: New test.
3625         * testsuite/libgomp.c++/loop-9.C: New test.
3626         * testsuite/libgomp.c++/loop-10.C: New test.
3627         * testsuite/libgomp.c++/task-1.C: New test.
3628         * testsuite/libgomp.c++/task-2.C: New test.
3629         * testsuite/libgomp.c++/task-3.C: New test.
3630         * testsuite/libgomp.c++/task-4.C: New test.
3631         * testsuite/libgomp.c++/task-5.C: New test.
3632         * testsuite/libgomp.c++/task-6.C: New test.
3633         * testsuite/libgomp.fortran/allocatable1.f90: New test.
3634         * testsuite/libgomp.fortran/allocatable2.f90: New test.
3635         * testsuite/libgomp.fortran/allocatable3.f90: New test.
3636         * testsuite/libgomp.fortran/allocatable4.f90: New test.
3637         * testsuite/libgomp.fortran/collapse1.f90: New test.
3638         * testsuite/libgomp.fortran/collapse2.f90: New test.
3639         * testsuite/libgomp.fortran/collapse3.f90: New test.
3640         * testsuite/libgomp.fortran/collapse4.f90: New test.
3641         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
3642         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
3643         * testsuite/libgomp.fortran/lib4.f90: New test.
3644         * testsuite/libgomp.fortran/lock-1.f90: New test.
3645         * testsuite/libgomp.fortran/lock-2.f90: New test.
3646         * testsuite/libgomp.fortran/nested1.f90: New test.
3647         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
3648         * testsuite/libgomp.fortran/strassen.f90: New test.
3649         * testsuite/libgomp.fortran/tabs1.f90: New test.
3650         * testsuite/libgomp.fortran/tabs2.f: New test.
3651         * testsuite/libgomp.fortran/task1.f90: New test.
3652         * testsuite/libgomp.fortran/task2.f90: New test.
3653         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
3654         * testsuite/libgomp.fortran/vla5.f90: Likewise.
3655         * testsuite/libgomp.c/pr26943-2.c: Likewise.
3656         * testsuite/libgomp.c/pr26943-3.c: Likewise.
3657         * testsuite/libgomp.c/pr26943-4.c: Likewise.
3659 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
3661         PR c++/36308
3662         * testsuite/libgomp.c++/ctor-11.C: New test.
3663         * testsuite/libgomp.c++/ctor-12.C: New test.
3665 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3667         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
3669 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3671         PR middle-end/36106
3672         * testsuite/libgomp.c/atomic-5.c: New test.
3673         * testsuite/libgomp.c/atomic-6.c: New test.
3674         * testsuite/libgomp.c/autopar-1.c: New test.
3676 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3678         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
3679         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
3680         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
3681         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
3682         * configure: Regenerate.
3683         * Makefile.in, testsuite/Makefile.in: Likewise.
3685 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3687         PR bootstrap/35457
3688         * aclocal.m4: Regenerate.
3689         * configure: Regenerate.
3691 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3693         PR middle-end/35611
3694         * testsuite/libgomp.c/atomic-4.c: New test.
3696         PR libgomp/35625
3697         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
3698         (gomp_iter_guided_next): Likewise.
3699         * testsuite/libgomp.c/pr35625.c: New test.
3701 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3703         * aclocal.m4: Regenerate.
3704         * configure: Likewise.
3705         * Makefile.in: Likewise.
3706         * testsuite/Makefile.in: Likewise.
3708 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3710         PR middle-end/35185
3711         * testsuite/libgomp.c++/pr35185.C: New test.
3713 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3715         PR middle-end/35549
3716         * testsuite/libgomp.c/pr35549.c: New test.
3718 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
3720         * testsuite/libgomp.c/atomic-3.c: New test.
3722 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3724         PR fortran/33197
3725         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
3726         .F08 file suffixes.
3728 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
3730         PR libgomp/33131
3731         * configure.ac: Add ACX_HEADER_STRING.
3732         * env.c: Include strings.h.
3733         * aclocal.m4: Regenerate.
3734         * config.h.in: Regenerate.
3735         * configure: Regenerate.
3736         * Makefile.in: Regenerate.
3737         * testsuite/Makefile.in: Regenerate.
3739 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3741         PR middle-end/35196
3742         * testsuite/libgomp.c/pr35196.c: New test.
3744         PR middle-end/35130
3745         * testsuite/libgomp.fortran/pr35130.f90: New test.
3746         * testsuite/libgomp.c/pr35130.c: New test.
3748 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
3750         PR middle-end/33880
3751         * testsuite/libgomp.c/pr33880.c: New test.
3752         * testsuite/libgomp.fortran/pr33880.f90: New test.
3754 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
3756         * configure: Regenerate.
3758 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
3760         * configure.ac: Move futex checking into ../config/futex.m4.
3761         * configure: Rebuilt.
3762         * aclocal.m4: Rebuilt.
3763         * Makefile.in: Rebuilt.
3765         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
3766         2007-10-15 ../config/tls.m4 change.
3768 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
3770         PR c++/34513
3771         * testsuite/libgomp.c/pr34513.c: New test.
3772         * testsuite/libgomp.c++/pr34513.C: New test.
3774 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
3776         PR target/32765
3777         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
3779 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
3781         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
3783 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
3785         * testsuite/libgomp.c/private-1.c: New test.
3787 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
3788             Paolo Bonzini  <bonzini@gnu.org>
3790         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
3791         instead of 'VPATH ='.
3792         * Makefile.in: Regenerate.
3794 2007-11-23  Matthias Klose  <doko@ubuntu.com>
3796         * configure.ac: Adjust makeinfo version check.
3797         * configure: Regenerate.
3799 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
3801         PR fortran/34020
3802         * testsuite/libgomp.fortran/pr34020.f90: New test.
3804 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
3806         PR c++/33894
3807         * testsuite/libgomp.c++/atomic-1.C: New test.
3809 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
3811         PR libgomp/33275
3812         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
3813         Make x and y integers rather than (implicit) reals.  Add private (j)
3814         clause to the last omp parallel.
3816 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
3818         * configure: Regenerate following changes to ../config/tls.m4.
3820 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
3822         * testsuite/libgomp.fortran/stack.f90: New test.
3824 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
3826         * config/mingw32/proc.c: New file.
3828 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
3830         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
3831         (main): Use __get_cpuid to get i386 target fetaures.
3832         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
3833         (main): Use __get_cpuid to get x86_64 target fetaures.
3835 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
3837         PR target/32765
3838         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
3839         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
3841 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
3843         PR fortran/32550
3844         * testsuite/libgomp.fortran/pr32550.f90: New test.
3845         * testsuite/libgomp.fortran/crayptr2.f90: New test.
3847 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3849         * aclocal.m4: Regenerated.
3851 2007-07-05  Tobias Burnus  <burnus@net-b.de>
3853         PR fortran/32359
3854         * testsuite/libgomp.fortran/pr32359.f90: New.
3856 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3858         PR libgomp/32468
3859         * sections.c (GOMP_parallel_sections_start): Only decrease
3860         number of threads to COUNT if dyn_var is true.
3861         * testsuite/libgomp.c/pr32468.c: New test.
3863 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3865         PR libgomp/26308
3866         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
3868 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
3870         PR middle-end/32362
3871         * testsuite/libgomp.c/pr32362-1.c: New test.
3872         * testsuite/libgomp.c/pr32362-2.c: New test.
3873         * testsuite/libgomp.c/pr32362-3.c: New test.
3875 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
3877         * team.c (gomp_team_start): Fix setting up thread_attr
3878         stack size.
3880 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
3882         * configure: Regenerate.
3884 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
3886         * Makefile.in: Regenerate.
3887         * configure: Regenerate.
3888         * aclocal.m4: Regenerate.
3889         * testsuite/Makefile.in: Regenerate.
3891 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
3893         * config/linux/proc.c: New file.
3895         PR libgomp/28482
3896         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
3898 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
3900         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
3902 2007-04-16  Matthias Klose  <doko@debian.org>
3904         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
3905         flags if not building with -m64.
3906         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
3907         flag for i?86-*-* targets, if current target matches -m64.
3909 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
3911         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
3912         * Makefile.in: Regenerate.
3914 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3916         PR testsuite/31369
3917         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
3918         ld_library_path.
3919         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3921 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
3923         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
3924         decls.
3925         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
3926         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
3927         (parse_affinity): New function.
3928         (initialize_env): Call it and gomp_init_affinity.
3929         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
3930         create new pthread_attr_t and call gomp_init_thread_affinity
3931         on it for each thread before passing the attribute to pthread_create.
3932         * config/linux/affinity.c: New file.
3933         * config/posix/affinity.c: New file.
3934         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
3935         * configure: Rebuilt.
3936         * config.h.in: Rebuilt.
3937         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
3938         * Makefile.in: Rebuilt.
3940 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
3942         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
3943         *-*-darwin*.
3944         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
3945         and use it if found.
3947 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
3949         * testsuite/config/default.exp: New file.
3950         * testsuite/lib/libgomp.exp: New file.
3951         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
3952         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
3953         load_lib *, load_gcc_lib *): Move to libgomp.exp.
3954         (libgomp_load): Remove.
3955         * testsuite/lib/libgomp.exp (libgomp_init): Compute
3956         always_ld_library_path, not ld_library_path.  Set additional_flags
3957         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
3958         (target_compile): Do not call libgomp_init.  Append lang_library_path
3959         and lang_link_flags to options.
3960         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
3961         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
3962         here.
3963         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
3964         always_ld_library_path.  Set LD_LIBRARY_PATH here.
3965         * testsuite/libgomp.fortran/fortran.exp: Ditto.
3966         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
3967         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
3968         CX8 flag.
3969         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
3970         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
3971         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
3972         * testsuite/libgomp.c/pr29947-1.c: Ditto.
3973         * testsuite/libgomp.c/atomic-10.c: Ditto.
3975 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
3977         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
3978         dg-final cleanup-modules line.
3979         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
3980         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
3981         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
3982         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
3983         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
3984         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
3985         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
3987 2007-03-18  Andreas Schwab  <schwab@suse.de>
3989         * acinclude.m4: Adjust regular expression for ld version
3990         extraction.
3991         * configure: Regenerate.
3993 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3995         * Makefile.am: Add install-pdf target as copied from
3996         automake v1.10 rules.
3997         * Makefile.in: Regenerate
3999 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
4001         PR libgomp/28486
4002         * configure: Regenerate.
4004         PR c++/30703
4005         * testsuite/libgomp.c++/pr30703.C: New test.
4007 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
4009         Revert:
4010         2006-07-05  Eric Christopher  <echristo@apple.com>
4011         * configure.ac: Depend addition of -pthread on host OS.
4012         * configure: Regenerate.
4014 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4016         * libgomp.texi: Fix spacing after abbreviations.
4018 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
4020         PR libgomp/30546
4021         * configure.ac: Add check for makeinfo
4022         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
4023         if an appropiate version of makeinfo is found.
4024         * aclocal.m4: Regenerated.
4025         * configure: Regenerated.
4026         * Makefile.in: Regenerated.
4027         * testsuite/Makefile.in: Regenerated.
4029 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
4031         PR libgomp/30540
4032         * libgomp.texi: More about implementation-dependent settings.
4034 2007-01-26  Tobias Burnus  <burnus@net-b.de>
4036         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
4038 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
4040         PR middle-end/30494
4041         * testsuite/libgomp.c/pr30494.c: New test.
4043 2007-01-15  Tom Tromey  <tromey@redhat.com>
4045         * configure: Rebuilt.
4046         * configure.ac: Fixed comment.
4048 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
4050         * libgomp.texi: Document implementation specific default values of
4051         environment variables.
4053 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
4055         PR libgomp/28209
4056         * libgomp.texi: New file.
4057         * configure.ac: Add --enable-generated-files-in-srcdir option.
4058         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
4059         files to srcdir.
4060         * Makefile.in: Regenerated.
4061         * config.h.in: Regenerated.
4062         * testsuite/Makefile.in: Regenerated.
4063         * NOTES: Removed.
4065 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
4067         PR libgomp/29949
4068         * env.c (omp_set_num_threads): Set illegal thread count to 1.
4070 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4072         * configure: Regenerate.
4074 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
4076         PR libgomp/29947
4077         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
4078         start if there shouldn't be any loop iterations.
4079         (gomp_loop_ordered_static_start): Remove start == end test.
4080         * testsuite/libgomp.c/pr29947-1.c: New test.
4081         * testsuite/libgomp.c/pr29947-2.c: New test.
4083 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
4085         * configure.tgt: Force initial-exec TLS model on Linux only.
4087 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
4089         * configure: Regenerated.
4091 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
4093         * env.c (parse_schedule): Reject out of range values.
4094         (parse_unsigned_long): Reject out of range, negative or zero values.
4096 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
4098         PR fortran/29629
4099         * testsuite/libgomp.fortran/pr29629.f90: New test.
4101 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
4103         PR libgomp/29494
4104         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
4105         * config/posix95: New directory.
4106         * config/posix95/omp-lock.h: New file.
4107         * config/posix95/lock.c: Likewise.
4109 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
4111         * aclocal.m4: Regenerate.
4112         * configure: Regenerate.
4114 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
4116         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
4117         '<' to '<='.
4119 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
4121         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
4122         test.
4123         * configure: Regenerate.
4124         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
4126 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
4128         PR middle-end/25261
4129         PR middle-end/28790
4130         * testsuite/libgomp.c/nestedfn-4.c: New test.
4131         * testsuite/libgomp.c/nestedfn-5.c: New test.
4132         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
4134         PR fortran/29097
4135         * testsuite/libgomp.fortran/condinc1.f: New test.
4136         * testsuite/libgomp.fortran/condinc2.f: New test.
4137         * testsuite/libgomp.fortran/condinc3.f90: New test.
4138         * testsuite/libgomp.fortran/condinc4.f90: New test.
4139         * testsuite/libgomp.fortran/condinc1.inc: New file.
4141 2006-09-18  Tom Tromey  <tromey@redhat.com>
4143         * configure: Rebuilt.
4145 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
4147         PR c/28768
4148         PR preprocessor/14634
4149         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
4150         to AC_DEFINE.
4151         * configure: Regenerate.
4153 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4155         * testsuite/libgomp.fortran/reduction3.f90: Change
4156         -2147483648 to -huge(i)-1 to avoid overflow.
4157         * testsuite/libgomp.fortran/reduction4.f90: Change
4158         Z'ffffffff' to not(0) to avoid overflow.
4160 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
4162         PR libgomp/25938
4163         * Makefile.am (libsubincludedir): New.
4164         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
4165         * Makefile.in: Regenerate.
4167 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
4169         PR libgomp/28725
4170         * env.c: Include ctype.h.
4171         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
4172         leading and/or trailing whitespace and compare strings case
4173         insensitively.
4175 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
4177         PR fortran/28390
4178         * testsuite/libgomp.fortran/pr28390.f: New test.
4180 2006-07-05  Eric Christopher  <echristo@apple.com>
4182         * configure.ac: Depend addition of -pthread on host OS.
4183         * configure: Regenerate.
4185 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
4187         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
4188         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
4189         defined.
4191 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
4193         PR libgomp/26175
4194         PR libgomp/26477
4195         * configure.ac: If neither --enable-linux-futex nor
4196         --disable-linux-futex is passed, determine the default by checking
4197         for compiling and/or running against NPTL.  With --enable-linux-futex,
4198         check if SYS_gettid and SYS_futex are defined.
4199         * configure: Rebuilt.
4201 2006-06-14  Richard Henderson  <rth@redhat.com>
4203         PR libgomp/28008
4204         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
4205         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
4207 2006-06-09  Richard Henderson  <rth@redhat.com>
4209         * env.c (gomp_nthreads_var): Change to unsigned long.
4210         (gomp_run_sched_chunk): Likewise.
4211         (parse_unsigned_long): Rename from parse_num_threads and generalize.
4212         (initialize_env): Initialize gomp_thread_attr.
4213         * libgomp.h (gomp_nthreads_var): Update decl.
4214         (gomp_run_sched_chunk): Likewise.
4215         (gomp_thread_attr): Declare.
4216         * team.c (gomp_thread_attr): Export.
4217         (initialize_team): Don't initialize it.
4219 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
4221         PR fortran/27916
4222         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
4223         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
4225 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4227         * config/mingw32/time.c: New file.
4228         * configure.tgt: Use it.
4230 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
4232         * Makefile.am: Add install-html target. Add install-html to .PHONY
4233         * Makefile.in: Regenerate.
4235 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4237         PR libgomp/27612
4238         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
4239         * testsuite/libgomp.c/critical-1.c: Likewise.
4240         * testsuite/libgomp.c/loop-1.c: Likewise.
4241         * testsuite/libgomp.c/loop-2.c: Likewise.
4242         * testsuite/libgomp.c/single-1.c: Likewise.
4243         * testsuite/libgomp.c/ordered-1.c: Likewise.
4244         * testsuite/libgomp.c/ordered-2.c: Likewise.
4246 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
4248         PR middle-end/27416
4249         * libgomp.fortran/pr27416-1.f90: New test.
4251 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
4253         PR fortran/27395
4254         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
4255         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
4257 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4259         PR c++/26943
4260         * testsuite/libgomp.c/pr26943-1.c: New test.
4261         * testsuite/libgomp.c/pr26943-2.c: New test.
4262         * testsuite/libgomp.c/pr26943-3.c: New test.
4263         * testsuite/libgomp.c/pr26943-4.c: New test.
4264         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
4265         * testsuite/libgomp.c++/pr26943.C: New test.
4267 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4269         PR middle-end/27337
4270         * testsuite/libgomp.c++/pr27337.C: New test.
4272 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
4274         PR c/26171
4275         * testsuite/libgomp.c/pr26171.c: New test.
4277 2006-04-25  Richard Henderson  <rth@redhat.com>
4279         PR libgomp/25865
4280         * configure.ac: Use GCC_CHECK_TLS.
4281         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
4282         * Makefile.in, aclocal.m4, configure: Regenerate.
4284 2006-04-10  Matthias Klose  <doko@debian.org>
4286         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
4287         directory names containing underscores.
4289 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
4291         PR c++/26691
4292         * testsuite/libgomp.c++/pr26691.C: New test.
4294 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
4296         * testsuite/libgomp.fortran/retval2.f90: New test.
4298 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
4300         * testsuite/libgomp.c++: New directory.
4302 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
4304         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
4305         * config/posix/sem.c: Implement the above.
4307 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
4309         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
4310         define HAVE_BROKEN_POSIX_SEMAPHORES.
4311         * configure: Rebuilt.
4312         * config.h.in: Rebuilt.
4314 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4316         PR bootstrap/26161
4317         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
4318         for the other pthread check.
4319         * configure: Regenerate.
4320         * config.h.in: Regenerate.
4322 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
4324         PR libgomp/25938
4325         PR libgomp/25984
4326         * Makefile.am (fincludedir): New variable.
4327         (nodist_include_HEADERS): Remove Fortran files.
4328         (nodist_finclude_HEADERS): New variable.
4329         * Makefile.in: Regenerated.
4331 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
4333         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
4334         Remove tests for returning assumed character length arrays.
4336 2006-02-12  Roger Sayle  <roger@eyesopen.com>
4337             John David Anglin  <dave@hiauly1.hia.nrc.ca>
4339         PR libgomp/25936
4340         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
4342 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
4344         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
4346 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4348         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
4349         part of LD_LIBRARY_PATH manually.
4351 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
4353         PR libgomp/25852
4354         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
4355         libgomp_init.
4357 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
4359         PR libgomp/25884
4360         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
4361         * configure.ac (PERL): Don't set.
4362         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
4363         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
4364         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
4365         * omp.h.in: Wrap the new configure substitutions with @ characters.
4366         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
4367         * aclocal.m4, configure, Makefile.in: Regenerate.
4368         * mkomp_h.pl: Delete.
4370 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
4372         PR libgomp/25259
4373         * configure.ac: Use GCC_HEADER_STDINT.
4374         * libgomp.h: Include gstdint.h.
4375         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
4376         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
4378 2006-01-24  Richard Henderson  <rth@redhat.com>
4380         PR libgomp/25942
4381         * configure.ac: Add AM_MAINTAINER_MODE.
4382         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
4384 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
4386         * Makefile.in: Regenerate.
4387         * testsuite/Makefile.in: Regenerate.
4388         * aclocal.m4: Regenerate.
4390 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
4392         * config/posix/proc.c: Conditional include of sys/loadavg.h for
4393         Solaris.
4394         * configure.ac: Add check for loadavg.h.
4395         (link_gomp): Adjust comment.
4396         * configure: Regenerate.
4397         * config.h.in: Regenerate.
4399 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
4401         PR libgomp/25877
4402         * configure.ac: Remove check for alloca.h.
4403         * configure: Regenerate.
4404         * config.h.in: Regenerate.
4405         * libgomp.h: define gomp_alloca to be __builtin_alloca.
4406         * team.c: Remove use of alloca.h.
4407         Call gomp_alloca instead of alloca.
4409 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
4411         PR libgomp/25877
4412         * team.c: Add include of alloca.h.
4413         * configure.ac: Add check for alloca.h.
4414         * configure: Regenerate.
4415         * config.h.in: Regenerate.
4417 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
4419         PR fortran/25219
4420         * testsuite/libgomp.fortran/pr25219.f90: New test.
4422 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
4424         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
4425         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
4426         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
4427         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
4428         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
4429         testsuite/libgomp.fortran/threadprivate1.f90,
4430         testsuite/libgomp.fortran/threadprivate2.f90,
4431         testsuite/libgomp.fortran/threadprivate3.f90,
4432         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
4433         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4434         testsuite/libgomp.fortran/omp_parse3.f90: Change required
4435         effective-target to TLS runtime.
4437         * testsuite/libgomp.fortran/pr25162.f: Require
4438         effective-target TLS runtime.
4440 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
4442         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
4443         * testsuite/libgomp.c/nestedfn-3.c: New test.
4445 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
4447         PR fortran/25162
4448         * testsuite/libgomp.fortran/pr25162.f: New test.
4450 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
4452         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
4453         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
4455 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
4457         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
4458         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
4459         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
4460         single.c, team.c, work.c, config/linux/alpha/futex.h,
4461         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
4462         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
4463         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
4464         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
4465         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
4466         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
4467         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
4468         FSF address.
4470 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
4472         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
4473         to nodist_noinst_HEADERS.
4474         * Makefile.in: Rebuilt.
4476         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
4477         add integer count field.
4478         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
4479         omp_nest_lock_t type change.
4480         (omp_init_nest_lock): Likewise.  Initialize count to 0.
4481         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
4482         Increment count.
4483         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
4484         Decrement count.
4485         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
4486         Increment count if successful and return the new nesting level.
4487         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
4488         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
4489         * testsuite/libgomp.c/lib-1.c: New test.
4490         * testsuite/libgomp.fortran/lib1.f90: New test.
4491         * testsuite/libgomp.fortran/lib2.f: New test.
4492         * testsuite/libgomp.fortran/lib3.f: New test.
4494 2005-11-17  Richard Henderson  <rth@redhat.com>
4496         PR 24845
4497         * Makefile.am (nodist_toolexeclib_HEADERS): New.
4498         * configure.ac (link_gomp): New.  Substitute it.
4499         (AC_CONFIG_FILES): Add libgomp.spec.
4500         * libgomp.spec.in: New file.
4501         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
4502         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
4504 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
4506         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
4507         reduction(-:var) behaving the same as reduction(+:var).
4508         * testsuite/libgomp.c/reduction-4.c: New test.
4510 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
4512         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
4513         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
4514         testsuite/libgomp.c/copyin-3.c,
4515         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
4516         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
4517         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
4518         testsuite/libgomp.c++/pr24455.C,
4519         testsuite/libgomp.fortran/threadprivate1.f90,
4520         testsuite/libgomp.fortran/threadprivate2.f90,
4521         testsuite/libgomp.fortran/threadprivate3.f90,
4522         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
4523         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4524         testsuite/libgomp.fortran/omp_parse3.f90: Require
4525         effective-target TLS.
4527 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
4529         * HEADER: Remove.
4531 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
4533         PR libgomp/24797
4534         * team.c (initialize_team): Pass NULL rather than free as
4535         pthread_key_create destructor.  Initialize thread specific data
4536         pointer in initial thread to a static local variable rather than
4537         malloced memory.
4539 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
4541         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
4542         its location to ld_library_path.
4544 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4546         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
4548 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4550         * testsuite/libgomp.c: Rename from libgomp.dg.
4552 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
4554         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
4555         threadprivate variable 'i'.
4557 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4559         * config/linux/s390/futex.h: New file.
4560         * configure.tgt: Use it.
4562         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
4563         before the parallel.
4565 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4567         PR c++/24734
4568         * testsuite/libgomp.c++/master-1.C: New test.
4570 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4572         * testsuite/libgomp.dg/copyin-3.c: New test.
4574 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4576         * testsuite/libgomp.fortran/retval1.f90: New test.
4577         * testsuite/libgomp.fortran/vla7.f90: New test.
4579 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
4581         * testsuite/libgomp.fortran/vla2.f90: New test.
4582         * testsuite/libgomp.fortran/vla3.f90: New test.
4583         * testsuite/libgomp.fortran/vla4.f90: New test.
4584         * testsuite/libgomp.fortran/vla5.f90: New test.
4585         * testsuite/libgomp.fortran/vla6.f90: New test.
4587 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
4589         * config/linux/sparc/futex.h: New file.
4590         * configure.tgt: Use it.
4591         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
4593         * critical.c: Include stdlib.h.
4594         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
4595         ignoring return value.
4596         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
4597         LIBGOMP_CHECK_SYNC_BUILTINS check.
4598         * configure: Rebuilt.
4600 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
4602         * testsuite/libgomp.fortran/vla1.f90: New test.
4604 2005-10-31  Richard Henderson  <rth@redhat.com>
4606         * testsuite/libgomp.fortran/character2.f90: Fix race condition
4607         setting 's' in different threads.
4609 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
4611         * libgomp.h (attribute_hidden, ialias): Define.
4612         * config/posix/proc.c (omp_get_num_procs): Add ialias.
4613         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
4614         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
4615         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4616         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4617         omp_test_lock, omp_test_nest_lock): Likewise.
4618         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
4619         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4620         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4621         omp_test_lock, omp_test_nest_lock): Likewise.
4622         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
4623         omp_get_dynamic, omp_get_nested): Likewise.
4624         * parallel.c (omp_get_num_threads, omp_get_max_threads,
4625         omp_get_thread_num, omp_in_parallel): Likewise.
4626         * fortran.c (ialias_redirect): Define.
4627         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
4628         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
4629         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
4630         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
4631         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
4632         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
4633         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
4634         omp_get_wtime): Add ialias_redirect.
4636 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
4638         * fortran.c: Include stdlib.h.
4640 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
4642         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
4643         * Makefile.in: Regenerated.
4645 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
4647         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
4648         * libgomp_f.h.in (omp_check_defines): New function.
4649         * env.c: Include libgomp_f.h.
4650         (initialize_env): Call omp_check_defines.
4652         * testsuite/libgomp.dg/copyin-2.c: New test.
4653         * testsuite/libgomp.c++/copyin-2.C: New test.
4654         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
4656         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
4657         * testsuite/libgomp.fortran/sharing2.f90: New test.
4659         * testsuite/libgomp.dg/copyin-1.c: New test.
4660         * testsuite/libgomp.c++/copyin-1.C: New test.
4662 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
4664         * testsuite/libgomp.fortran/crayptr1.f90: New test.
4666         * testsuite/libgomp.fortran/workshare1.f90: New test.
4668         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
4669         only test.
4670         * libgomp.fortran/sharing1.f90: New test.
4672 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
4674         PR c++/24502
4675         * testsuite/libgomp.c++/loop-7.C: New test.
4677         * testsuite/libgomp.dg/nestedfn-2.c: New test.
4679         * testsuite/libgomp.dg/nestedfn-1.c: New test.
4680         * testsuite/libgomp.fortran/reduction6.f90: New test.
4681         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
4683 2005-10-23  Richard Henderson  <rth@redhat.com>
4685         * testsuite/libgomp.c++/ctor-1.C: New.
4686         * testsuite/libgomp.c++/ctor-2.C: New.
4687         * testsuite/libgomp.c++/ctor-3.C: New.
4688         * testsuite/libgomp.c++/ctor-4.C: New.
4689         * testsuite/libgomp.c++/ctor-5.C: New.
4690         * testsuite/libgomp.c++/ctor-6.C: New.
4691         * testsuite/libgomp.c++/ctor-7.C: New.
4692         * testsuite/libgomp.c++/ctor-8.C: New.
4693         * testsuite/libgomp.c++/ctor-9.C: New.
4695 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
4697         PR 24455
4698         * testsuite/libgomp.c++/pr24455-1.C: New test.
4699         * testsuite/libgomp.c++/pr24455.C: New test.
4700         * testsuite/libgomp.dg/pr24455-1.c: New test.
4701         * testsuite/libgomp.dg/pr24455.c: New test.
4703 2005-10-20  Richard Henderson  <rth@redhat.com>
4705         * testsuite/libgomp.c++/loop-6.C: New.
4706         * testsuite/libgomp.dg/loop-3.c: New.
4708 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
4710         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
4711         explicitly private.
4712         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
4713         explicitly shared.
4715 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
4717         * testsuite/libgomp.fortran/jacobi.f: New test.
4719 2005-10-19  Richard Henderson  <rth@redhat.com>
4721         * configure.tgt (i?86-linux): Default to with_arch instead of
4722         CFLAGS.  Add -mtune to match target_cpu.
4723         (x86_64-linux): Tune to i686.
4725         * fortran.c (omp_test_nest_lock_): Fix typo.
4727 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
4729         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4730         gomp_ordered_sync): Do nothing if team->nthreads == 1.
4731         * testsuite/libgomp.dg/ordered-3.c: New test.
4733         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
4734         Remove volatile keyword.
4736         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
4737         in COMMON block to avoid warnings on 64-bit targets.
4739 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
4741         * testsuite/libgomp.dg/shared-3.c: New test.
4743 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
4745         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
4746         * testsuite/libgomp.fortran/reduction5.f90: New test.
4748 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
4750         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
4751         dg-options.
4752         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
4753         flush loop now that __sync_synchronize has proper memory barrier.
4754         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
4755         Add -ffixed-form to dg-options.
4757 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
4759         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
4760         from subdirectories.
4761         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
4762         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
4763         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
4764         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
4765         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
4766         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
4767         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
4768         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
4769         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
4770         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
4771         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
4772         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
4773         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
4774         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
4775         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
4776         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
4777         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
4778         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
4779         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
4780         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
4781         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
4782         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
4783         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
4784         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
4785         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
4787 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
4789         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
4790         lang_library_path exists.  Use find instead of glob to gather tests.
4791         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
4793 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
4795         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
4796         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
4797         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
4798         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
4799         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
4800         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
4801         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
4802         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
4803         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
4804         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
4805         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
4806         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
4807         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
4809 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
4811         * testsuite/libgomp.dg/vla-1.c: New test.
4813         * testsuite/libgomp.fortran/reference2.f90: New test.
4815         * testsuite/libgomp.fortran/character2.f90: Remove explicit
4816         declaration of omp_get_thread_num.
4817         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
4818         use omp_lib.
4820         * testsuite/libgomp.fortran/reduction1.f90: New test.
4821         * testsuite/libgomp.fortran/reduction2.f90: New test.
4822         * testsuite/libgomp.fortran/reduction3.f90: New test.
4823         * testsuite/libgomp.fortran/reduction4.f90: New test.
4825 2005-10-13  Richard Henderson  <rth@redhat.com>
4827         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
4828         * Makefile.in: Regenerate.
4829         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
4830         * libgomp.h: Include bar.h.
4831         (struct gomp_barrier): Remove.
4832         (struct gomp_team): Add barrier.  Replace master_barrier with
4833         master_release.  Replace threads with ordered_release.
4834         (struct gomp_thread): Replace barrier with release.
4835         * ordered.c (gomp_ordered_first): Update for ordered_release change.
4836         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
4837         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
4838         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
4839         (GOMP_single_copy_end): Likewise.
4840         * team.c (gomp_threads_dock): New.
4841         (gomp_barrier_init, gomp_barrier_destroy): Remove.
4842         (gomp_thread_start): Use gomp_barrier_wait.
4843         (new_team, free_team): Update for gomp_team changes.
4844         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
4845         (gomp_team_end): Use gomp_barrier_wait.
4846         (initialize_team): Update for gomp_thread changes.
4847         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
4848         (gomp_work_share_end_nowait): Use atomic ops when available.
4849         * config/linux/bar.c, config/linux/bar.h: New files.
4850         * config/posix/bar.c, config/posix/bar.h: New files.
4852 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
4854         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
4855         * testsuite/libgomp.dg/single-2.c: New test.
4857         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
4858         lang_link_flags): Unset, so that they aren't inherited from previously
4859         sourced *.exp.
4861         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
4863 2005-10-12  Richard Henderson  <rth@redhat.com>
4865         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
4866         (libgomp_init): Use lang_test_file, lang_library_path, and
4867         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
4869         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
4870         (lang_test_file, lang_link_flags): New.
4871         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
4873         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
4874         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
4875         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
4876         testsuite/libgomp.c++/parallel-1.C,
4877         testsuite/libgomp.c++/reduction-1.C,
4878         testsuite/libgomp.c++/reduction-2.C,
4879         testsuite/libgomp.c++/reduction-3.C,
4880         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
4881         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
4882         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
4883         New files, largely cribbed from the C testsuite.
4885 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
4887         * testsuite/libgomp.fortran/character1.f90: New test.
4888         * testsuite/libgomp.fortran/character2.f90: New test.
4890         * testsuite/libgomp.dg/nested-1.c: New test.
4891         * testsuite/libgomp.dg/nested-2.c: New test.
4892         * testsuite/libgomp.fortran/do1.f90: New test.
4893         * testsuite/libgomp.fortran/do2.f90: New test.
4895         * testsuite/libgomp.fortran/reference1.f90: New test.
4897 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
4899         * testsuite/libgomp.dg/reduction-1.c: New test.
4900         * testsuite/libgomp.dg/reduction-2.c: New test.
4901         * testsuite/libgomp.dg/reduction-3.c: New test.
4903 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
4905         * testsuite/libgomp.dg/atomic-1.c: New test.
4906         * testsuite/libgomp.dg/atomic-2.c: New test.
4908 2005-10-09  Richard Henderson  <rth@redhat.com>
4910         * critical.c (atomic_lock): New.
4911         (initialize_critical): Initialize it.
4912         (GOMP_atomic_start, GOMP_atomic_end): New.
4913         * libgomp.map: Export them.
4914         * libgomp_g.h: Declare them.
4916         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
4918 2005-10-02  Richard Henderson  <rth@redhat.com>
4920         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
4921         to XCFLAGS instead of CFLAGS.
4923 2005-09-30  Richard Henderson  <rth@redhat.com>
4925         * configure.ac: Determine whether -pthread or -lpthread is needed.
4926         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
4927         * Makefine.in, configure: Rebuild.
4929 2005-09-28  Richard Henderson  <rth@redhat.com>
4931         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
4932         * testsuite/libgomp.dg/omp-single-3.c: New test.
4934 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
4936         * testsuite/libgomp.dg/omp-single-2.c: New test.
4937         * testsuite/libgomp.dg/shared-2.c: Fix return code.
4939 2005-09-27  Richard Henderson  <rth@redhat.com>
4941         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
4942         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
4944 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
4946         * testsuite/libgomp.dg/omp-loop03.c: New test.
4948 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4950         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
4952 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4954         * testsuite/libgomp.dg/omp-single-1.c: New test.
4955         * testsuite/libgomp.dg/shared-1.c: Return 0.
4956         Add prototype for abort.
4957         * testsuite/libgomp.dg/shared-2.c: Likewise.
4959 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
4961         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
4962         constructs.
4964 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
4966         * testsuite/libgomp.dg/shared-1.c: New test.
4967         * testsuite/libgomp.dg/shared-2.c: New test.
4969 2005-09-24  Richard Henderson  <rth@redhat.com>
4971         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
4973 2005-09-24  Richard Henderson  <rth@redhat.com>
4975         * iter.c (gomp_iter_static_next): Round up when computing number
4976         of iterations.  Don't bother distributing a remainder equally.
4978         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
4979         Don't call srand.  Zero b before testing.
4980         (main): New.
4982 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
4984         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
4985         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
4987 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
4989         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
4990         without !$omp end do, followed immediately by subroutine end.
4992 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
4994         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
4996 2005-09-22  Richard Henderson  <rth@redhat.com>
4998         * critical.c (GOMP_critical_name_start): Change argument to void**.
4999         Reuse the pointer space if the mutex fits.
5000         (GOMP_critical_name_end): Likewise.
5001         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
5002         * libgomp_g.h (GOMP_critical_name_start): Update decl.
5003         (GOMP_critical_name_end): Likewise.
5004         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
5005         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
5007 2005-09-20  Richard Henderson  <rth@redhat.com>
5009         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
5010         (create_lock_lock): New.
5011         (initialize_critical): Initialize it.
5012         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
5013         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
5015 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
5017         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
5019 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
5021         * testsuite/libgomp.dg/omp-loop01.c: New test.
5022         * testsuite/libgomp.dg/omp-loop02.c: New test.
5024 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
5026         * configure.ac (AC_PROG_FC): Add.
5027         (USE_FORTRAN): New automake conditional.
5028         * configure: Rebuilt.
5029         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
5030         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
5031         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
5032         Add rules to build them.
5033         * Makefile.in: Rebuilt.
5034         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
5035         OMP_NEST_LOCK_KIND.
5036         * libgomp.map: Add Fortran wrappers.
5037         * libgomp_f.h.in: New file.
5038         * omp_lib.h.in: New file.
5039         * omp_lib.f90.in: New file.
5040         * fortran.c: New file.
5041         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
5042         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
5043         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
5044         libgfortran has been built.
5045         * testsuite/libgomp.fortran/fortran.exp: New file.
5046         * testsuite/libgomp.fortran/omp_cond1.f: New test.
5047         * testsuite/libgomp.fortran/omp_cond2.f: New test.
5048         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
5049         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
5050         * testsuite/libgomp.fortran/omp_hello.f: New test.
5051         * testsuite/libgomp.fortran/omp_orphan.f: New test.
5052         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
5053         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
5054         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
5055         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
5056         * testsuite/libgomp.fortran/omp_reduction.f: New test.
5057         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
5058         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
5060 2005-08-30  Richard Henderson  <rth@redhat.com>
5062         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
5063         function for when aliases are not usable.
5064         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
5065         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
5066         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
5067         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
5068         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
5069         GOMP_loop_ordered_guided_next): Likewise.
5070         * ordered.c (GOMP_ordered_start): Likewise.
5072 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
5074         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
5075         * testsuite/libgomp.dg/omp_hello.c: Fix return code
5076         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
5077         * testsuite/libgomp.dg/omp_orphan.c: Likewise
5078         * testsuite/libgomp.dg/omp_reduction.c: Likewise
5079         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
5080         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
5081         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
5082         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
5084 2005-07-07  Eric Christopher  <echristo@redhat.com>
5085             Diego Novillo  <dnovillo@redhat.com>
5087         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
5088         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
5089         up code.
5090         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
5091         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
5092         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
5093         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
5094         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
5095         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
5096         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
5098 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
5100         * TOPLEVEL.patch: Remove.
5102 2005-05-16  Richard Henderson  <rth@redhat.com>
5104         * configure.ac: Test for clock_gettime.
5105         * config.h.in, configure: Rebuild.
5106         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
5107         (omp_get_wtime): Use clock_gettime if available.
5108         (omp_get_wtick): Use clock_getres if available.
5110 2005-05-11  Richard Henderson  <rth@redhat.com>
5112         * config/linux/ia64/futex.h: New file.
5113         * configure.tgt: Use it.
5115         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
5117 2005-05-07  Richard Henderson  <rth@redhat.com>
5119         * config/linux/powerpc/futex.h: New file.
5120         * configure.tgt: Use it.
5122         * config/linux/i486/futex.h: Merge ...
5123         * config/linux/x86_64/futex.h: ... into ...
5124         * config/linux/x86/futex.h: ... here.
5125         * configure.tgt: Update to match.
5127 2005-05-06  Richard Henderson  <rth@redhat.com>
5129         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
5130         * config/linux/i486/futex.h: Likewise.
5131         * config/linux/x86_64/futex.h: Likewise.
5133         * config/linux/lock.c: New file.
5134         * config/linux/omp-lock.h: New file.
5136         * critical.c, env.h: Don't include omp.h
5137         * config/posix/lock.c: Include libgomp.h instead of omp.h.
5138         * config/posix/time.c: Likewise.
5139         * config/posix/omp-lock.h: New file.
5140         * libgomp.h: Include omp-lock.h and omp.h.
5141         * Makefile.am (nodist_include_HEADERS): New.
5142         (omp.h): New rule.
5143         * configure.ac (PERL): New.
5144         * mkomp_h.pl: New file.
5145         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
5146         with templates.
5147         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
5149         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
5150         build directory.  Re-add -march=i486 hack.
5152         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
5153         (libgomp_link_flags): Remove.
5154         (libgomp_initialized): Remove.
5155         (libgomp_init): Don't protect from reinitialization.  Copy code
5156         from libstdc++ for getting the multilib set correctly.
5158 2005-05-05  Richard Henderson  <rth@redhat.com>
5160         * config/linux/alpha/futex.h: New file.
5161         * configure.tgt (alpha*-*-linux*): Use it.
5163         * config/posix/mutex.c: New file.
5164         * config/posix/sem.c: Use libgomp.h.
5166         * configure.tgt (x86_64-linux): Also test CC for -m32.
5167         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
5169         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
5170         after $gccpath.
5172         * Makefile.am (SUBDIRS): New.
5173         (libgomp_la_LDFLAGS): Add -lpthread.
5174         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
5175         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
5177         * libgomp_g.h: New file.
5178         * libgomp.h: Split out all public declarations to libgomp_g.h.
5179         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
5180         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
5181         * config/linux/sem.h: Likewise.
5182         * config/posix/sem.h: Likewise.
5184         * Makefile.am (AM_LDFLAGS): New.
5185         (libgomp_version_script): Split out from ...
5186         (libgomp_la_LDFLAGS): ... here.
5187         (libgomp_version_info): New.
5188         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
5189         (LIBGOMP_ENABLE): New.
5190         (LIBGOMP_CHECK_LINKER_FEATURES): New.
5191         (LIBGOMP_ENABLE_SYMVERS): New.
5192         * configure.ac (AC_INIT): Version 1.0.
5193         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
5194         (enable-linux-futex): Likewise.  Rename from enable-futex.
5195         (libtool_VERSION): New.
5196         (LIBGOMP_ENABLE_SYMVERS): Use it.
5197         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
5198         * Makefile.in, aclocal.m4, configure: Rebuild.
5200         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
5201         (gomp_mutex_unlock_slow): Fix typo.
5202         * config/linux/sem.c: Similarly.
5203         (gomp_sem_post_slow): Fix typo.
5204         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
5205         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
5206         [__PIC__] (sys_futex0): Don't use tmp output in asm.
5208         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
5209         (libgomp_la_LDFLAGS): Add top_srcdir to path.
5210         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
5211         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
5212         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
5213         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
5214         LDFLAGS.  Pull enable_futex check to top-level.
5215         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
5216         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
5218         First attempt at real configury.
5219         * Makefile, config.h: Remove file.
5220         * Makefile.am, Makefile.in: New file.
5221         * acinclude.m4 aclocal.m4: New file.
5222         * configure.ac, configure.tgt, configure: New file.
5224         * config/posix/lock.c: Rename from sys-lock.c.
5225         * config/posix/mutex.h: Rename from sys-mutex.h.
5226         * config/posix/sem.c: Rename from sys-sem.c.
5227         * config/posix/sem.h: Rename from sys-sem.h.
5228         * config/posix/proc.c: Rename from sys-proc.c.
5229         * config/posix/time.c: Rename from sys-proc.c.
5231         * config/linux/mutex.c: New file.
5232         * config/linux/mutex.h: New file.
5233         * config/linux/sem.c: New file.
5234         * config/linux/sem.h: New file.
5235         * config/linux/i486/futex.h: New file.
5236         * config/linux/x86_64/futex.h: New file.
5238 2005-05-04  Richard Henderson  <rth@redhat.com>
5240         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
5241         * libgomp.h: Declare them.
5242         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
5243         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
5245 2005-05-04  Richard Henderson  <rth@redhat.com>
5247         * libgomp-1 code drop
5249 2005-05-04  Richard Henderson  <rth@redhat.com>
5251         * iter.c (gomp_iter_static_next): Return tri-state on 0.
5252         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
5253         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
5254         (gomp_iter_static_next): Update.
5255         (gomp_ordered_static_next): Update.
5256         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
5257         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
5258         totally empty range.
5259         (gomp_loop_ordered_static_next): Refine test for calling
5260         gomp_ordered_static_next.
5261         * testsuite/ordered-1.c: Add case for more threads than iterations.
5263         * iter.c (gomp_iter_runtime_next_locked): Remove.
5264         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
5265         gomp_loop_guided_start, gomp_loop_ordered_static_start,
5266         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
5267         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
5268         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
5269         gomp_loop_ordered_guided_next): Downcase name, make static, add
5270         an external alias with the old name.
5271         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
5272         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
5273         switch and call one of the above static functions.
5274         * libgomp.h: Update.
5276         * work.c (gomp_work_share_start): Lock the mutex for !first too.
5277         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
5278         GOMP_loop_guided_start, GOMP_loop_runtime_start,
5279         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
5280         GOMP_loop_ordered_guided_start): Update to match.
5281         * sections.c (GOMP_sections_start): Likewise.
5282         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
5284         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
5285         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
5286         Use bounds check instead of modulus.
5287         (gomp_ordered_sync): Split out of GOMP_ordered_start.
5288         (gomp_ordered_last): Don't sync with ordered_owner here.
5289         (gomp_ordered_next): Likewise.
5290         (gomp_ordered_static_loop_next): Likewise.
5291         * loop.c, libgomp.h: Update to match.
5293         * libgomp.h (GOMP_barrier): Declare.
5295         * testsuite/barrier-1.c: New file.
5296         * testsuite/critical-1.c: New file.
5297         * testsuite/ordered-2.c: New file.
5298         * testsuite/ordered-1.c: New file.
5299         * testsuite/sections-1.c: New file.
5300         * testsuite/single-1.c: New file.
5301         * testsuite/Makefile (TESTS): Add them.
5303 2005-05-04  Richard Henderson  <rth@redhat.com>
5305         * libgomp.h (struct gomp_work_share): Add ordered_owner.
5306         * loop.c (GOMP_loop_static_start): If not the startup thread,
5307         acquire the mutex to wait for initialization complete.
5308         (GOMP_loop_ordered_static_start): Likewise.
5309         (GOMP_loop_ordered_runtime_start): Likewise.
5310         (GOMP_loop_ordered_static_first): Remove.
5311         (GOMP_loop_ordered_dynamic_first): Remove.
5312         (GOMP_loop_ordered_guided_first): Remove.
5313         (GOMP_loop_ordered_runtime_first): Remove.
5314         * ordered.c (gomp_ordered_loop_first): Post to own release when
5315         we're the first thread.
5316         (gomp_ordered_loop_last): Wait on release if not owner.
5317         (gomp_ordered_loop_next): Likewise.
5318         (gomp_ordered_static_loop_init): New.
5319         (gomp_ordered_static_loop_next): Use ordered_owner.
5320         (GOMP_ordered_start): Likewise.
5321         * work.c (gomp_new_work_share): Initialize ordered_owner.
5323 2005-05-03  Richard Henderson  <rth@redhat.com>
5325         * Makefile (OPT): New.
5326         (CFLAGS): Use it.
5328         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
5329         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
5330         * libgomp.h, libgomp.map, NOTES: Update to match.
5332         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
5333         Add initialized and thr members.
5334         (gomp_thread_start): Pause when initially spawned to wait for
5335         the whole team to be created.
5336         (gomp_team_start): Release team members at the end.
5338         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
5339         (f_foo_1): Use GOMP_loop_end.
5340         (f_foo_2): Use GOMP_loop_end_nowait.
5342         * testsuite/loop-2.c: New file.
5343         * testsuite/Makefile (TESTS): Add it.
5345 2005-05-03  Richard Henderson  <rth@redhat.com>
5347         * iter.c (gomp_iter_static_next): Fix overflow check typo.
5348         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
5349         * team.c (new_team): Initialize oldest_live_gen to 1 if no
5350         initial work_share.
5352         * testsuite/Makefile: New file.
5353         * testsuite/loop-1.c: New file.
5355 2005-05-03  Richard Henderson  <rth@redhat.com>
5357         Initial implementation and checkin.