resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
[official-gcc.git] / libgomp / ChangeLog
blobde3ca406ed3e4fa706032d20e71eb81b8893b4a5
1 2015-10-14  Ilya Verbin  <ilya.verbin@intel.com>
2             Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
4         * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
5         to 0 when mapnum is 0.
7 2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9         * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
10         Cast to int from int32_t.
12 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
13             Aldy Hernandez  <aldyh@redhat.com>
14             Ilya Verbin  <ilya.verbin@intel.com>
16         * config/linux/affinity.c (omp_get_place_num_procs,
17         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
18         * config/linux/doacross.h: New file.
19         * config/posix/affinity.c (omp_get_place_num_procs,
20         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
21         * config/posix/doacross.h: New file.
22         * env.c: Include gomp-constants.h.
23         (struct gomp_task_icv): Rename run_sched_modifier to
24         run_sched_chunk_size.
25         (gomp_max_task_priority_var): New variable.
26         (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
27         (handle_omp_display_env): Change _OPENMP value from 201307 to
28         201511.  Print OMP_MAX_TASK_PRIORITY.
29         (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
30         (omp_set_schedule, omp_get_schedule): Rename modifier argument to
31         chunk_size and run_sched_modifier to run_sched_chunk_size.
32         (omp_get_max_task_priority, omp_get_initial_device,
33         omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
34         omp_get_partition_place_nums): New functions.
35         * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
36         omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
37         to chunk_size.
38         (omp_get_num_places_, omp_get_place_num_procs_,
39         omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
40         omp_get_place_proc_ids_8_, omp_get_place_num_,
41         omp_get_partition_num_places_, omp_get_partition_place_nums_,
42         omp_get_partition_place_nums_8_, omp_get_initial_device_,
43         omp_get_max_task_priority_): New functions.
44         * libgomp_g.h (GOMP_loop_doacross_static_start,
45         GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
46         GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
47         GOMP_loop_ull_doacross_dynamic_start,
48         GOMP_loop_ull_doacross_guided_start,
49         GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
50         GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
51         GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
52         GOMP_target_data_41, GOMP_target_update_41,
53         GOMP_target_enter_exit_data): New prototypes.
54         (GOMP_task): Add prototype argument.
55         * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
56         (struct gomp_doacross_work_share): New type.
57         (struct gomp_work_share): Add doacross field.
58         (struct gomp_task_icv): Rename run_sched_modifier to
59         run_sched_chunk_size.
60         (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
61         GOMP_TASK_UNDEFERRED.  Add comments.
62         (struct gomp_task_depend_entry): Add comments.
63         (struct gomp_task): Likewise.
64         (struct gomp_taskgroup): Likewise.
65         (struct gomp_target_task): New type.
66         (struct gomp_team): Add comment.
67         (gomp_get_place_proc_ids_8, gomp_doacross_init,
68         gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
69         gomp_create_target_task, gomp_target_task_fn): New prototypes.
70         (struct target_var_desc): New type.
71         (struct target_mem_desc): Adjust comment.  Use struct
72         target_var_desc instead of splay_tree_key for list.
73         (REFCOUNT_INFINITY): Define.
74         (struct splay_tree_key_s): Remove copy_from field.
75         (struct gomp_device_descr): Add dev2dev_func field.
76         (enum gomp_map_vars_kind): New enum.
77         (gomp_map_vars): Add one argument.
78         * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
79         omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
80         omp_get_place_num_procs, omp_get_place_num_procs_,
81         omp_get_place_num_procs_8_, omp_get_place_proc_ids,
82         omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
83         omp_get_place_num_, omp_get_partition_num_places,
84         omp_get_partition_num_places_, omp_get_partition_place_nums,
85         omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
86         omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
87         omp_target_free, omp_target_is_present, omp_target_memcpy,
88         omp_target_memcpy_rect, omp_target_associate_ptr and
89         omp_target_disassociate_ptr.
90         (GOMP_4.0.2): Renamed to ...
91         (GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
92         GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
93         GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
94         GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
95         GOMP_loop_doacross_static_start, GOMP_doacross_post,
96         GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
97         GOMP_loop_ull_doacross_guided_start,
98         GOMP_loop_ull_doacross_runtime_start,
99         GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
100         GOMP_doacross_ull_wait.
101         * libgomp.texi: Document omp_get_max_task_priority.
102         Rename modifier argument to chunk_size for omp_set_schedule and
103         omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
104         * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
105         to run_sched_chunk_size renaming.
106         (GOMP_loop_ordered_runtime_start): Likewise.
107         (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
108         gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
109         GOMP_parallel_loop_runtime_start): New functions.
110         (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
111         to run_sched_chunk_size renaming.
112         (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
113         GOMP_loop_doacross_guided_start): New functions or aliases.
114         * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
115         run_sched_modifier to run_sched_chunk_size renaming.
116         (GOMP_loop_ull_ordered_runtime_start): Likewise.
117         (gomp_loop_ull_doacross_static_start,
118         gomp_loop_ull_doacross_dynamic_start,
119         gomp_loop_ull_doacross_guided_start,
120         GOMP_loop_ull_doacross_runtime_start): New functions.
121         (GOMP_loop_ull_doacross_static_start,
122         GOMP_loop_ull_doacross_dynamic_start,
123         GOMP_loop_ull_doacross_guided_start): New functions or aliases.
124         * oacc-mem.c (acc_map_data, present_create_copy,
125         gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
126         to gomp_map_vars.
127         (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
128         * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
129         instead of false to gomp_map_vars.
130         (GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
131         * omp.h.in (omp_lock_hint_t): New type.
132         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
133         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
134         omp_get_place_num, omp_get_partition_num_places,
135         omp_get_partition_place_nums, omp_get_initial_device,
136         omp_get_max_task_priority, omp_target_alloc, omp_target_free,
137         omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
138         omp_target_associate_ptr, omp_target_disassociate_ptr): New
139         prototypes.
140         * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
141         (omp_lock_hint_none, omp_lock_hint_uncontended,
142         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
143         omp_lock_hint_speculative): New parameters.
144         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
145         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
146         omp_get_place_num, omp_get_partition_num_places,
147         omp_get_partition_place_nums, omp_get_initial_device,
148         omp_get_max_task_priority): New interfaces.
149         (omp_set_schedule, omp_get_schedule): Rename modifier argument
150         to chunk_size.
151         * omp_lib.h.in (omp_lock_hint_kind): New parameter.
152         (omp_lock_hint_none, omp_lock_hint_uncontended,
153         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
154         omp_lock_hint_speculative): New parameters.
155         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
156         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
157         omp_get_place_num, omp_get_partition_num_places,
158         omp_get_partition_place_nums, omp_get_initial_device,
159         omp_get_max_task_priority): New functions and subroutines.
160         * ordered.c: Include stdarg.h and string.h.
161         (MAX_COLLAPSED_BITS): Define.
162         (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
163         gomp_doacross_ull_init, GOMP_doacross_ull_post,
164         GOMP_doacross_ull_wait): New functions.
165         * target.c: Include errno.h.
166         (resolve_device): If device is not initialized, call
167         gomp_init_device on it.
168         (gomp_map_lookup): New function.
169         (gomp_map_vars_existing): Add tgt_var argument, fill it in.
170         Don't bump refcount if REFCOUNT_INFINITY.  Handle
171         GOMP_MAP_ALWAYS_TO_P.
172         (get_kind): Rename is_openacc argument to short_mapkind.
173         (gomp_map_pointer): Use gomp_map_lookup.
174         (gomp_map_fields_existing): New function.
175         (gomp_map_vars): Rename is_openacc argument to short_mapkind
176         and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
177         handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
178         GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
179         Adjust for tgt->list changed type and copy_from living in there.
180         (gomp_copy_from_async): Adjust for tgt->list changed type and
181         copy_from living in there.
182         (gomp_unmap_vars): Likewise.
183         (gomp_update): Likewise.  Rename is_openacc argument to
184         short_mapkind.  Don't fail if object is not mapped.
185         (gomp_load_image_to_device): Initialize refcount to
186         REFCOUNT_INFINITY.
187         (gomp_target_fallback): New function.
188         (gomp_get_target_fn_addr): Likewise.
189         (GOMP_target): Adjust gomp_map_vars caller, use
190         gomp_get_target_fn_addr and gomp_target_fallback.
191         (GOMP_target_41): New function.
192         (gomp_target_data_fallback): New function.
193         (GOMP_target_data): Use it, adjust gomp_map_vars caller.
194         (GOMP_target_data_41): New function.
195         (GOMP_target_update): Adjust gomp_update caller.
196         (GOMP_target_update_41): New function.
197         (gomp_exit_data, GOMP_target_enter_exit_data,
198         gomp_target_task_fn, omp_target_alloc, omp_target_free,
199         omp_target_is_present, omp_target_memcpy,
200         omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
201         omp_target_associate_ptr, omp_target_disassociate_ptr,
202         gomp_load_plugin_for_device): New functions.
203         * task.c: Include gomp-constants.h.  Include taskloop.c
204         twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
205         (gomp_task_handle_depend): New function.
206         (GOMP_task): Use it.  Add priority argument.  Use
207         gomp-constant.h constants instead of hardcoded numbers.
208         Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
209         (gomp_create_target_task): New function.
210         (verify_children_queue, verify_taskgroup_queue,
211         verify_task_queue): New functions.
212         (gomp_task_run_pre): Call verify_*_queue functions.
213         If an upcoming tied task is about to leave the sibling or
214         taskgroup queues in an invalid state, adjust appropriately.
215         Remove taskgroup argument.  Add comments.
216         (gomp_task_run_post_handle_dependers): Add comments.
217         (gomp_task_run_post_remove_parent): Likewise.
218         (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
219         (GOMP_taskwait): Likewise.  Add comments.
220         (gomp_task_maybe_wait_for_dependencies): Fix scheduling
221         problem such that the first non parent_depends_on task does not
222         end up at the end of the children queue.
223         (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
224         GOMP_TASK_UNDEFERRED.
225         (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
226         * taskloop.c: New file.
227         * testsuite/lib/libgomp.exp
228         (check_effective_target_offload_device_nonshared_as): New proc.
229         * testsuite/libgomp.c/affinity-2.c: New test.
230         * testsuite/libgomp.c/doacross-1.c: New test.
231         * testsuite/libgomp.c/doacross-2.c: New test.
232         * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
233         Add map clause to target.
234         * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
235         * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
236         * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
237         * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
238         * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
239         Likewise.
240         * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
241         * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
242         * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
243         * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
244         not defined.  Use those where needed.
245         * testsuite/libgomp.c/for-4.c: New test.
246         * testsuite/libgomp.c/for-5.c: New test.
247         * testsuite/libgomp.c/for-6.c: New test.
248         * testsuite/libgomp.c/linear-1.c: New test.
249         * testsuite/libgomp.c/ordered-4.c: New test.
250         * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
251         only allowed on the loop iterator.
252         * testsuite/libgomp.c/pr66199-3.c: New test.
253         * testsuite/libgomp.c/pr66199-4.c: New test.
254         * testsuite/libgomp.c/reduction-7.c: New test.
255         * testsuite/libgomp.c/reduction-8.c: New test.
256         * testsuite/libgomp.c/reduction-9.c: New test.
257         * testsuite/libgomp.c/reduction-10.c: New test.
258         * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
259         map(tofrom:s).
260         * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
261         * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
262         * testsuite/libgomp.c/target-11.c: New test.
263         * testsuite/libgomp.c/target-12.c: New test.
264         * testsuite/libgomp.c/target-13.c: New test.
265         * testsuite/libgomp.c/target-14.c: New test.
266         * testsuite/libgomp.c/target-15.c: New test.
267         * testsuite/libgomp.c/target-16.c: New test.
268         * testsuite/libgomp.c/target-17.c: New test.
269         * testsuite/libgomp.c/target-18.c: New test.
270         * testsuite/libgomp.c/target-19.c: New test.
271         * testsuite/libgomp.c/target-20.c: New test.
272         * testsuite/libgomp.c/target-21.c: New test.
273         * testsuite/libgomp.c/target-22.c: New test.
274         * testsuite/libgomp.c/target-23.c: New test.
275         * testsuite/libgomp.c/target-24.c: New test.
276         * testsuite/libgomp.c/target-25.c: New test.
277         * testsuite/libgomp.c/target-26.c: New test.
278         * testsuite/libgomp.c/target-27.c: New test.
279         * testsuite/libgomp.c/taskloop-1.c: New test.
280         * testsuite/libgomp.c/taskloop-2.c: New test.
281         * testsuite/libgomp.c/taskloop-3.c: New test.
282         * testsuite/libgomp.c/taskloop-4.c: New test.
283         * testsuite/libgomp.c++/ctor-13.C: New test.
284         * testsuite/libgomp.c++/doacross-1.C: New test.
285         * testsuite/libgomp.c++/examples-4/declare_target-2.C:
286         Replace offload_device with offload_device_nonshared_as.
287         * testsuite/libgomp.c++/for-12.C: New test.
288         * testsuite/libgomp.c++/for-13.C: New test.
289         * testsuite/libgomp.c++/for-14.C: New test.
290         * testsuite/libgomp.c++/linear-1.C: New test.
291         * testsuite/libgomp.c++/member-1.C: New test.
292         * testsuite/libgomp.c++/member-2.C: New test.
293         * testsuite/libgomp.c++/member-3.C: New test.
294         * testsuite/libgomp.c++/member-4.C: New test.
295         * testsuite/libgomp.c++/member-5.C: New test.
296         * testsuite/libgomp.c++/ordered-1.C: New test.
297         * testsuite/libgomp.c++/reduction-5.C: New test.
298         * testsuite/libgomp.c++/reduction-6.C: New test.
299         * testsuite/libgomp.c++/reduction-7.C: New test.
300         * testsuite/libgomp.c++/reduction-8.C: New test.
301         * testsuite/libgomp.c++/reduction-9.C: New test.
302         * testsuite/libgomp.c++/reduction-10.C: New test.
303         * testsuite/libgomp.c++/reference-1.C: New test.
304         * testsuite/libgomp.c++/simd14.C: New test.
305         * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
306         * testsuite/libgomp.c++/target-5.C: New test.
307         * testsuite/libgomp.c++/target-6.C: New test.
308         * testsuite/libgomp.c++/target-7.C: New test.
309         * testsuite/libgomp.c++/target-8.C: New test.
310         * testsuite/libgomp.c++/target-9.C: New test.
311         * testsuite/libgomp.c++/target-10.C: New test.
312         * testsuite/libgomp.c++/target-11.C: New test.
313         * testsuite/libgomp.c++/target-12.C: New test.
314         * testsuite/libgomp.c++/taskloop-1.C: New test.
315         * testsuite/libgomp.c++/taskloop-2.C: New test.
316         * testsuite/libgomp.c++/taskloop-3.C: New test.
317         * testsuite/libgomp.c++/taskloop-4.C: New test.
318         * testsuite/libgomp.c++/taskloop-5.C: New test.
319         * testsuite/libgomp.c++/taskloop-6.C: New test.
320         * testsuite/libgomp.c++/taskloop-7.C: New test.
321         * testsuite/libgomp.c++/taskloop-8.C: New test.
322         * testsuite/libgomp.c++/taskloop-9.C: New test.
323         * testsuite/libgomp.fortran/affinity1.f90: New test.
324         * testsuite/libgomp.fortran/affinity2.f90: New test.
326 2015-10-13  Tom de Vries  <tom@codesourcery.com>
328         PR tree-optimization/67476
329         * testsuite/libgomp.c/autopar-3.c: New test.
330         * testsuite/libgomp.c/autopar-4.c: New test.
331         * testsuite/libgomp.c/autopar-5.c: New test.
332         * testsuite/libgomp.c/autopar-6.c: New test.
333         * testsuite/libgomp.c/autopar-7.c: New test.
334         * testsuite/libgomp.c/autopar-8.c: New test.
336 2015-10-12  James Norris  <jnorris@codesourcery.com>
338         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
339         initializer.
341 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
343         * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
344         using load_gcc_lib.
346 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
348         * oacc-ptx.h: Remove file, moving its content into...
349         * config/nvptx/fortran.c: ... here...
350         * config/nvptx/oacc-init.c: ..., here...
351         * config/nvptx/oacc-parallel.c: ..., and here.
352         * config/nvptx/openacc.f90: New file.
353         * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
354         (link_ptx): Don't link in predefined bits of PTX code.
356 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
357             Bernd Schmidt <bernds@codesourcery.com>
359         * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
360         (struct targ_ptx_obj): New.
361         (nvptx_tdata): Move earlier, change data format.
362         (link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
363         objects.
364         (GOMP_OFFLOAD_load_image): Adjust.
366 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
368         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
369         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
370         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
371         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
372         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
373         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
374         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
375         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
376         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
377         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
378         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
379         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
380         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
381         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
382         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
383         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
384         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
385         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
386         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
387         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
388         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
389         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
390         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
391         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
392         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
393         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
394         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
395         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
396         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
397         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
398         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
399         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
400         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
401         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
402         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
403         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
404         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
405         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
406         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
407         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
408         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
409         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
410         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
411         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
412         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
413         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
414         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
415         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
416         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
417         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
418         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
419         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
420         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
421         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
422         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
423         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
424         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
425         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
426         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
427         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
428         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
429         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
430         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
432 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
434         * oacc-init.c (acc_on_device): Force optimization level.
436 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
438         * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
439         (cuda_errlist): Delete.
440         (cuda_error): Reimplement.
442 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
444         * libgomp.h (acc_dispatch_t): Replace separate geometry args with
445         array.
446         * libgomp.map (GOACC_parallel_keyed): New.
447         * oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
448         all callers.
449         (GOACC_parallel_keyed): New interface.  Lose geometry arguments
450         and take keyed varargs list.  Adjust call to exec_func.
451         (GOACC_parallel): Force host fallback.
452         * libgomp_g.h (GOACC_parallel): Remove.
453         (GOACC_parallel_keyed): Declare.
454         * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
455         (stuct targ_gn_descriptor): Replace name field with launch field.
456         (nvptx_exec): Lose separate geometry args, take array.  Process
457         dynamic dimensions and adjust.
458         (struct nvptx_tdata): Replace fn_names field with fn_descs.
459         (GOMP_OFFLOAD_load_image): Adjust for change in function table
460         data.
461         (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
462         passing.
463         * oacc-host.c (host_openacc_exec): Adjust for change in dimension
464         passing.
466 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
468         PR libgomp/67141
469         * oacc-int.h (goacc_host_init): Add declaration.
470         * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
471         * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
473 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
474             Sebastian Pop  <s.pop@samsung.com>
476         * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
477         match o/p.
478         * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
479         * testsuite/libgomp.graphite/force-parallel-4.c: Same.
480         * testsuite/libgomp.graphite/force-parallel-5.c: Same.
481         * testsuite/libgomp.graphite/force-parallel-7.c: Same.
482         * testsuite/libgomp.graphite/force-parallel-8.c: Same.
484 2015-09-03  Jakub Jelinek  <jakub@redhat.com>
486         * configure.tgt: Add missing ;; in between nvptx and rtems
487         snippets.
489 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
491         * config/posix/pool.h (gomp_adjust_thread_attr): New.
492         * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
493         (gomp_thread_pool_reservoir): Add priority member.
494         * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
495         priority.
496         (parse_thread_pools): Likewise.
497         * team.c (gomp_team_start): Call configuration provided
498         gomp_adjust_thread_attr(). Destroy thread attributes if
499         necessary.
500         * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
502 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
504         * config/posix/pool.h: New.
505         * config/rtems/pool.h: Likewise.
506         * config/rtems/proc.c: Likewise.
507         * libgomp.h (gomp_thread_destructor): Declare.
508         * team.c: Include configuration provided "pool.h".
509         (gomp_get_thread_pool): Define in configuration.
510         (gomp_team_end): Call configuration defined
511         gomp_release_thread_pool().
513 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
515         * config/rtems/bar.c: New.
516         * config/rtems/bar.h: Likewise.
517         * config/rtems/mutex.c: Likewise.
518         * config/rtems/mutex.h: Likewise.
519         * config/rtems/sem.c: Likewise.
520         * config/rtems/sem.h: Likewise.
521         * configure.ac (*-*-rtems*): Check that Newlib provides a proper
522         <sys/lock.h> header file.
523         * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
524         supported by Newlib.
525         * configure: Regenerate.
527 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
529         * team.c (gomp_new_thread_pool): Delete and move content to ...
530         (gomp_get_thread_pool): ... new function.  Allocate and
531         initialize thread pool on demand.
532         (get_last_team): Use gomp_get_thread_pool().
533         (gomp_team_start): Delete thread pool initialization.
535 2015-09-03  Tom de Vries  <tom@codesourcery.com>
537         PR tree-optimization/65637
538         * testsuite/libgomp.c/autopar-2.c: New test.
540 2015-08-29  Tom de Vries  <tom@codesourcery.com>
542         PR tree-optimization/46193
543         * testsuite/libgomp.c/pr46193.c: New test.
545 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
547         libgomp/
548         * libgomp.map: Add 4.0.2 version.
549         * target.c (offload_image_descr): Add version field.
550         (gomp_load_image_to_device): Add version argument.  Adjust plugin
551         call.  Improve load mismatch diagnostic.
552         (gomp_unload_image_from_device): Add version argument.  Adjust plugin
553         call.
554         (GOMP_offload_regster): Make stub function, move bulk to ...
555         (GOMP_offload_register_ver): ... here.  Process version argument.
556         (GOMP_offload_unregister): Make stub function, move bulk to ...
557         (GOMP_offload_unregister_ver): ... here.  Process version argument.
558         (gomp_init_device): Process version field.
559         (gomp_unload_device): Process version field.
560         (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
561         macros.  Check plugin version.
562         * libgomp.h (gomp_device_descr): Add version function field.  Adjust
563         loader and unloader types.
564         * oacc-host.c: Include gomp-constants.h.
565         (host_version): New.
566         (host_load_image, host_unload_image): Adjust.
567         (host_dispatch): Add host_version.
568         * plugin/plugin-nvptx.c: Include gomp-constants.h.
569         (GOMP_OFFLOAD_version): New.
570         (GOMP_OFFLOAD_load_image): Add version arg and check it.
571         (GOMP_OFFLOAD_unload_image): Likewise.
572         * plugin/plugin-host.c: Include gomp-constants.h.
573         (GOMP_OFFLOAD_version): New.
574         (GOMP_OFFLOAD_load_image): Add version arg.
575         (GOMP_OFFLOAD_unload_image): Likewise.
577 2015-08-24  Tom de Vries  <tom@codesourcery.com>
579         PR tree-optimization/65468
580         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
582 2015-08-24  Tom de Vries  <tom@codesourcery.com>
584         PR tree-optimization/65468
585         * testsuite/libgomp.c/static-chunk-size-one.c: New test.
587 2015-08-24  Joost VandeVondele  <vondele@gnu.gcc.org>
589         PR libgomp/66761
590         PR libgomp/67303
591         * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
592         (gomp_iter_guided_next): Idem.
593         * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
594         (gomp_iter_ull_guided_next): Idem.
595         * config/linux/wait.h (do_spin): Idem.
597 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
599         * libgomp-plugin.h (enum offload_target_type): Remove
600         OFFLOAD_TARGET_TYPE_HOST_NONSHM.
601         * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
602         * openacc.h (enum acc_device_t): Likewise.
603         * openacc_lib.h: Likewise.
604         * oacc-init.c (name_of_acc_device_t): Don't handle it.
605         (acc_on_device): Just use __builtin_acc_on_device.
606         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
607         of acc_on_device builtin.
608         * plugin/plugin-host.h: Remove file.
609         * plugin/plugin-host.c: Likewise, but salvage some content into...
610         * oacc-host.c: ... this file.
611         * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
612         * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
613         * Makefile.in: Regenerate.
614         * configure: Likewise.
615         * testsuite/lib/libgomp.exp
616         (check_effective_target_openacc_host_nonshm_selected): Remove.
617         * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
618         ACC_DEVICE_TYPE=host_nonshm.
619         * testsuite/libgomp.oacc-c/c.exp: Likewise.
620         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
621         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
622         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
623         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
624         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
626 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
627             Jakub Jelinek  <jakub@redhat.com>
629         * config/nvptx/affinity.c: New file.
630         * config/nvptx/alloc.c: Likewise.
631         * config/nvptx/bar.c: Likewise.
632         * config/nvptx/barrier.c: Likewise.
633         * config/nvptx/critical.c: Likewise.
634         * config/nvptx/env.c: Likewise.
635         * config/nvptx/error.c: Likewise.
636         * config/nvptx/fortran.c: Likewise.
637         * config/nvptx/iter.c: Likewise.
638         * config/nvptx/iter_ull.c: Likewise.
639         * config/nvptx/libgomp-plugin.c: Likewise.
640         * config/nvptx/lock.c: Likewise.
641         * config/nvptx/loop.c: Likewise.
642         * config/nvptx/loop_ull.c: Likewise.
643         * config/nvptx/mutex.c: Likewise.
644         * config/nvptx/oacc-async.c: Likewise.
645         * config/nvptx/oacc-cuda.c: Likewise.
646         * config/nvptx/oacc-host.c: Likewise.
647         * config/nvptx/oacc-init.c: Likewise.
648         * config/nvptx/oacc-mem.c: Likewise.
649         * config/nvptx/oacc-parallel.c: Likewise.
650         * config/nvptx/oacc-plugin.c: Likewise.
651         * config/nvptx/omp-lock.h: Likewise.
652         * config/nvptx/ordered.c: Likewise.
653         * config/nvptx/parallel.c: Likewise.
654         * config/nvptx/proc.c: Likewise.
655         * config/nvptx/ptrlock.c: Likewise.
656         * config/nvptx/sections.c: Likewise.
657         * config/nvptx/sem.c: Likewise.
658         * config/nvptx/single.c: Likewise.
659         * config/nvptx/splay-tree.c: Likewise.
660         * config/nvptx/target.c: Likewise.
661         * config/nvptx/task.c: Likewise.
662         * config/nvptx/team.c: Likewise.
663         * config/nvptx/time.c: Likewise.
664         * config/nvptx/work.c: Likewise.
665         * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
666         * configure: Regenerate.
667         * configure.tgt (config_path): Set to "nvptx" for target
668         nvptx*-*-*.
670 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
672         * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
674 2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>
676         * plugin/plugin-nvptx.c: Don't include dlfcn.h.
677         (cuda_errlist): Constify.
678         (errmsg):  Move into ...
679         (cuda_error): ... here.  Make smaller.
680         (_XSTR, _STR): Delete.
681         (cuda_synames): Delete.
682         (verify_device_library): Delete.
683         (nvptx_init): Don't call it.
685 2015-07-28  Tom de Vries  <tom@codesourcery.com>
687         * testsuite/libgomp.c/uns-outer-4.c: New test.
689 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
691         * testsuite/libgomp.c/pr66714.c: New test.
693 2015-07-22  Maxim Blumenthal  <maxim.blumenthal@intel.com>
695         PR libgomp/66950
696         * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
697         (fib_ref): New function.
698         (fib): Correct corner cases in the recursion.
699         (main): Replace the non-simd loop with fib_ref call.
700         * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
701         subroutine.
702         (fibonacci): Lower the parameter N to 30.  Correct accordingly check
703         for the last array element value.  Replace the non-simd loop with
704         fib_ref call.  Remove redundant b_ref array.  Remove the comparison
705         of the last array element with according Fibonacci sequence element.
706         (fib): Correct corner cases in the recursion.
708 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
710         * target.c (gomp_offload_image_to_device): Rename to ...
711         (gomp_load_image_to_device): ... here.
712         (GOMP_offload_register): Adjust call.
713         (gomp_init_device): Likewise.
714         (gomp_unload_image_from_device): New.  Broken out of ...
715         (GOMP_offload_unregister): ... here.  Call it.
716         (gomp_unload_device): New.
717         * libgomp.h (gomp_unload_device): Declare.
718         * oacc-init.c (acc_shutdown_1): Unload from device before deleting
719         mem maps.
721 2015-07-20  Nathan Sidwell  <nathan@codesourcery.com>
723         * oacc-parallel.c (GOACC_parallel): Move variadic handling into
724         wait=-specific if.
725         (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
726         !=0 condition.
727         (goacc_waits): Move !num_waits handling to ...
728         (GOACC_wait): ... here, the only caller that might have zero waits.
730         * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
731         (struct ptx_image_data): Move earlier, add fns field.
732         (struct ptx_device): Add images and image_lock fields.
733         (ptx_images, ptx_image_lock): Delete.
734         (nvptx_open_device): Initialize images and image_lock fields.
735         (nvptx_close_device): Destroy image_lock.
736         (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
737         (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
738         fields.
740 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
742         * target.c (GOMP_offload_register): Use int for device type arg.
743         (GOMP_offload_unregister): Likewise.
745         * target.c (struct_offload_image_descr): Constify host_table.
746         (gomp_offload_image_to_device): Likewise.
747         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
749         * libgomp.h (gomp_device_descr): Constify target data arguments.
750         * target.c (struct offload_image_descr): Constify target_data.
751         (gomp_offload_image_to_device): Likewise.
752         (GOMP_offload_register): Likewise.
753         (GOMP_offload_unrefister): Likewise.
754         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
755         GOMP_OFFLOAD_unload_image): Constify target data.
756         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
757         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
759 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
761         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
762         Workaround driver library const error.
763         (struct nvptx_tdata, nvptx_tdata_t): New.
764         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
765         type.
767 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
769         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
770         of EPS parameter from integer to real.
771         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
772         type of EPS parameter from integer to real.
774 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
776         * team.c (get_last_team): New.
777         (gomp_new_team): Recycle last non-nested team if possible.
778         (gomp_team_end): Move team work share list free lock destruction
779         to ...
780         (free_team): ... here.
782 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
784         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
785         and ref from int to double.  Replaced their comparison with
786         an inequality of their difference and EPS.
787         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
788         comparison of pri and a reference number with an inequality of their
789         difference and EPS.
790         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
791         the comparison of sum and sum_ref with an inequality of their
792         difference and EPS.
793         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
794         the comparison of pri and a reference number with an inequality of
795         their difference and EPS.
797 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
799         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
800         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
801         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
802         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
803         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
804         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
805         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
806         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
807         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
808         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
809         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
810         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
811         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
812         variables.
813         (vec_mult): Likewise.  Add #pragma omp taskwait.
814         (main): Adjust caller.
815         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
816         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
817         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
818         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
819         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
820         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
821         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
822         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
823         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
824         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
825         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
826         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
827         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
828         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
829         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
830         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
831         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
832         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
833         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
834         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
835         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
836         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
837         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
838         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
839         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
840         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
841         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
842         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
843         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
844         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
845         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
846         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
847         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
848         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
849         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
850         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
851         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
852         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
853         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
854         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
855         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
856         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
857         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
858         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
859         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
860         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
861         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
862         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
863         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
864         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
865         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
866         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
867         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
868         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
869         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
870         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
871         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
872         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
873         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
874         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
875         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
876         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
877         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
878         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
879         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
880         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
881         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
882         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
883         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
884         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
885         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
886         (vec_mult): Add !$omp taskwait.
887         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
888         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
889         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
890         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
891         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
892         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
893         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
894         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
895         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
896         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
897         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
898         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
899         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
900         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
901         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
902         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
903         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
904         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
905         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
906         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
907         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
908         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
909         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
910         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
911         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
912         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
913         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
914         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
915         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
916         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
917         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
918         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
919         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
920         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
921         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
922         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
923         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
924         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
925         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
926         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
927         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
928         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
929         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
930         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
931         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
932         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
933         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
934         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
935         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
936         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
937         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
938         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
939         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
940         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
941         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
942         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
943         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
944         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
945         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
946         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
947         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
948         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
949         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
950         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
951         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
952         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
953         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
955 2015-07-10  Tom de Vries  <tom@codesourcery.com>
957         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
958         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
960 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
962         PR libgomp/65099
963         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
964         in a 64-bit configuration.
965         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
966         offloading testing if no such device is available.
967         * testsuite/libgomp.oacc-c/c.exp: Likewise.
968         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
970 2015-07-08  Tom de Vries  <tom@codesourcery.com>
972         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
973         second call to f.
974         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
976 2015-07-07  Tom de Vries  <tom@codesourcery.com>
978         PR tree-optimization/66642
979         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
980         iteration count case.
981         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
982         function, factor out of ...
983         (main): ... here.  Test low iteration count case.
985 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
987         * libgomp.h (gomp_thread_pool): Comment last_team field.
989 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
991         * testsuite/libgomp.c++/pr66702-1.C: Require
992         vect_simd_clones effective target.
993         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
995 2015-06-30  Tom de Vries  <tom@codesourcery.com>
997         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
998         already set.  Use DEFAULT_CFLAGS in dg-runtest.
999         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
1000         "-O2".
1002 2015-06-30  Tom de Vries  <tom@codesourcery.com>
1004         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
1005         already set.  Use DEFAULT_CFLAGS in dg-runtest.
1006         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
1007         * testsuite/libgomp.c++/pr64824.C: Same.
1008         * testsuite/libgomp.c++/pr64868.C: Same.
1009         * testsuite/libgomp.c++/pr66199-1.C: Same.
1010         * testsuite/libgomp.c++/pr66199-2.C: Same.
1011         * testsuite/libgomp.c++/target-2.C: Same.
1012         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
1013         -std=<standard> option.
1014         * testsuite/libgomp.c++/udr-11.C: Same.
1015         * testsuite/libgomp.c++/udr-12.C: Same.
1016         * testsuite/libgomp.c++/udr-13.C: Same.
1017         * testsuite/libgomp.c++/udr-14.C: Same.
1018         * testsuite/libgomp.c++/udr-15.C: Same.
1019         * testsuite/libgomp.c++/udr-16.C: Same.
1020         * testsuite/libgomp.c++/udr-17.C: Same.
1021         * testsuite/libgomp.c++/udr-18.C: Same.
1022         * testsuite/libgomp.c++/udr-19.C: Same.
1023         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
1024         * testsuite/libgomp.c++/simd-1.C: Same.
1025         * testsuite/libgomp.c++/simd-2.C: Same.
1026         * testsuite/libgomp.c++/simd-3.C: Same.
1027         * testsuite/libgomp.c++/simd-4.C: Same.
1028         * testsuite/libgomp.c++/simd-5.C: Same.
1029         * testsuite/libgomp.c++/simd-6.C: Same.
1030         * testsuite/libgomp.c++/simd-7.C: Same.
1031         * testsuite/libgomp.c++/simd-8.C: Same.
1032         * testsuite/libgomp.c++/simd-9.C: Same.
1033         * testsuite/libgomp.c++/simd10.C: Same.
1034         * testsuite/libgomp.c++/simd11.C: Same.
1035         * testsuite/libgomp.c++/simd12.C: Same.
1036         * testsuite/libgomp.c++/simd13.C: Same.
1038 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
1040         PR middle-end/66702
1041         * testsuite/libgomp.c++/pr66702-1.C: New test.
1042         * testsuite/libgomp.c++/pr66702-2.C: New test.
1044 2015-06-30  Tom de Vries  <tom@codesourcery.com>
1046         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
1047         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
1048         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
1049         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
1051 2015-06-30  Tom de Vries  <tom@codesourcery.com>
1053         PR tree-optimization/66652
1054         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
1055         using restrict pointers.
1056         (main): Add arguments to calls to f.
1057         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1059 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
1061         * configure.ac: Fix check for header <sys/sysctl.h>.
1062         * configure: Regenerate.
1063         * config.h.in: Likewise.
1065 2015-06-23  Tom de Vries  <tom@codesourcery.com>
1067         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
1068         abort.
1069         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
1071 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
1073         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
1074         acc_device_nvidia.
1076         PR libgomp/66518
1077         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
1078         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1080 2015-06-15  Tom de Vries  <tom@codesourcery.com>
1082         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
1083         dg-additional-options for any remaining options.
1084         * testsuite/libgomp.c/atomic-2.c: Same.
1085         * testsuite/libgomp.c/atomic-4.c: Same.
1086         * testsuite/libgomp.c/atomic-5.c: Same.
1087         * testsuite/libgomp.c/atomic-6.c: Same.
1088         * testsuite/libgomp.c/autopar-1.c: Same.
1089         * testsuite/libgomp.c/copyin-1.c: Same.
1090         * testsuite/libgomp.c/copyin-2.c: Same.
1091         * testsuite/libgomp.c/copyin-3.c: Same.
1092         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
1093         * testsuite/libgomp.c/nestedfn-5.c: Same.
1094         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
1095         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
1096         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
1097         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1098         * testsuite/libgomp.c/pr32362-1.c: Same.
1099         * testsuite/libgomp.c/pr32362-2.c: Same.
1100         * testsuite/libgomp.c/pr32362-3.c: Same.
1101         * testsuite/libgomp.c/pr39591-1.c: Same.
1102         * testsuite/libgomp.c/pr39591-2.c: Same.
1103         * testsuite/libgomp.c/pr39591-3.c: Same.
1104         * testsuite/libgomp.c/pr58392.c: Same.
1105         * testsuite/libgomp.c/pr58756.c: Same.
1106         * testsuite/libgomp.c/simd-1.c: Same.
1107         * testsuite/libgomp.c/simd-10.c: Same.
1108         * testsuite/libgomp.c/simd-11.c: Same.
1109         * testsuite/libgomp.c/simd-12.c: Same.
1110         * testsuite/libgomp.c/simd-13.c: Same.
1111         * testsuite/libgomp.c/simd-14.c: Same.
1112         * testsuite/libgomp.c/simd-15.c: Same.
1113         * testsuite/libgomp.c/simd-2.c: Same.
1114         * testsuite/libgomp.c/simd-3.c: Same.
1115         * testsuite/libgomp.c/simd-4.c: Same.
1116         * testsuite/libgomp.c/simd-5.c: Same.
1117         * testsuite/libgomp.c/simd-6.c: Same.
1118         * testsuite/libgomp.c/simd-7.c: Same.
1119         * testsuite/libgomp.c/simd-8.c: Same.
1120         * testsuite/libgomp.c/simd-9.c: Same.
1122 2015-06-15  Tom de Vries  <tom@codesourcery.com>
1124         * testsuite/libgomp.c/pr35625.c: Fix typo.
1126 2015-06-15  Tom de Vries  <tom@codesourcery.com>
1128         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
1129         in dg-options.
1130         * testsuite/libgomp.c/atomic-3.c: Same.
1131         * testsuite/libgomp.c/debug-1.c: Same.
1132         * testsuite/libgomp.c/nqueens-1.c: Same.
1133         * testsuite/libgomp.c/pr26171.c: Same.
1134         * testsuite/libgomp.c/pr48591.c: Same.
1135         * testsuite/libgomp.c/pr64824.c: Same.
1136         * testsuite/libgomp.c/pr64868.c: Same.
1137         * testsuite/libgomp.c/pr66133.c: Same.
1138         * testsuite/libgomp.c/pr66199-1.c: Same.
1139         * testsuite/libgomp.c/pr66199-2.c: Same.
1140         * testsuite/libgomp.c/target-8.c: Same.
1142 2015-06-15  Tom de Vries  <tom@codesourcery.com>
1144         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
1145         -std={gnu99,c99}.
1146         * testsuite/libgomp.c/for-1.c: Same.
1147         * testsuite/libgomp.c/for-2.c: Same.
1148         * testsuite/libgomp.c/for-3.c: Same.
1149         * testsuite/libgomp.c/pr35625.c: Same.
1150         * testsuite/libgomp.c/pr39154.c: Same.
1151         * testsuite/libgomp.c/simd-16.c: Same.
1152         * testsuite/libgomp.c/simd-17.c: Same.
1154 2015-06-13  Tom de Vries  <tom@codesourcery.com>
1156         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
1158 2015-06-13  Tom de Vries  <tom@codesourcery.com>
1160         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
1161         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
1162         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
1163         (N): Define.
1164         (main): Use N instead of hardcoded constants.
1166 2015-06-05  Tom de Vries  <tom@codesourcery.com>
1168         merge from gomp4 branch:
1169         2015-05-28  Tom de Vries  <tom@codesourcery.com>
1171         PR tree-optimization/65443
1172         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
1173         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
1174         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
1176 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1178         * testsuite/libgomp.graphite/bounds.c: Adjust for
1179         cleanup-tree-dump removal.
1180         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
1181         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1182         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1183         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
1184         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1185         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1186         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1187         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1188         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1189         * testsuite/libgomp.graphite/pr41118.c: Likewise.
1191 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
1193         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
1194         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
1195         (futex_wake) [!__x86_64__]: Ditto.
1197 2015-05-28  Julian Brown  <julian@codesourcery.com>
1199         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
1200         function comment. Only call gomp_fatal if new argument is true.
1201         (acc_dev_num_out_of_range): New function.
1202         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
1203         acc_dev_num_out_of_range as appropriate.
1204         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
1205         (acc_get_device_num, acc_set_device_num): Update calls to
1206         resolve_device.
1207         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
1208         output.
1210 2015-05-28  Julian Brown  <julian@codesourcery.com>
1212         PR libgomp/65742
1213         * oacc-init.c (plugin/plugin-host.h): Include.
1214         (acc_on_device): Check whether we're in an offloaded region for
1215         host_nonshm
1216         plugin. Don't use __builtin_acc_on_device.
1217         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
1218         nonshm_exec flag in thread-local data.
1219         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
1220         data for host_nonshm plugin.
1221         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
1222         for host_nonshm plugin.
1223         * plugin/plugin-host.h: New.
1225 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
1227         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
1229 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
1231         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
1232         Declare as int.
1233         (FUTEX_PRIVATE_FLAG): Remove L suffix.
1234         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
1235         Declare as int.
1237 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
1239         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
1241 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
1243         * target.c (gomp_map_pointer): New function abstracting out
1244         GOMP_MAP_POINTER handling.
1245         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
1246         gomp_map_pointer().
1248 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1250         PR middle-end/66199
1251         * testsuite/libgomp.c/pr66199-1.c: New test.
1252         * testsuite/libgomp.c/pr66199-2.c: New test.
1253         * testsuite/libgomp.c++/pr66199-1.C: New test.
1254         * testsuite/libgomp.c++/pr66199-2.C: New test.
1255         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
1256         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
1258 2015-05-19  Julian Brown  <julian@codesourcery.com>
1260         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
1261         on cuInit failure.
1263 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
1265         PR middle-end/66133
1266         * testsuite/libgomp.c/pr66133.c: New test.
1268 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
1270         * Makefile.in: Regenerated with automake-1.11.6.
1271         * aclocal.m4: Likewise.
1272         * config.h.in: Likewise.
1273         * configure: Likewise.
1274         * testsuite/Makefile.in: Likewise.
1276 2015-05-08  Jason Merrill  <jason@redhat.com>
1278         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
1279         _Complex.
1281         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
1283 2015-05-06  Julian Brown  <julian@codesourcery.com>
1285         * oacc-init.c (acc_device_lock): Add explanatory comment.
1286         (resolve_device): Add comment about locking requirement.
1287         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
1288         gomp_init_device and gomp_fini_device calls.
1289         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
1290         (acc_get_device_num, acc_set_device_num): Add locking around
1291         resolve_device and gomp_init_device calls.
1293 2015-05-06  Julian Brown  <julian@codesourcery.com>
1295         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
1296         goacc_thread_lock on error paths.
1297         * oacc-mem.c (lookup_host): Remove locking from function. Note
1298         locking requirement for caller in function comment.
1299         (lookup_dev): Likewise.
1300         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
1301         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
1302         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
1303         Add locking.
1305 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
1307         PR testsuite/65205
1308         PR libgomp/65993
1309         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
1310         don't expect "0x" prefix for "%p" format specifier, don't expect
1311         "(nil)" for NULL pointer.
1312         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1313         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1314         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1315         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1316         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1317         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1318         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1319         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1320         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1321         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1322         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1323         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1324         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1325         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1326         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1327         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1328         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1329         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1330         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1331         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1332         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1333         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1334         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1335         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1336         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1337         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1338         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1339         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1340         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
1341         accurately specify what we're looking for.
1342         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1343         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1344         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
1345         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
1346         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
1348 2015-04-30  James Norris  <jnorris@codesourcery.com>
1350         PR testsuite/65205
1351         * testsuite/lib/libgomp.exp
1352         (check_effective_target_openacc_host_selected)
1353         (check_effective_target_openacc_host_nonshm_selected): New
1354         procedures.
1355         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
1356         dg-shouldfail.
1357         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
1358         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
1359         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1360         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1361         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1362         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
1363         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1364         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1365         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1366         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1367         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1368         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1369         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1370         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1371         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1372         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
1373         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1374         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1375         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1376         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1377         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1378         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
1379         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1380         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1381         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1382         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1383         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1384         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1385         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1386         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1387         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1388         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1389         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1390         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
1391         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
1392         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
1393         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
1394         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
1395         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
1396         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
1397         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
1398         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
1399         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
1401 2015-04-08  Julian Brown  <julian@codesourcery.com>
1403         * libgomp.h (target_mem_desc: Remove mem_map field.
1404         (acc_dispatch_t): Remove open_device_func, close_device_func,
1405         get_device_num_func, set_device_num_func, target_data members.
1406         Change create_thread_data_func argument to device number instead of
1407         generic pointer.
1408         * oacc-async.c (assert.h): Include.
1409         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
1410         (acc_wait_all, acc_wait_all_async): Use current host thread's
1411         active device, not base_dev.
1412         * oacc-cuda.c (acc_get_current_cuda_device)
1413         (acc_get_current_cuda_context, acc_get_cuda_stream)
1414         (acc_set_cuda_stream): Likewise.
1415         * oacc-host.c (host_dispatch): Don't set open_device_func,
1416         close_device_func, get_device_num_func or set_device_num_func.
1417         * oacc-init.c (base_dev, init_key): Remove.
1418         (cached_base_dev): New.
1419         (name_of_acc_device_t): New.
1420         (acc_init_1): Initialise default-numbered device, not zeroth.
1421         (acc_shutdown_1): Close all devices of a given type.
1422         (goacc_destroy_thread): Don't use base_dev.
1423         (lazy_open, lazy_init, lazy_init_and_open): Remove.
1424         (goacc_attach_host_thread_to_device): New.
1425         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
1426         (acc_get_num_devices): Don't use base_dev.
1427         (acc_set_device_type): Reimplement.
1428         (acc_get_device_type): Don't use base_dev.
1429         (acc_get_device_num): Tweak logic.
1430         (acc_set_device_num): Likewise.
1431         (acc_on_device): Use acc_get_device_type.
1432         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
1433         (goacc_lazy_initialize): Reimplement with acc_init and
1434         goacc_attach_host_thread_to_device.
1435         * oacc-int.h (goacc_thread): Add base_dev field.
1436         (base_dev): Remove extern declaration.
1437         (goacc_attach_host_thread_to_device): Add prototype.
1438         * oacc-mem.c (acc_malloc): Use current thread's device instead of
1439         base_dev.
1440         (acc_free): Likewise.
1441         (acc_memcpy_to_device): Likewise.
1442         (acc_memcpy_from_device): Likewise.
1443         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
1444         goacc_lazy_initialize (throughout).
1445         (GOACC_parallel): Use tgt_offset to locate target functions.
1446         * target.c (gomp_map_vars): Don't set tgt->mem_map.
1447         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
1448         (gomp_load_plugin_for_device): Remove open_device, close_device,
1449         get_device_num, set_device_num openacc hook initialisation. Don't set
1450         openacc.target_data.
1451         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
1452         (GOMP_OFFLOAD_openacc_close_device)
1453         (GOMP_OFFLOAD_openacc_get_device_num)
1454         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
1455         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
1456         to int.
1457         * plugin/plugin-nvptx.c (ptx_inited): Remove.
1458         (instantiated_devices, ptx_dev_lock): New.
1459         (struct ptx_image_data): New.
1460         (ptx_devices, ptx_images, ptx_image_lock): New.
1461         (fini_streams_for_device): Reorder cuStreamDestroy call.
1462         (nvptx_get_num_devices): Remove forward declaration.
1463         (nvptx_init): Change return type to bool.
1464         (nvptx_fini): Remove.
1465         (nvptx_attach_host_thread_to_device): New.
1466         (nvptx_open_device): Return struct ptx_device* instead of void*.
1467         (nvptx_close_device): Change argument type to struct ptx_device*,
1468         return type to void.
1469         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
1470         (kernel_target_data, kernel_host_table): Remove static globals.
1471         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
1472         (GOMP_OFFLOAD_init_device): Reimplement.
1473         (GOMP_OFFLOAD_fini_device): Likewise.
1474         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
1475         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
1476         (GOMP_OFFLOAD_host2dev): Use ORD argument.
1477         (GOMP_OFFLOAD_openacc_open_device)
1478         (GOMP_OFFLOAD_openacc_close_device)
1479         (GOMP_OFFLOAD_openacc_set_device_num)
1480         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
1481         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
1482         (device number).
1484         testsuite/
1485         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
1487 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
1489         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
1490         * libgomp.h (struct gomp_memory_mapping): Remove.
1491         (struct target_mem_desc): Change type of mem_map from
1492         gomp_memory_mapping * to splay_tree_s *.
1493         (struct gomp_device_descr): Remove register_image_func, get_table_func.
1494         Add load_image_func, unload_image_func.
1495         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
1496         Remove offload_regions_registered.
1497         (gomp_init_tables): Remove.
1498         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
1499         to splay_tree_s *.
1500         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
1501         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
1502         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
1503         offload_regions_registered.
1504         Initialize load_image_func, unload_image_func, mem_map.root.
1505         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
1506         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
1507         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
1508         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
1509         gomp_memory_mapping *.  Use dev's lock and splay_tree.
1510         (lookup_dev): Use dev's lock.
1511         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
1512         (acc_is_present): Likewise.
1513         (acc_map_data): Likewise.
1514         (acc_unmap_data): Likewise.  Use dev's lock.
1515         (present_create_copy): Likewise.
1516         (delete_copyout): Pass dev to lookup_host instead of mem_map.
1517         (update_dev_host): Likewise.
1518         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
1519         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
1520         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
1521         (GOMP_OFFLOAD_get_table): Remove
1522         (GOMP_OFFLOAD_load_image): New function.
1523         (GOMP_OFFLOAD_unload_image): New function.
1524         * target.c (register_lock): New mutex for offload image registration.
1525         (num_devices): Do not guard with PLUGIN_SUPPORT.
1526         (gomp_realloc_unlock): New static function.
1527         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
1528         before gomp_fatal.
1529         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
1530         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
1531         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
1532         mem_map's.
1533         (gomp_unmap_vars): Likewise.
1534         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
1535         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
1536         (gomp_offload_image_to_device): New static function.
1537         (GOMP_offload_register): Add mutex lock.
1538         Call gomp_offload_image_to_device for all initialized devices.
1539         Replace gomp_realloc with gomp_realloc_unlock.
1540         (GOMP_offload_unregister): New function.
1541         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
1542         get_table_func from the plugin with calls to init_device_func and
1543         gomp_offload_image_to_device.
1544         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
1545         to splay_tree_s *.
1546         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
1547         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
1548         (GOMP_target_data): Do not call gomp_init_tables.
1549         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
1550         (gomp_load_plugin_for_device): Replace register_image and get_table
1551         with load_image and unload_image in DLSYM ().
1552         (gomp_register_images_for_device): Remove function.
1553         (gomp_target_init): Do not initialize current_device.mem_map.*,
1554         current_device.offload_regions_registered.
1555         Remove call to gomp_register_images_for_device.
1556         Do not free offload_images and num_offload_images.
1558 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
1560         PR fortran/65597
1561         * testsuite/libgomp.fortran/pr65597.f90: New test.
1563 2015-03-27  Tom de Vries  <tom@codesourcery.com>
1565         PR testsuite/65594
1566         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
1567         (init, check): New function.
1568         (foo): Change return type to void.
1569         (main): Call init and check.
1571 2015-03-27  Tom de Vries  <tom@codesourcery.com>
1573         PR testsuite/65594
1574         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
1575         (foo): Use M for non-inner loops to scale down test-case.
1577 2015-03-25  Kai Tietz  <ktietz@redhat.com>
1579         PR libgomp/64972
1580         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
1581         (GOACC_data_start): Likewise.
1582         * target.c (gomp_map_vars): Likewise.
1584 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
1586         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
1587         hppa*-*-hpux*.
1589 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
1591         * testsuite/libgomp.c/target-10.c: New test.
1592         * testsuite/libgomp.c++/target-4.C: New test.
1594 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
1596         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
1597         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
1599 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1601         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
1602         * configure.ac (*-*-rtems*): Assume Pthread is supported.
1603         (pthread.h): Check for this header file.
1604         * configure: Regenerate.
1606 2015-02-25  Tom de Vries  <tom@codesourcery.com>
1608         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
1609         (check_reduction_op, check_reduction_macro, max, min):
1610         Declare.
1611         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
1612         function.
1613         (main): Use new functions.
1615 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
1617         * target.c (gomp_load_plugin_for_device): Use const char * instead of
1618         char * for variables holding dlerror return values.
1619         (DLSYM_OPT): Ditto.
1621 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
1623         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
1625 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
1626             Cesar Philippidis  <cesar@codesourcery.com>
1628         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
1629         GOACC_ctaid, and GOACC_nctaid routines.
1631 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
1633         PR c/64824
1634         * testsuite/libgomp.c/atomic-18.c: New test.
1635         * testsuite/libgomp.c++/atomic-16.C: New test.
1637 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1639         PR c/64824
1640         PR c/64868
1641         * testsuite/libgomp.c/pr64824.c: New test.
1642         * testsuite/libgomp.c/pr64868.c: New test.
1643         * testsuite/libgomp.c++/pr64824.C: New test.
1644         * testsuite/libgomp.c++/pr64868.C: New test.
1646 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
1648         PR libgomp/64635
1649         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
1650         Link with -lpthread.
1651         * config/aix/plugin-suffix.h: Delete.
1653 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
1655         PR libgomp/64635
1656         * configure.tgt (*-*-aix*): Use config_path "aix posix".
1657         (*-*-darwin*): Use config_path "bsd darwin posix".
1658         (*-*-hpux*): Use config_path "hpux posix".
1659         * target.c: Add include of plugin-suffix.h and use
1660         SONAME_SUFFIX macro.
1661         * config/aix/plugin-suffix.h: New file.
1662         * config/darwin/plugin-suffix.h: New file.
1663         * config/hpux/plugin-suffix.h: New file.
1664         * config/posix/plugin-suffix.h: New file.
1666 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
1668         PR middle-end/64734
1669         * libgomp.c/pr64734.c: New test.
1671 2015-01-23  Tom de Vries  <tom@codesourcery.com>
1673         PR libgomp/64672
1674         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
1676 2015-01-23  Tom de Vries  <tom@codesourcery.com>
1678         PR libgomp/64707
1679         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
1680         dg-options.
1682 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
1684         PR libgomp/64625
1685         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
1686         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
1687         formal parameter.  Update all users.
1688         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
1689         Document unused formal parameter.
1691 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
1693         * oacc-parallel.c: Don't include <alloca.h>.
1694         (GOACC_parallel): Use gomp_alloca instead of alloca.
1696 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
1698         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
1700 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
1701             James Norris  <jnorris@codesourcery.com>
1702             Tom de Vries  <tom@codesourcery.com>
1703             Julian Brown  <julian@codesourcery.com>
1704             Cesar Philippidis  <cesar@codesourcery.com>
1705             Nathan Sidwell  <nathan@codesourcery.com>
1706             Tobias Burnus  <burnus@net-b.de>
1708         * Makefile.am (search_path): Add $(top_srcdir)/../include.
1709         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
1710         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
1711         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
1712         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
1713         Include $(top_srcdir)/plugin/Makefrag.am.
1714         (nodist_libsubinclude_HEADERS): Add openacc.h.
1715         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
1716         openacc.f90, openacc.mod, openacc_kinds.mod.
1717         (omp_lib.mod): Generalize into...
1718         (%.mod): ... this new rule.
1719         (openacc_kinds.mod, openacc.mod): New rules.
1720         * plugin/configfrag.ac: New file.
1721         * configure.ac: Move plugin/offloading support into it.  Include
1722         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
1723         * plugin/Makefrag.am: New file.
1724         * testsuite/Makefile.am (OFFLOAD_TARGETS)
1725         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
1726         export.
1727         (libgomp-test-support.exp): New rule.
1728         (all-local): Depend on it.
1729         * Makefile.in: Regenerate.
1730         * testsuite/Makefile.in: Regenerate.
1731         * config.h.in: Likewise.
1732         * configure: Likewise.
1733         * configure.tgt: Harden shell syntax.
1734         * env.c: Include "oacc-int.h".
1735         (parse_acc_device_type): New function.
1736         (gomp_debug_var, goacc_device_type, goacc_device_num): New
1737         variables.
1738         (initialize_env): Initialize those.  Call
1739         goacc_runtime_initialize.
1740         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
1741         (gomp_fatal): Call gomp_vfatal.
1742         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
1743         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
1744         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
1745         (splay_tree_node, splay_tree, splay_tree_key)
1746         (struct target_mem_desc, struct splay_tree_key_s)
1747         (struct gomp_memory_mapping, struct acc_dispatch_t)
1748         (struct gomp_device_descr, gomp_acc_insert_pointer)
1749         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
1750         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
1751         (gomp_free_memmap, gomp_fini_device): New declarations.
1752         (gomp_vdebug, gomp_debug): New macros.
1753         Include "splay-tree.h".
1754         * libgomp.map (OACC_2.0): New symbol version.  Use for
1755         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
1756         acc_set_device_type_h_, acc_get_device_type,
1757         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
1758         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
1759         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
1760         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
1761         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
1762         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
1763         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
1764         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
1765         acc_copyin_array_h_, acc_present_or_copyin,
1766         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
1767         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
1768         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
1769         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
1770         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
1771         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
1772         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
1773         acc_update_device, acc_update_device_32_h_,
1774         acc_update_device_64_h_, acc_update_device_array_h_,
1775         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
1776         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
1777         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
1778         acc_is_present_64_h_, acc_is_present_array_h_,
1779         acc_memcpy_to_device, acc_memcpy_from_device,
1780         acc_get_current_cuda_device, acc_get_current_cuda_context,
1781         acc_get_cuda_stream, acc_set_cuda_stream.
1782         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
1783         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
1784         GOACC_update, GOACC_wait, GOACC_get_thread_num,
1785         GOACC_get_num_threads.
1786         (GOMP_PLUGIN_1.0): New symbol version.  Use for
1787         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
1788         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
1789         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
1790         GOMP_PLUGIN_acc_thread.
1791         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
1792         environment variable.
1793         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
1794         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
1795         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
1796         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
1797         (splay_tree_remove): New declarations.
1798         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
1799         (splay_tree_remove, splay_tree_lookup): Move into...
1800         * splay-tree.c: ... this new file.
1801         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
1802         (splay_tree_node, splay_tree, splay_tree_key)
1803         (struct target_mem_desc, struct splay_tree_key_s)
1804         (struct gomp_device_descr): Don't declare.
1805         (num_devices_openmp): New variable.
1806         (gomp_get_num_devices ): Use it.
1807         (gomp_init_targets_once): New function.
1808         (gomp_get_num_devices ): Use it.
1809         (get_kind, gomp_copy_from_async, gomp_free_memmap)
1810         (gomp_fini_device, gomp_register_image_for_device): New functions.
1811         (gomp_map_vars): Add devaddrs parameter.
1812         (gomp_update): Add mm parameter.
1813         (gomp_init_device): Move most of it into...
1814         (gomp_init_tables): ... this new function.
1815         (gomp_register_images_for_device): Remove function.
1816         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
1817         Make them hidden instead of static.
1818         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
1819         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
1820         (GOMP_target_end_data, GOMP_target_update)
1821         (gomp_load_plugin_for_device, gomp_target_init): Update for
1822         OpenACC changes.
1823         * oacc-async.c: New file.
1824         * oacc-cuda.c: Likewise.
1825         * oacc-host.c: Likewise.
1826         * oacc-init.c: Likewise.
1827         * oacc-int.h: Likewise.
1828         * oacc-mem.c: Likewise.
1829         * oacc-parallel.c: Likewise.
1830         * oacc-plugin.c: Likewise.
1831         * oacc-plugin.h: Likewise.
1832         * oacc-ptx.h: Likewise.
1833         * openacc.f90: Likewise.
1834         * openacc.h: Likewise.
1835         * openacc_lib.h: Likewise.
1836         * plugin/plugin-host.c: Likewise.
1837         * plugin/plugin-nvptx.c: Likewise.
1838         * libgomp-plugin.c: Likewise.
1839         * libgomp-plugin.h: Likewise.
1840         * libgomp_target.h: Remove file after merging content into the
1841         former file.  Update all users.
1842         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
1843         (offload_targets_s, offload_targets_s_openacc): New variables.
1844         (check_effective_target_openacc_nvidia_accel_present)
1845         (check_effective_target_openacc_nvidia_accel_selected): New
1846         procedures.
1847         (libgomp_init): Update for OpenACC changes.
1848         * testsuite/libgomp-test-support.exp.in: New file.
1849         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
1850         * testsuite/libgomp.oacc-c/c.exp: Likewise.
1851         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
1852         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
1853         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
1854         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
1855         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
1856         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
1857         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
1858         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
1859         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
1860         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
1861         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
1862         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
1863         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
1864         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
1865         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
1866         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
1867         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
1868         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
1869         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
1870         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
1871         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
1872         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
1873         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1874         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
1875         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
1876         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
1877         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
1878         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
1879         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1880         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
1881         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
1882         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
1883         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
1884         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
1885         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
1886         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
1887         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
1888         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
1889         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
1890         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
1891         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1892         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
1893         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
1894         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
1895         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
1896         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
1897         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
1898         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
1899         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
1900         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
1901         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1902         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
1903         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
1904         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
1905         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
1906         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
1907         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
1908         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
1909         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
1910         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
1911         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
1912         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
1913         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
1914         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
1915         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
1916         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
1917         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
1918         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
1919         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
1920         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
1921         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
1922         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
1923         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
1924         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
1925         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
1926         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
1927         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
1928         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
1929         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
1930         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
1931         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
1932         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
1933         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
1934         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
1935         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
1936         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
1937         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
1938         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
1939         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
1940         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
1941         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
1942         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
1943         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
1944         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
1945         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
1946         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
1947         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
1948         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
1949         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
1950         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
1951         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
1952         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
1953         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
1954         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
1955         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
1956         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
1957         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
1958         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
1959         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
1960         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
1961         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
1962         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
1963         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
1964         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
1965         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
1966         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
1967         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
1968         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
1969         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
1970         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
1971         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
1972         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
1973         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
1974         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
1975         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
1976         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
1977         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
1978         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
1979         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
1980         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
1981         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
1982         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
1983         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
1984         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
1985         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
1986         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
1987         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
1988         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
1989         Likewise.
1990         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
1991         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
1992         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
1993         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
1994         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
1995         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
1996         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1997         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
1998         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
1999         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
2000         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
2001         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
2002         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
2003         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
2004         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
2005         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
2006         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
2007         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
2008         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
2009         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
2010         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
2011         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
2012         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
2013         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
2014         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
2015         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
2016         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
2017         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
2018         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
2019         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
2020         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
2021         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
2022         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
2023         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
2024         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
2025         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
2026         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
2027         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
2028         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
2029         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
2030         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
2031         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
2032         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
2033         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
2034         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
2035         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
2036         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
2037         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
2038         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
2039         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
2040         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
2041         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
2042         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
2043         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
2044         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
2045         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
2046         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
2047         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
2048         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
2049         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
2051 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
2052             Julian Brown  <julian@codesourcery.com>
2053             David Malcolm  <dmalcolm@redhat.com>
2055         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
2056         to "GNU Offloading and Multi Processing Runtime Library".  Change
2057         all users.
2058         * configure: Regenerate.
2059         * libgomp.texi: Update.
2061 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
2063         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
2064         "$tgt_dir/lib32".
2065         * configure: Regenerate.
2067         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
2068         "intelmic" in $offload_targets.
2070 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2072         Update copyright years.
2074         * libgomp.texi: Bump @copying's copyright year.
2076 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2078         * testsuite/lib/libgomp.exp: Load target-utils.exp.
2079         Move load of target-supportes.exp earlier.
2081 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
2083         * testsuite/libgomp.c/target-9.c: New test.
2085 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
2087         * config.h.in: Regenerate.
2088         * configure: Regenerate.
2089         * configure.ac: Add GCC_CHECK_EMUTLS.
2090         * libgomp.h: Add check for USE_EMUTLS: this case
2091         is equal to HAVE_TLS.
2092         * team.c: Likewise.
2094 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
2096         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
2098 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2099             Ilya Verbin  <ilya.verbin@intel.com>
2101         * testsuite/libgomp.c/target-critical-1.c: New test.
2103 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2105         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
2106         to dg-options unless expensive testing is on.
2107         (TESTITERS): Define to N if not defined.
2108         (main): Use TESTITERS instead of N.
2109         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
2110         dg-additional-options depending on whether expensive testing is on.
2111         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
2112         Decrease N to 100000 and CHUNKSZ to 10000.
2114 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
2116         PR fortran/63938
2117         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
2118         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
2120 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
2122         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
2124 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
2126         PR bootstrap/63784
2127         * configure: Regenerated.
2129 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
2131         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
2132         vect_simd_clones effective target.
2133         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
2135 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
2137         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
2138         of 32 as block_size.
2139         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
2140         instead of 32 as block_size.
2142 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2143             Ilya Verbin  <ilya.verbin@intel.com>
2145         * Makefile.in: Regenerate.
2146         * configure: Regenerate.
2147         * configure.ac: Set up offload_additional_options,
2148         offload_additional_lib_paths and offload_targets.
2149         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
2150         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
2151         * testsuite/Makefile.in: Regenerate.
2152         * testsuite/lib/libgomp.exp (libgomp_init): Append
2153         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
2154         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
2155         build directory to LD_LIBRARY_PATH for intelmic offload targets.
2157 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2158             Ilya Verbin  <ilya.verbin@intel.com>
2159             Kirill Yukhin  <kirill.yukhin@intel.com>
2160             Ilya Tocar  <ilya.tocar@intel.com>
2162         * testsuite/lib/libgomp.exp
2163         (check_effective_target_offload_device): New.
2164         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
2165         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
2166         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
2167         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
2168         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
2169         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
2170         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
2171         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
2172         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
2173         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
2174         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
2175         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
2176         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
2177         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
2178         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
2179         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
2180         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
2181         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
2182         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
2183         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
2184         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
2185         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
2186         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
2187         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
2188         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
2189         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
2190         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
2191         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
2192         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
2193         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
2194         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
2195         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
2196         * testsuite/libgomp.c/target-7.c: Fix test.
2197         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
2198         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
2199         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
2200         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
2201         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
2202         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
2203         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
2204         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
2205         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
2206         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
2207         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
2208         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
2209         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
2210         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
2211         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
2212         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
2213         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
2214         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
2215         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
2216         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
2217         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
2218         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
2219         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
2220         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
2221         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
2222         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
2223         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
2224         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
2225         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
2226         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
2227         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
2229 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
2230             Ilya Verbin  <ilya.verbin@intel.com>
2231             Thomas Schwinge  <thomas@codesourcery.com>
2232             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2234         * libgomp.map (GOMP_4.0.1): New symbol version.
2235         Add GOMP_offload_register.
2236         * libgomp_target.h: New file.
2237         * splay-tree.h: New file.
2238         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
2239         (gomp_target_init): New forward declaration.
2240         (gomp_is_initialized): New static variable.
2241         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
2242         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
2243         New structures.
2244         (offload_images, num_offload_images, devices, num_devices): New static
2245         variables.
2246         (splay_compare): New static function.
2247         (struct gomp_device_descr): New structure.
2248         (gomp_get_num_devices): Call gomp_target_init.
2249         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
2250         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
2251         (GOMP_offload_register): New function.
2252         (GOMP_target): Arrange for host callback to be performed in a separate
2253         initial thread and contention group, inheriting ICVs from
2254         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
2255         Add device initialization and lookup for target function in splay tree.
2256         (GOMP_target_data): Add device initialization and call gomp_map_vars.
2257         (GOMP_target_end_data): Call gomp_unmap_vars.
2258         (GOMP_target_update): Add device initialization and call gomp_update.
2259         (gomp_load_plugin_for_device, gomp_register_images_for_device)
2260         (gomp_target_init): New static functions.
2262 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
2263             Thomas Schwinge  <thomas@codesourcery.com>
2264             Ilya Verbin  <ilya.verbin@intel.com>
2265             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2267         * config.h.in: Regenerate.
2268         * configure: Regenerate.
2269         * configure.ac: Check for libdl, required for plugin support.
2270         (PLUGIN_SUPPORT): Define if plugins are supported.
2271         (enable_offload_targets): Support Intel MIC targets.
2272         (OFFLOAD_TARGETS): List of target names suitable for offloading.
2274 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2276         PR target/63610
2277         * configure: Regenerate.
2279 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2281         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
2283 2014-10-06  Marek Polacek  <polacek@redhat.com>
2285         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
2286         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
2287         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
2288         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
2290 2014-10-06  Marek Polacek  <polacek@redhat.com>
2292         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
2293         * testsuite/libgomp.c/nqueens-1.c: Likewise.
2294         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2295         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2296         * testsuite/libgomp.c/pr36802-2.c: Likewise.
2297         * testsuite/libgomp.c/pr36802-3.c: Likewise.
2298         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
2299         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
2300         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
2301         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
2302         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
2303         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
2304         * testsuite/libgomp.c/omp-single-1.c: Likewise.
2305         * testsuite/libgomp.c/omp-single-2.c: Likewise.
2306         * testsuite/libgomp.c/omp_matvec.c: Likewise.
2307         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
2308         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
2309         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
2310         declarations.
2312 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2314         PR libgomp/61200
2315         * testsuite/libgomp.c/pr61200.c: New test.
2317 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
2319         PR c++/63248
2320         * testsuite/libgomp.c++/pr63248.C: New test.
2322 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
2324         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
2325         is not zero, but taskgroup->children is NULL and there are
2326         any task->children, schedule those instead of waiting.
2327         * testsuite/libgomp.c/depend-6.c: New test.
2328         * testsuite/libgomp.c/depend-7.c: New test.
2329         * testsuite/libgomp.c/depend-8.c: New test.
2330         * testsuite/libgomp.c/depend-9.c: New test.
2331         * testsuite/libgomp.c/depend-10.c: New test.
2333 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
2335         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
2336         (struct gomp_taskwait): New type.
2337         (struct gomp_task): Add taskwait and parent_depends_on, remove
2338         in_taskwait and taskwait_sem fields.
2339         (gomp_finish_task): Don't destroy taskwait_sem.
2340         * task.c (gomp_init_task): Don't init in_taskwait, instead init
2341         taskwait and parent_depends_on.
2342         (GOMP_task): For if (0) tasks with depend clause that depend on
2343         earlier tasks don't defer them, instead call
2344         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
2345         Initialize redundant_out field, for redundant out entries just
2346         move them at the end of linked list instead of removing them
2347         completely, and set redundant_out flag instead of redundant.
2348         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
2349         that task.
2350         (gomp_task_run_post_handle_dependers): If parent is in
2351         gomp_task_maybe_wait_for_dependencies and newly runnable task
2352         is not parent_depends_on, queue it in parent->children linked
2353         list after all runnable tasks with parent_depends_on set.
2354         Adjust for addition of taskwait indirection.
2355         (gomp_task_run_post_remove_parent): If parent is in
2356         gomp_task_maybe_wait_for_dependencies and task to be removed
2357         is parent_depends_on, decrement n_depend and if needed awake
2358         parent.  Adjust for addition of taskwait indirection.
2359         (GOMP_taskwait): Adjust for addition of taskwait indirection.
2360         (gomp_task_maybe_wait_for_dependencies): New function.
2361         * testsuite/libgomp.c/depend-5.c: New test.
2363 2014-07-13  Tobias Burnus  <burnus@net-b.de>
2365         * testsuite/libgomp.fortran/pr34020.f90: Make compile
2366         with TS 18508/Fortran 2015.
2368 2014-07-06  Marek Polacek  <polacek@redhat.com>
2370         PR c/6940
2371         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
2373 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
2375         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
2376         matches regex $lang_source_re, add $lang_include_flags to options.
2377         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
2378         * testsuite/libgomp.c++/c++.exp: Likewise.
2379         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
2380         and lang_include_flags instead of adding -fintrinsic-modules-path= to
2381         ALWAYS_CFLAGS.
2382         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
2384 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
2386         * testsuite/libgomp.fortran/fortran.exp: Explain
2387         gfortran-dg-runtest usage.
2389 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
2391         * testsuite/libgomp.fortran/simd5.f90: New test.
2392         * testsuite/libgomp.fortran/simd6.f90: New test.
2393         * testsuite/libgomp.fortran/simd7.f90: New test.
2395 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
2397         * testsuite/libgomp.c/for-2.c: Define SC to static for
2398         #pragma omp for simd testing.
2399         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
2400         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
2401         SC macro.
2402         * testsuite/libgomp.c/simd-14.c: New test.
2403         * testsuite/libgomp.c/simd-15.c: New test.
2404         * testsuite/libgomp.c/simd-16.c: New test.
2405         * testsuite/libgomp.c/simd-17.c: New test.
2406         * testsuite/libgomp.c++/for-10.C: Define SC to static for
2407         #pragma omp for simd testing.
2408         * testsuite/libgomp.c++/simd10.C: New test.
2409         * testsuite/libgomp.c++/simd11.C: New test.
2410         * testsuite/libgomp.c++/simd12.C: New test.
2411         * testsuite/libgomp.c++/simd13.C: New test.
2413         * testsuite/libgomp.fortran/aligned1.f03: New test.
2414         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
2415         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
2416         tasks with !$omp parallel !$omp single.
2417         * testsuite/libgomp.fortran/target8.f90: New test.
2418         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
2419         not to use trim in the combiner, instead call elemental function.
2420         (fn): New elemental function.
2421         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
2422         Make elemental.
2423         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
2424         omp_in): Likewise.
2425         * testsuite/libgomp.fortran/udr12.f90: New test.
2426         * testsuite/libgomp.fortran/udr13.f90: New test.
2427         * testsuite/libgomp.fortran/udr14.f90: New test.
2428         * testsuite/libgomp.fortran/udr15.f90: New test.
2430 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
2432         * omp_lib.f90.in (openmp_version): Set to 201307.
2433         * omp_lib.h.in (openmp_version): Likewise.
2434         * testsuite/libgomp.c/target-8.c: New test.
2435         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
2436         and inbranch clauses.
2437         * testsuite/libgomp.fortran/depend-3.f90: New test.
2438         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
2439         openmp_version.
2440         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2441         * testsuite/libgomp.fortran/target1.f90: New test.
2442         * testsuite/libgomp.fortran/target2.f90: New test.
2443         * testsuite/libgomp.fortran/target3.f90: New test.
2444         * testsuite/libgomp.fortran/target4.f90: New test.
2445         * testsuite/libgomp.fortran/target5.f90: New test.
2446         * testsuite/libgomp.fortran/target6.f90: New test.
2447         * testsuite/libgomp.fortran/target7.f90: New test.
2449 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
2451         PR fortran/60928
2452         * testsuite/libgomp.fortran/allocatable9.f90: New test.
2453         * testsuite/libgomp.fortran/allocatable10.f90: New test.
2454         * testsuite/libgomp.fortran/allocatable11.f90: New test.
2455         * testsuite/libgomp.fortran/allocatable12.f90: New test.
2456         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
2457         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
2458         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
2459         * testsuite/libgomp.fortran/associate1.f90: New test.
2460         * testsuite/libgomp.fortran/associate2.f90: New test.
2461         * testsuite/libgomp.fortran/procptr1.f90: New test.
2463 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
2465         * testsuite/libgomp.fortran/simd1.f90: New test.
2466         * testsuite/libgomp.fortran/udr1.f90: New test.
2467         * testsuite/libgomp.fortran/udr2.f90: New test.
2468         * testsuite/libgomp.fortran/udr3.f90: New test.
2469         * testsuite/libgomp.fortran/udr4.f90: New test.
2470         * testsuite/libgomp.fortran/udr5.f90: New test.
2471         * testsuite/libgomp.fortran/udr6.f90: New test.
2472         * testsuite/libgomp.fortran/udr7.f90: New test.
2473         * testsuite/libgomp.fortran/udr8.f90: New test.
2474         * testsuite/libgomp.fortran/udr9.f90: New test.
2475         * testsuite/libgomp.fortran/udr10.f90: New test.
2476         * testsuite/libgomp.fortran/udr11.f90: New test.
2478 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
2480         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
2481         vect_simd_clones effective target.
2482         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
2484 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
2486         PR middle-end/61252
2487         * testsuite/libgomp.c++/simd-9.C: New test.
2489 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
2491         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
2492         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
2493         texts according to their @menu entry positions.
2495 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
2497         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
2498         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
2499         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
2500         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
2501         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
2502         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
2503         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
2504         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
2505         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
2506         * testsuite/libgomp.fortran/depend-1.f90: New test.
2507         * testsuite/libgomp.fortran/depend-2.f90: New test.
2508         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
2509         * testsuite/libgomp.fortran/simd1.f90: New test.
2510         * testsuite/libgomp.fortran/simd2.f90: New test.
2511         * testsuite/libgomp.fortran/simd3.f90: New test.
2512         * testsuite/libgomp.fortran/simd4.f90: New test.
2513         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
2515 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
2517         * testsuite/libgomp.c/simd-10.c: New test.
2518         * testsuite/libgomp.c/simd-11.c: New test.
2519         * testsuite/libgomp.c/simd-12.c: New test.
2520         * testsuite/libgomp.c/simd-13.c: New test.
2522 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
2524         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
2525         atomic type clauses in any order and optional comma in between.
2526         * testsuite/libgomp.c++/atomic-15.C: Likewise.
2527         * testsuite/libgomp.c/atomic-17.c: Likewise.
2529         * testsuite/libgomp.c/simd-7.c: New test.
2530         * testsuite/libgomp.c/simd-8.c: New test.
2531         * testsuite/libgomp.c/simd-9.c: New test.
2532         * testsuite/libgomp.c/loop-16.c: New test.
2534 2014-04-02  Richard Henderson  <rth@redhat.com>
2536         * config/linux/futex.h (futex_wait): Get error value from errno.
2537         (futex_wake): Likewise.
2539 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
2541         PR c++/60331
2542         * testsuite/libgomp.c++/udr-11.C: New test.
2543         * testsuite/libgomp.c++/udr-12.C: New test.
2544         * testsuite/libgomp.c++/udr-13.C: New test.
2545         * testsuite/libgomp.c++/udr-14.C: New test.
2546         * testsuite/libgomp.c++/udr-15.C: New test.
2547         * testsuite/libgomp.c++/udr-16.C: New test.
2548         * testsuite/libgomp.c++/udr-17.C: New test.
2549         * testsuite/libgomp.c++/udr-18.C: New test.
2550         * testsuite/libgomp.c++/udr-19.C: New test.
2552 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2554         Update copyright years
2556 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2558         * hashtab.h: Use the standard form for the copyright notice.
2560 2014-01-02  Tobias Burnus  <burnus@net-b.de>
2562         * libgomp.texi: Bump @copying's copyright year.
2564 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
2566         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
2567         alloca () with __builtin_alloca ().
2568         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
2569         * testsuite/libgomp.c/lock-3.c: Likewise.
2570         * testsuite/libgomp.c/pr48591.c: Likewise.
2572 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
2574         PR testsuite/59534
2575         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
2576         comparisons.
2578 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
2580         PR libgomp/58756
2581         * testsuite/libgomp.c/pr58756.c: New test.
2583 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
2585         PR libgomp/59467
2586         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
2587         !$omp parallel.
2589 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
2591         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
2592         ALWAYS_CFLAGS.
2593         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
2594         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
2595         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
2596         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
2597         Likewise.
2599         * libgomp_g.h: Include <stddef.h> for size_t.
2601         * libgomp.spec.in: Update comment about libgomp's dependencies.
2602         * configure.ac: Likewise.
2603         * configure: Regenerate.
2605 2013-10-16  Tobias Burnus  <burnus@net-b.de>
2607         * libgomp.texi: (Runtime Library Routines): Update references for
2608         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
2609         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
2610         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
2611         (Environment Variables): Update references for OpenMP 4.0. Add
2612         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
2613         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
2614         order.
2616 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
2618         * env.c (parse_bind_var): Initialize value to avoid
2619         (false positive) warning.
2621 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
2623         PR libgomp/58691
2624         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
2625         to check variable.
2626         (gomp_init_num_threads): Move i variable declaration into
2627         #ifdef CPU_ALLOC_SIZE block.
2628         * config/linux/affinity.c (gomp_affinity_init_level): Test
2629         gomp_places_list_len == 0 rather than gomp_places_list == 0
2630         when checking for topology reading error.
2631         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
2632         * env.c (parse_affinity): Add ignore argument, if true, don't populate
2633         gomp_places_list, only parse env var and always return false.
2634         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
2635         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
2636         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
2637         and either of these variables were parsed correctly into a places
2638         list.
2640 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
2641             Jakub Jelinek  <jakub@redhat.com>
2643         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
2644         of 5 loopfn matches.
2645         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
2646         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
2647         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
2648         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
2649         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
2650         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
2651         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
2652         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
2654 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
2656         * Makefile.am (omp_lib.mod): Streamline rule.
2657         * Makefile.in: Regenerate.
2659         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
2660         exceptions.
2662         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
2663         * testsuite/libgomp.fortran/lib1.f90: Likewise.
2664         * testsuite/libgomp.fortran/lib2.f: Likewise.
2665         * testsuite/libgomp.fortran/lib3.f: Likewise.
2667         * configure.ac: Typo fix.
2668         * configure: Regenerate.
2670         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
2671         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2673         * omp.h.in: Don't touch the user's namespace.
2675 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
2676             Tobias Burnus  <burnus@net-b.de>
2677             Richard Henderson  <rth@redhat.com>
2679         * target.c: New file.
2680         * Makefile.am (libgomp_la_SOURCES): Add target.c.
2681         * Makefile.in: Regenerated.
2682         * libgomp_g.h (GOMP_task): Add depend argument.
2683         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
2684         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
2685         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
2686         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
2687         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
2688         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
2689         GOMP_taskgroup_start, GOMP_taskgroup_end,
2690         GOMP_parallel_sections): New prototypes.
2691         * fortran.c (omp_is_initial_device): Add ialias_redirect.
2692         (omp_is_initial_device_): New function.
2693         (ULP, STR1, STR2, ialias_redirect): Removed.
2694         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
2695         omp_set_default_device_8_, omp_get_default_device_,
2696         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
2697         functions.
2698         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
2699         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
2700         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
2701         @@GOMP_4.0.
2702         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
2703         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
2704         omp_set_default_device, omp_set_default_device_,
2705         omp_set_default_device_8_, omp_get_default_device,
2706         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
2707         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
2708         omp_get_team_num_): Export @@OMP_4.0.
2709         * team.c (struct gomp_thread_start_data): Add place field.
2710         (gomp_thread_start): Clear thr->thread_pool and
2711         thr->task before returning.  Use gomp_team_barrier_wait_final
2712         instead of gomp_team_barrier_wait.  Initialize thr->place.
2713         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
2714         team_cancelled and task_queued_count fields.
2715         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
2716         before calling pthread_exit.
2717         (gomp_free_thread): No longer static.  Use
2718         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
2719         (gomp_team_start): Add flags argument.  Set
2720         thr->thread_pool->threads_busy to nthreads immediately after creating
2721         new pool.  Use gomp_managed_threads_lock instead of
2722         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
2723         (gomp_team_end): Use gomp_managed_threads_lock instead of
2724         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
2725         of gomp_team_barrier_wait.  If team->team_cancelled, call
2726         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
2727         rather than thr->ts.work_share.
2728         (initialize_team): Don't call gomp_sem_init here.
2729         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
2730         caller.
2731         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
2732         * env.c (gomp_global_icv): Add default_device_var, target_data and
2733         bind_var initializers.
2734         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
2735         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
2736         gomp_places_list_len): New variables.
2737         (parse_bind_var, parse_one_place, parse_places_var): New functions.
2738         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
2739         sized places.
2740         (gomp_cancel_var): New global variable.
2741         (parse_int): New function.
2742         (handle_omp_display_env): New function.
2743         (initialize_env): Use it.  Initialize default_device_var.
2744         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
2745         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
2746         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
2747         been successfully parsed (and call gomp_init_affinity in that case).
2748         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2749         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2750         omp_get_team_num, omp_is_initial_device): New functions.
2751         * libgomp.h: Include stdlib.h.
2752         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
2753         Define.
2754         (struct target_mem_desc): Forward declare.
2755         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
2756         and thread_limit_var fields.
2757         (gomp_get_num_devices): New prototype.
2758         (gomp_cancel_var): New extern decl.
2759         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
2760         team_cancelled and task_queued_count fields.  Add comments about
2761         task_{,queued_,running_}count.
2762         (gomp_cancel_kind): New enum.
2763         (gomp_work_share_end_cancel): New prototype.
2764         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
2765         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
2766         and depend fields.
2767         (struct gomp_taskgroup): New type.
2768         (struct gomp_task_depend_entry,
2769         struct gomp_dependers_vec): New types.
2770         (gomp_finish_task): Free depend_hash if non-NULL.
2771         (struct gomp_team_state): Add place_partition_off
2772         and place_partition_len fields.
2773         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
2774         gomp_places_list_len): New extern decls.
2775         (struct gomp_thread): Add place field.
2776         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
2777         (gomp_init_thread_affinity): Add place argument.
2778         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2779         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2780         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2781         gomp_affinity_init_level, gomp_affinity_print_place): New
2782         prototypes.
2783         (gomp_team_start): Add flags argument.
2784         (gomp_thread_limit_var, gomp_remaining_threads_count,
2785         gomp_remaining_threads_lock): Remove.
2786         (gomp_managed_threads_lock): New variable.
2787         (struct gomp_thread_pool): Add threads_busy field.
2788         (gomp_free_thread): New prototype.
2789         * task.c: Include hashtab.h.
2790         (hash_entry_type): New typedef.
2791         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
2792         (gomp_init_task): Clear dependers, depend_hash, depend_count,
2793         copy_ctors_done and taskgroup fields.
2794         (GOMP_task): Add depend argument, handle depend clauses.  If
2795         gomp_team_barrier_cancelled or if it's taskgroup has been
2796         cancelled, don't queue or start new tasks.  Set copy_ctors_done
2797         field if needed.  Initialize taskgroup field.  If copy_ctors_done
2798         and already cancelled, don't discard the task.  If taskgroup is
2799         non-NULL, enqueue the task into taskgroup queue.  Increment
2800         num_children field in taskgroup.  Increment task_queued_count.
2801         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
2802         gomp_task_run_post_remove_taskgroup): New inline functions.
2803         (gomp_task_run_post_handle_depend_hash,
2804         gomp_task_run_post_handle_dependers,
2805         gomp_task_run_post_handle_depend): New functions.
2806         (GOMP_taskwait): Use them.  If more than one new tasks
2807         have been queued, wake other threads if needed.
2808         (gomp_barrier_handle_tasks): Likewise.  If
2809         gomp_team_barrier_cancelled, don't start any new tasks, just free
2810         all tasks.
2811         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
2812         * omp_lib.f90.in
2813         (omp_proc_bind_kind, omp_proc_bind_false,
2814         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2815         omp_proc_bind_spread): New params.
2816         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2817         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2818         omp_get_team_num, omp_is_initial_device): New interfaces.
2819         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
2820         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
2821         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
2822         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
2823         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
2824         useless use omp_lib_kinds.
2825         * omp.h.in (omp_proc_bind_t): New typedef.
2826         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2827         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2828         omp_get_team_num, omp_is_initial_device): New prototypes.
2829         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
2830         through to gomp_team_start.
2831         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
2832         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
2833         Adjust gomp_parallel_loop_start callers.
2834         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
2835         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
2836         GOMP_loop_end_cancel): New functions.
2837         (GOMP_parallel_end): Add ialias_redirect.
2838         * hashtab.h: New file.
2839         * libgomp.texi (Environment Variables): Minor cleanup,
2840         update section refs to OpenMP 4.0rc2.
2841         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
2842         environment variables.
2843         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
2844         team->work_shares_to_free to thr->ts.work_share before calling
2845         free_work_share.
2846         (gomp_work_share_end_cancel): New function.
2847         * config/linux/proc.c: Include errno.h.
2848         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
2849         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
2850         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
2851         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
2852         gomp_cpuset_size is sizeof (cpu_set_t).
2853         (gomp_init_num_threads): Initialize gomp_cpuset_size,
2854         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
2855         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
2856         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
2857         contain any logical CPUs.
2858         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
2859         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
2860         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
2861         pthread_getaffinity_np.  Check gomp_places_list instead of
2862         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
2863         * config/linux/bar.c (gomp_barrier_wait_end,
2864         gomp_barrier_wait_last): Use BAR_* defines.
2865         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
2866         from state where needed.  Set work_share_cancelled to 0 on last
2867         thread.
2868         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
2869         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
2870         functions.
2871         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
2872         Add cpusetsize argument.
2873         (gomp_cpuset_size, gomp_cpusetp): Declare.
2874         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
2875         (affinity_counter): Remove.
2876         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
2877         if CPU_ALLOC_SIZE isn't defined.
2878         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
2879         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
2880         bind current thread to the first place.
2881         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
2882         pthread_setaffinity_np to gomp_places_list[place].
2883         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2884         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2885         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2886         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
2887         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2888         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2889         (gomp_barrier_t): Add awaited_final field.
2890         (gomp_barrier_init): Initialize awaited_final field.
2891         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
2892         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
2893         prototypes.
2894         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
2895         defines.
2896         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
2897         gomp_team_barrier_cancelled): New inline functions.
2898         (gomp_barrier_last_thread,
2899         gomp_team_barrier_set_task_pending,
2900         gomp_team_barrier_clear_task_pending,
2901         gomp_team_barrier_set_waiting_for_tasks,
2902         gomp_team_barrier_waiting_for_tasks,
2903         gomp_team_barrier_done): Use BAR_* defines.
2904         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
2905         (gomp_barrier_wait_end): Use BAR_* defines.
2906         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
2907         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
2908         Use BAR_* defines.
2909         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
2910         gomp_team_barrier_cancel): New functions.
2911         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
2912         argument.
2913         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
2914         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
2915         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
2916         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
2917         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
2918         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
2919         (gomp_barrier_t): Add cancellable field.
2920         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
2921         gomp_team_barrier_cancel): New prototypes.
2922         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
2923         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
2924         gomp_team_barrier_cancelled): New inline functions.
2925         (gomp_barrier_wait_start, gomp_barrier_last_thread,
2926         gomp_team_barrier_set_task_pending,
2927         gomp_team_barrier_clear_task_pending,
2928         gomp_team_barrier_set_waiting_for_tasks,
2929         gomp_team_barrier_waiting_for_tasks,
2930         gomp_team_barrier_done): Use BAR_* defines.
2931         * barrier.c (GOMP_barrier_cancel): New function.
2932         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
2933         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
2934         omp_proc_bind_spread): New params.
2935         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
2936         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
2937         omp_get_team_num, omp_is_initial_device): New externals.
2938         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
2939         New functions.
2940         (gomp_resolve_num_threads): Adjust for thread_limit now being in
2941         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
2942         infinity.  If not nested, just return minimum of max_num_threads
2943         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
2944         to the returned value.  Otherwise, don't update atomically
2945         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
2946         (GOMP_parallel_end): Adjust for thread_limit now being in
2947         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
2948         infinity.  Adjust threads_busy in the pool rather than
2949         gomp_remaining_threads_count.  Remember team->nthreads and call
2950         gomp_team_end before adjusting threads_busy, if not nested
2951         afterwards, just set it to 1 non-atomically.  Add ialias.
2952         (GOMP_parallel_start): Adjust gomp_team_start caller.
2953         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
2954         * testsuite/libgomp.c/affinity-1.c: New test.
2955         * testsuite/libgomp.c/atomic-15.c: New test.
2956         * testsuite/libgomp.c/atomic-16.c: New test.
2957         * testsuite/libgomp.c/atomic-17.c: New test.
2958         * testsuite/libgomp.c/cancel-for-1.c: New test.
2959         * testsuite/libgomp.c/cancel-for-2.c: New test.
2960         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
2961         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
2962         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
2963         * testsuite/libgomp.c/cancel-sections-1.c: New test.
2964         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
2965         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
2966         * testsuite/libgomp.c/depend-1.c: New test.
2967         * testsuite/libgomp.c/depend-2.c: New test.
2968         * testsuite/libgomp.c/depend-3.c: New test.
2969         * testsuite/libgomp.c/depend-4.c: New test.
2970         * testsuite/libgomp.c/for-1.c: New test.
2971         * testsuite/libgomp.c/for-1.h: New file.
2972         * testsuite/libgomp.c/for-2.c: New test.
2973         * testsuite/libgomp.c/for-2.h: New file.
2974         * testsuite/libgomp.c/for-3.c: New test.
2975         * testsuite/libgomp.c/pr58392.c: New test.
2976         * testsuite/libgomp.c/simd-1.c: New test.
2977         * testsuite/libgomp.c/simd-2.c: New test.
2978         * testsuite/libgomp.c/simd-3.c: New test.
2979         * testsuite/libgomp.c/simd-4.c: New test.
2980         * testsuite/libgomp.c/simd-5.c: New test.
2981         * testsuite/libgomp.c/simd-6.c: New test.
2982         * testsuite/libgomp.c/target-1.c: New test.
2983         * testsuite/libgomp.c/target-2.c: New test.
2984         * testsuite/libgomp.c/target-3.c: New test.
2985         * testsuite/libgomp.c/target-4.c: New test.
2986         * testsuite/libgomp.c/target-5.c: New test.
2987         * testsuite/libgomp.c/target-6.c: New test.
2988         * testsuite/libgomp.c/target-7.c: New test.
2989         * testsuite/libgomp.c/taskgroup-1.c: New test.
2990         * testsuite/libgomp.c/thread-limit-1.c: New test.
2991         * testsuite/libgomp.c/thread-limit-2.c: New test.
2992         * testsuite/libgomp.c/thread-limit-3.c: New test.
2993         * testsuite/libgomp.c/udr-1.c: New test.
2994         * testsuite/libgomp.c/udr-2.c: New test.
2995         * testsuite/libgomp.c/udr-3.c: New test.
2996         * testsuite/libgomp.c++/affinity-1.C: New test.
2997         * testsuite/libgomp.c++/atomic-10.C: New test.
2998         * testsuite/libgomp.c++/atomic-11.C: New test.
2999         * testsuite/libgomp.c++/atomic-12.C: New test.
3000         * testsuite/libgomp.c++/atomic-13.C: New test.
3001         * testsuite/libgomp.c++/atomic-14.C: New test.
3002         * testsuite/libgomp.c++/atomic-15.C: New test.
3003         * testsuite/libgomp.c++/cancel-for-1.C: New test.
3004         * testsuite/libgomp.c++/cancel-for-2.C: New test.
3005         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
3006         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
3007         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
3008         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
3009         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
3010         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
3011         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
3012         * testsuite/libgomp.c++/cancel-test.h: New file.
3013         * testsuite/libgomp.c++/for-9.C: New test.
3014         * testsuite/libgomp.c++/for-10.C: New test.
3015         * testsuite/libgomp.c++/for-11.C: New test.
3016         * testsuite/libgomp.c++/simd-1.C: New test.
3017         * testsuite/libgomp.c++/simd-2.C: New test.
3018         * testsuite/libgomp.c++/simd-3.C: New test.
3019         * testsuite/libgomp.c++/simd-4.C: New test.
3020         * testsuite/libgomp.c++/simd-5.C: New test.
3021         * testsuite/libgomp.c++/simd-6.C: New test.
3022         * testsuite/libgomp.c++/simd-7.C: New test.
3023         * testsuite/libgomp.c++/simd-8.C: New test.
3024         * testsuite/libgomp.c++/target-1.C: New test.
3025         * testsuite/libgomp.c++/target-2.C: New test.
3026         * testsuite/libgomp.c++/target-2-aux.cc: New file.
3027         * testsuite/libgomp.c++/target-3.C: New test.
3028         * testsuite/libgomp.c++/taskgroup-1.C: New test.
3029         * testsuite/libgomp.c++/udr-1.C: New test.
3030         * testsuite/libgomp.c++/udr-2.C: New test.
3031         * testsuite/libgomp.c++/udr-3.C: New test.
3032         * testsuite/libgomp.c++/udr-4.C: New test.
3033         * testsuite/libgomp.c++/udr-5.C: New test.
3034         * testsuite/libgomp.c++/udr-6.C: New test.
3035         * testsuite/libgomp.c++/udr-7.C: New test.
3036         * testsuite/libgomp.c++/udr-8.C: New test.
3037         * testsuite/libgomp.c++/udr-9.C: New test.
3039 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
3041         PR testsuite/57605
3042         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
3043         ALWAYS_CFLAGS.
3045 2013-09-20  Alan Modra  <amodra@gmail.com>
3047         * configure: Regenerate.
3049 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
3051         * testsuite/libgomp.c/sections-2.c: New test.
3053 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3055         * testsuite/libgomp.fortran/strassen.f90:
3056         Add dg-skip-if aarch64_tiny.
3058 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
3059             Cesar Philippidis  <cesar@codesourcery.com>
3061         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
3062         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
3063         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
3064         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3065         * testsuite/libgomp.graphite/graphite.exp: Likewise.
3066         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
3067         Use dg-runtest rather than gfortran-dg-runtest.
3069 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3071         * testsuite/libgomp.c/icv-2.c: Extend current handling of
3072         Linux-based x86 systems to cover all GNU systems.
3073         * testsuite/libgomp.c/lock-3.c: Likewise.
3074         * testsuite/libgomp.c/pr48591.c: Likewise.
3076 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
3078         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
3079         GNU/Hurd, as done for Linux-based systems.
3081         * config/posix/ptrlock.h: Fix comment.
3083 2013-05-27  Tobias Burnus  <burnus@net-b.de>
3085         PR fortran/57423
3086         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
3087         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
3088         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
3089         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
3090         omp_destroy_nest_lock): Correct arguments to match the one in
3091         the OpenMP spec.
3092         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
3093         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
3094         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
3095         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
3097 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
3099         * testsuite/libgomp.c/loop-13.c: New test.
3100         * testsuite/libgomp.c/loop-14.c: New test.
3101         * testsuite/libgomp.c/loop-15.c: New test.
3102         * testsuite/libgomp.c++/loop-13.C: New test.
3103         * testsuite/libgomp.c++/loop-14.C: New test.
3104         * testsuite/libgomp.c++/loop-15.C: New test.
3106 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
3108         PR middle-end/56217
3109         * testsuite/libgomp.c++/pr56217.C: New test.
3111 2013-02-01  Alan Modra  <amodra@gmail.com>
3113         * task.c (GOMP_task, GOMP_taskwait): Comment.
3115 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
3116             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
3118         PR libgomp/55561
3119         * config/linux/wait.h (do_spin): Use atomic load for addr.
3120         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
3121         for intptr and ptrlock.
3122         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
3123         for ptrlock.
3125 2013-01-22  Alan Modra  <amodra@gmail.com>
3127         PR libgomp/51376
3128         PR libgomp/56073
3129         * task.c (GOMP_task): Revert 2011-12-09 change.
3130         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
3131         barrier to read task->children..
3132         (gomp_barrier_handle_tasks): ..and matching atomic store with
3133         release barrier here when setting parent->children to NULL.
3135 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
3136             Tobias Burnus  <burnus@net-b.de>
3138         PR driver/55884
3139         * testsuite/libgomp.fortran/fortran.exp: Use
3140         -fintrinsic-modules-path= instead of
3141         -fintrinsic-modules-path.
3143 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
3145         Update copyright years.
3147 2012-12-19  Tobias Burnus  <burnus@net-b.de>
3149         * testsuite/libgomp.fortran/fortran.exp: Set
3150         -fintrinsic-modules-path.
3152 2012-12-19  Tobias Burnus  <burnus@net-b.de>
3154         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
3155         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
3157 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
3159         PR libgomp/55411
3160         * team.c (gomp_free_thread): Decrease gomp_managed_threads
3161         if pool had any threads_used.
3163 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
3165         * testsuite/libgomp.c++/pr24455.C: Use
3166         -Wl,-undefined,dynamic_lookup on darwin.
3168 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
3170         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
3172 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
3174         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
3176 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
3177             Jim MacArthur  <jim.macarthur@arm.com>
3178             Marcus Shawcroft  <marcus.shawcroft@arm.com>
3179             Nigel Stephens  <nigel.stephens@arm.com>
3180             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3181             Richard Earnshaw  <rearnsha@arm.com>
3182             Sofiane Naci  <sofiane.naci@arm.com>
3183             Stephen Thomas  <stephen.thomas@arm.com>
3184             Tejas Belagod  <tejas.belagod@arm.com>
3185             Yufeng Zhang  <yufeng.zhang@arm.com>
3187         * configure.tgt: Add AArch64.
3189 2012-10-04  Jason Merrill  <jason@redhat.com>
3191         * testsuite/libgomp.c++/tls-init1.C: New.
3193 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
3195         * configure: Regenerated.
3197 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
3199         * config/linux/mips/futex.h (sys_futex0): Change to static
3200         function with noinline, nomips16 attributes under MIPS16. Adjust
3201         asm statement to place 'li v0,SYS_futex' immediately before
3202         syscall insn.
3204 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
3206         * libgomp.texi (Library Index): Renamed from "Index" to prevent
3207         conflict with index.html on case-insensitive file systems.
3209 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
3211         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
3212         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
3214 2012-07-02  Richard Guenther  <rguenther@suse.de>
3215             Michael Matz  <matz@suse.de>
3216             Tobias Grosser <tobias@grosser.es>
3217             Sebastian Pop <sebpop@gmail.com>
3219         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
3220         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
3221         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
3222         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
3224 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
3226         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
3228 2012-06-22  Richard Guenther  <rguenther@suse.de>
3230         Merge from graphite branch
3231         2012-01-13  Tobias Grosser  <tobias@grosser.es>
3233         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3234         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
3236 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
3238         PR middle-end/53580
3239         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
3240         use GOMP_barrier () call instead.
3241         * testsuite/libgomp.c/pr26943-3.c: Likewise.
3242         * testsuite/libgomp.c/pr26943-4.c: Likewise.
3243         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
3244         call GOMP_barrier instead.
3245         * testsuite/libgomp.fortran/vla5.f90: Likewise.
3247 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
3249         PR libgomp/52993
3250         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
3251         argument to memset call.
3253 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3255         * configure: Regenerated.
3257 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3259         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
3261 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
3263         PR bootstrap/52812
3264         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
3266 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
3268         PR middle-end/52547
3269         * testsuite/libgomp.c/pr52547.c: New test.
3271 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3273         * testsuite/lib/libgomp.exp: load fortran-modules.exp
3275 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3277         * configure.tgt (mips-sgi-irix6*): Remove.
3279 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3281         * configure.tgt (alpha*-dec-osf*): Remove.
3283         * config/osf/sem.h: Remove.
3284         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
3286 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
3288         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
3290 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3292         PR libstdc++/52188
3293         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
3294         Remove ENABLE_SYMVERS_SOL2.
3295         * configure: Regenerate.
3296         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
3297         (PREPROCESS): New variable.
3298         (libgomp.ver): New target.
3299         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
3300         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
3301         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
3302         Use libgomp.ver.
3303         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
3304         * Makefile.in: Regenerate.
3306 2012-02-14  Walter Lee  <walt@tilera.com>
3308         * configure.tgt: Handle tilegx and tilepro.
3309         * config/linux/tile/futex.h: New file.
3311 2012-02-08  Richard Guenther  <rguenther@suse.de>
3313         PR tree-optimization/46886
3314         * testsuite/libgomp.c/pr46886.c: New testcase.
3316 2012-01-25  Matthias Klose  <doko@ubuntu.com>
3318         * config/linux/arm: Remove empty directory.
3319         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
3321 2011-12-09  Alan Modra  <amodra@gmail.com>
3323         PR libgomp/51376
3324         * task.c (GOMP_taskwait): Don't access task->children outside of
3325         task_lock mutex region.
3326         (GOMP_task): Likewise.
3328 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
3330         PR libgomp/51132
3331         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
3332         to file scope.
3333         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
3334         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
3335         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
3336         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
3337         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
3339 2011-12-02  Alan Modra  <amodra@gmail.com>
3341         * config/linux/affinity.c: Use atomic rather than sync builtin.
3342         * config/linux/lock.c: Likewise.
3343         * config/linux/ptrlock.h: Likewise.
3344         * config/linux/ptrlock.c: Likewise.
3345         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
3346         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
3347         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
3348         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
3349         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
3350         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
3351         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
3352         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
3353         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
3354         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
3356 2011-11-30  Alan Modra  <amodra@gmail.com>
3358         PR libgomp/51298
3359         * config/linux/bar.h: Use atomic rather than sync builtins.
3360         * config/linux/bar.c: Likewise.  Add missing acquire
3361         synchronisation on generation field.
3362         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
3363         double unlock.
3365 2011-11-30  Alan Modra  <amodra@gmail.com>
3367         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
3368         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
3369         * config/linux/mutex.h: Use atomic rather than sync builtins.
3370         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
3371         * config/linux/omp-lock.h: Comment fix.
3372         * config/linux/arm/mutex.h: Delete.
3373         * config/linux/powerpc/mutex.h: Delete.
3374         * config/linux/ia64/mutex.h: Delete.
3375         * config/linux/mips/mutex.h: Delete.
3377 2011-11-30  Alan Modra  <amodra@gmail.com>
3379         PR libgomp/51249
3380         * config/linux/sem.h: Rewrite.
3381         * config/linux/sem.c: Rewrite.
3383 2011-11-28  Richard Henderson  <rth@redhat.com>
3385         * libgomp.h (enum memmodel): New.
3387 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
3389         * configure: Regenerate.
3391 2011-10-10  Matthias Klose  <doko@ubuntu.com>
3393         * config/posix95: Remove empty directory.
3395 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
3397         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
3399 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
3401         PR fortran/49792
3402         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
3403         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
3405 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3407         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
3409 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3411         PR libgomp/49965
3412         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
3414 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
3416         * config/linux/proc.h: New.
3417         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
3418         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
3419         (gomp_init_num_threads): Update call to cpuset_popcount.
3420         (get_num_procs): Ditto.
3421         * config/linux/affinity.c (gomp_init_affinity): Call
3422         gomp_cpuset_popcount.
3424 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
3426         PR fortran/42041
3427         PR fortran/46752
3428         * omp.h.in (omp_in_final): New prototype.
3429         * omp_lib.f90.in (omp_in_final): New interface.
3430         (omp_integer_kind, omp_logical_kind): Remove
3431         and replace all its uses in the module with 4.
3432         (openmp_version): Change to 201107.
3433         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
3434         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
3435         kind for the parameters.
3436         (omp_in_final): New external.
3437         (openmp_version): Change to 201107.
3438         * task.c (omp_in_final): New function.
3439         (gomp_init_task): Initialize final_task.
3440         (GOMP_task): Remove unused attribute from flags.  Handle final
3441         tasks.
3442         (GOMP_taskyield): New function.
3443         (omp_in_final): Return true if if (false) or final (true) task
3444         or descendant of final (true).
3445         * fortran.c (omp_in_final_): New function.
3446         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
3447         (GOMP_3.0): Export GOMP_taskyield.
3448         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
3449         variables.
3450         (parse_unsigned_long_list): New function.
3451         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
3452         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
3453         even if parse_affinity returned false.
3454         * config/linux/affinity.c (gomp_init_affinity): Handle
3455         gomp_cpu_affinity_len == 0.
3456         * libgomp_g.h (GOMP_taskyield): New prototype.
3457         * libgomp.h (struct gomp_task): Add final_task field.
3458         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
3459         * team.c (gomp_team_start): Override new task's nthreads_var icv
3460         if list form OMP_NUM_THREADS has been used and it has value for
3461         the new nesting level.
3463         * testsuite/libgomp.c/atomic-11.c: New test.
3464         * testsuite/libgomp.c/atomic-12.c: New test.
3465         * testsuite/libgomp.c/atomic-13.c: New test.
3466         * testsuite/libgomp.c/atomic-14.c: New test.
3467         * testsuite/libgomp.c/reduction-6.c: New test.
3468         * testsuite/libgomp.c/task-5.c: New test.
3469         * testsuite/libgomp.c++/atomic-2.C: New test.
3470         * testsuite/libgomp.c++/atomic-3.C: New test.
3471         * testsuite/libgomp.c++/atomic-4.C: New test.
3472         * testsuite/libgomp.c++/atomic-5.C: New test.
3473         * testsuite/libgomp.c++/atomic-6.C: New test.
3474         * testsuite/libgomp.c++/atomic-7.C: New test.
3475         * testsuite/libgomp.c++/atomic-8.C: New test.
3476         * testsuite/libgomp.c++/atomic-9.C: New test.
3477         * testsuite/libgomp.c++/task-8.C: New test.
3478         * testsuite/libgomp.c++/reduction-4.C: New test.
3479         * testsuite/libgomp.fortran/allocatable7.f90: New test.
3480         * testsuite/libgomp.fortran/allocatable8.f90: New test.
3481         * testsuite/libgomp.fortran/crayptr3.f90: New test.
3482         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
3483         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
3484         * testsuite/libgomp.fortran/pointer1.f90: New test.
3485         * testsuite/libgomp.fortran/pointer2.f90: New test.
3486         * testsuite/libgomp.fortran/task4.f90: New test.
3488 2011-08-02  Tobias Burnus  <burnus@net-b.de>
3490         * libgomp.texi: Update OpenMP spec references to 3.1.
3491         (omp_in_final,OMP_PROC_BIND): New sections.
3492         (OMP_NUM_THREADS): Document that the value can be now a list.
3493         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
3495 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
3497         * config/linux/x86/futex.h: Check __x86_64__ instead of
3498         __LP64__.
3500 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
3502         PR middle-end/49897
3503         PR middle-end/49898
3504         * testsuite/libgomp.c/pr49897-1.c: New test.
3505         * testsuite/libgomp.c/pr49897-2.c: New test.
3506         * testsuite/libgomp.c/pr49898-1.c: New test.
3507         * testsuite/libgomp.c/pr49898-2.c: New test.
3509 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
3511         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
3512         for ia32 instead of ilp32.
3514         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
3515         * testsuite/libgomp.c/atomic-6.c: Likewise.
3517 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
3519         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
3520         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
3522 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3524         PR libgomp/45351
3525         * config/osf/sem.h: New file.
3526         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
3528 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3530         PR target/49541
3531         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
3532         ldflags.
3534 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
3536         * config/linux/wait.h (do_spin): New inline, largely copied
3537         from do_wait, just don't do futex_wait here, instead return true if
3538         it should be done.
3539         (do_wait): Implement using do_spin.
3540         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
3541         to prototype.
3542         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
3543         __sync_bool_compare_and_swap, pass the oldval to
3544         gomp_mutex_lock_slow.
3545         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
3546         If all mutex contenders are just spinning and not sleeping, don't
3547         change state to 2 unnecessarily.  Optimize the loop when state has
3548         already become 2 to use just one atomic operation per loop instead
3549         of two.
3550         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
3551         to prototype.
3552         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
3553         __sync_bool_compare_and_swap, pass the oldval to
3554         gomp_mutex_lock_slow.
3556 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
3558         PR libgomp/49490
3559         * iter.c (gomp_iter_static_next): For chunk size 0
3560         only use n ceil/ nthreads size for the first
3561         n % nthreads threads in the team instead of
3562         all threads except for the last few ones which
3563         get less work or none at all.
3564         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
3565         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
3566         chunk argument, set run_sched_modifier to 0 for static
3567         resp. 1 for other kinds.  If chunk argument is 0
3568         and not static, set value to 1.
3570 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
3572         PR c++/49043
3573         * testsuite/libgomp.c++/pr49043.C: New test.
3575         PR c++/48869
3576         * testsuite/libgomp.c++/pr48869.C: New test.
3578 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
3580         PR fortran/48894
3581         * fortran.c: Include limits.h.
3582         (TO_INT): Define.
3583         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
3584         *set.
3585         (omp_set_num_threads_8_, omp_set_schedule_8_,
3586         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
3587         omp_get_team_size_8_): Use TO_INT macro.
3588         * testsuite/libgomp.fortran/pr48894.f90: New test.
3590 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
3592         PR middle-end/48591
3593         * testsuite/libgomp.c/pr48591.c: New test.
3595 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3597         PR bootstrap/48135
3598         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
3599         * configure: Regenerate.
3601 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
3603         PR fortran/47886
3604         * testsuite/libgomp.fortran/task3.f90: New test.
3606 2011-02-24  Tobias Burnus  <burnus@net-b.de>
3608         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
3610 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
3612         PR libgomp/47854
3613         * libgomp.texi (omp_get_wtime): Don't say time in the past
3614         must be Unix Epoch.
3616 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
3618         PR libgomp/47804
3619         * testsuite/libgomp.fortran/fortran.exp: Check for both
3620         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
3621         but $blddir != "", still append ${blddir}/${lang_library_path}
3622         to ld_library_path.
3624 2011-02-16  Tobias Burnus  <burnus@net-b.de>
3626         PR libgomp/47758
3627         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
3628         of libquadmath.a before adding its libpath to ldflags.
3630 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
3632         PR libgomp/47731
3633         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
3634         to FUTEX_WAIT futex syscall.
3635         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
3637 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3639         * configure: Regenerate.
3641 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
3643         PR libstdc++/36104
3644         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
3646 2011-01-16  Gerald Pfeifer
3648         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
3650 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
3652         PR fortran/46874
3653         * libgomp.fortran/allocatable6.f90: New test.
3655 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3657         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
3658         * configure: Regenerate.
3660 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3662         PR target/40125
3663         PR lto/46695
3664         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
3665         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
3666         * aclocal.m4: Regenerate.
3667         * configure: Regenerate.
3668         * Makefile.in: Regenerate.
3669         * testsuite/Makefile.in: Regenerate.
3671 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
3673         PR fortran/46753
3674         * libgomp.fortran/pr46753.f90: New test.
3676         PR libgomp/43706
3677         * env.c (initialize_env): Default to spin count 300000
3678         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
3679         is specified.
3681         PR libgomp/45240
3682         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
3683         at the end if sync builtins aren't supported.
3685 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3687         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
3689 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3691         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
3693 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
3695         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
3697 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3698             Tobias Burnus  <burnus@net-b.de>
3700         PR fortran/32049
3701         * configure.ac:
3702         * configure: Regenerate.
3704 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3706         * config/linux/futex.h: New.
3707         * config/linux/arm/mutex.h: New.
3708         * configure.tgt (arm*-*-linux*): Add config path.
3710 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3712         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3714 2010-09-23  Tobias Burnus  <burnus@net-b.de>
3716         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
3717         Change Fortran datatype to LOGICAL.
3718         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
3719         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
3721 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3723         * configure: Regenerate.
3725 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
3727         * libgomp.texi: Add function keyword to a couple of Fortran
3728         interfaces, use integer instead of int for Fortran.
3730 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
3732         * libgomp.texi: Fix spelling and pasto problems throughout.
3733         Adjust prototypes to match code.
3735 2010-07-24  Tobias Burnus  <burnus@net-b.de>
3737         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
3738         silence -fwhole-file warning.
3740 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3742         * configure.tgt (*-*-solaris2.[56]*): Removed.
3744 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3746         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
3747         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
3748         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
3749         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
3750         targetting solaris2*.
3751         * configure: Regenerate.
3752         * config.h.in: Regenerate.
3754         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
3755         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
3756         Add libgomp_version_dep.
3757         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
3758         versioning.
3759         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
3760         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
3761         * Makefile.in: Regenerate.
3763         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
3764         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3765         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
3766         to common block, protected by
3767         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
3769 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3771         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
3773 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
3775         PR bootstrap/43170
3776         * configure: Regenerate.
3778 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3780         PR other/43620
3781         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
3782         * configure: Regenerate.
3783         * Makefile.in: Regenerate.
3784         * testsuite/Makefile.in: Regenerate.
3786 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3788         PR c/43893
3789         * testsuite/libgomp.c/pr43893.c: New test.
3790         * testsuite/libgomp.c++/pr43893.C: New test.
3792 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3794         PR middle-end/43570
3795         * testsuite/libgomp.fortran/vla8.f90: New test.
3797 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3799         PR libgomp/43706
3800         * config/linux/affinity.c (gomp_init_affinity): Decrease
3801         gomp_available_cpus if affinity mask confines the process to fewer
3802         CPUs.
3803         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
3804         non-NULL, just return gomp_available_cpus.
3806         PR libgomp/43569
3807         * sections.c (gomp_sections_init): Initialize ws->mode.
3809 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3811         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
3812         not unused bar variable.
3813         * configure: Regenerate.
3815 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3817         * Makefile.in: Regenerate.
3818         * aclocal.m4: Regenerate.
3819         * testsuite/Makefile.in: Regenerate.
3821 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3823         PR libgomp/42942
3824         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
3825         (initialize_env): Adjust callers.
3826         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
3827         when the argument is 0.
3829         * testsuite/libgomp.c/pr42942.c: New test.
3831 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
3833         PR middle-end/42644
3834         PR middle-end/42130
3835         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
3836         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
3838 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3840         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
3841         * testsuite/libgomp.c++/task-6.C: Likewise.
3843 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
3845         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
3847 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
3849         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
3850         * configure: Regenerate.
3852 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
3854         PR fortran/42866
3855         * testsuite/libgomp.fortran/allocatable5.f90: New test.
3857 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
3859         * configure.ac: Test for executability of GFORTRAN.
3860         * configure: Regenerate.
3862 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3864         * configure: Regenerate.
3866 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
3868         PR libgomp/42602
3869         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
3871 2010-01-03  Richard Guenther  <rguenther@suse.de>
3873         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
3875 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
3877         * testsuite/libgomp.graphite/pr4118.c: New.
3879 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3881         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
3882         for darwin, protect the test with require-effective-target tls_runtime.
3883         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
3885 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
3887         PR target/41605
3888         * testsuite/lib/libgomp.exp: Provide -B options to allow for
3889         link spec %s substitutions for static libraries.
3891 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
3893         PR testsuite/42135
3894         * libgomp.graphite/force-parallel-2.c: Reduce array size.
3896 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3898         * Makefile.in: Regenerate.
3899         * configure: Regenerate.
3900         * testsuite/Makefile.in: Regenerate.
3902 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
3904         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
3905         settings for LC_ALL and LANG.
3907 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
3909         PR fortran/42162
3910         * testsuite/libgomp.fortran/pr42162.f90: New test.
3912 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
3914         PR middle-end/42029
3915         * testsuite/libgomp.c/pr42029.c: New test.
3917 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
3919         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
3920         *s.  Accept ld version without text in ()s.
3921         * configure: Regenerated.
3923 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
3925         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
3927 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3929         PR libgomp/41418
3930         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
3931         or a hyphen (happens with fortran language disabled).
3932         * configure: Regenerate.
3934 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3936         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
3937         use sed script portable to Solaris /bin/sed for extracting ld
3938         version.
3939         * configure: Regenerate.
3941 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
3943         * testsuite/libgomp.graphite/bounds.c: New test.
3945 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3947         * Makefile.am (libgomp_la_LINK): New.
3948         * Makefile.in: Regenerate.
3950 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3952         * configure.ac (AC_PREREQ): Bump to 2.64.
3954 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3956         * Makefile.am (install-html, install-pdf): Remove.
3957         * Makefile.in: Regenerate.
3959         * Makefile.in: Regenerate.
3960         * aclocal.m4: Regenerate.
3961         * config.h.in: Regenerate.
3962         * configure: Regenerate.
3963         * testsuite/Makefile.in: Regenerate.
3965 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3967         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
3968         * Makefile.in: Regenerate.
3970 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
3972         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
3973         * Makefile.in: Regenerate.
3975 2009-08-19  Tobias Burnus  <burnus@net-b.de>
3977         PR fortran/41102
3978         omp_lib.h.in: Fix -std=f95 errors.
3981 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
3983         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
3984         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
3985         * testsuite/libgomp.graphite/graphite.exp: New.
3987 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
3989         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
3990         only build.
3992 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
3994         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
3995         needed memory barrier semantics.
3996         * config/linux/mips/mutex.h: New file.
3998 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4000         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
4002 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
4004         * configure: Regenerate.
4006 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
4008         PR testsuite/40699
4009         PR testsuite/40707
4010         PR testsuite/40709
4011         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
4012         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
4013         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
4015 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
4017         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
4018         options when choosing a multilib.
4020 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
4022         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
4023         ld_library_path.  Use add_path.  Add just find_libgcc_s to
4024         ld_library_path, not every libgcc multilib directory.
4025         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
4026         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
4027         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
4028         Use add_path.
4029         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
4031 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
4033         * Makefile.am (LTLDFLAGS): Define.
4034         (LINK): Define.
4035         * Makefile.in: Regenerate.
4037 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
4039         PR fortran/39718
4040         * testsuite/libgomp.fortran/fortran.exp: Don't link with
4041         libgfortranbegin, check existence of libgfortran.a instead of
4042         libgfortranbegin.a.
4044 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
4046         PR libgomp/40174
4047         * team.c (gomp_thread_start): Destroy thr->release semaphore.
4048         (gomp_free_pool_helper): Likewise.
4050 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
4051             Jakub Jelinek  <jakub@redhat.com>
4053         PR fortran/35423
4054         * testsuite/libgomp.fortran/workshare2.f90: New test.
4056 2009-04-09  Nick Clifton  <nickc@redhat.com>
4058         * iter.c: Change copyright header to refer to version 3 of the
4059         GNU General Public License with version 3.1 of the GCC Runtime
4060         Library Exception and to point readers at the COPYING3 and
4061         COPYING3.RUNTIME files and the FSF's license web page.
4062         * alloc.c: Likewise.
4063         * barrier.c: Likewise.
4064         * config/bsd/proc.c: Likewise.
4065         * config/linux/affinity.c: Likewise.
4066         * config/linux/alpha/futex.h: Likewise.
4067         * config/linux/bar.c: Likewise.
4068         * config/linux/bar.h: Likewise.
4069         * config/linux/ia64/futex.h: Likewise.
4070         * config/linux/ia64/mutex.h: Likewise.
4071         * config/linux/lock.c: Likewise.
4072         * config/linux/mips/futex.h: Likewise.
4073         * config/linux/mutex.c: Likewise.
4074         * config/linux/mutex.h: Likewise.
4075         * config/linux/powerpc/futex.h: Likewise.
4076         * config/linux/proc.c: Likewise.
4077         * config/linux/ptrlock.c: Likewise.
4078         * config/linux/ptrlock.h: Likewise.
4079         * config/linux/s390/futex.h: Likewise.
4080         * config/linux/sem.c: Likewise.
4081         * config/linux/sem.h: Likewise.
4082         * config/linux/sparc/futex.h: Likewise.
4083         * config/linux/wait.h: Likewise.
4084         * config/linux/x86/futex.h: Likewise.
4085         * config/mingw32/proc.c: Likewise.
4086         * config/mingw32/time.c: Likewise.
4087         * config/posix/affinity.c: Likewise.
4088         * config/posix/bar.c: Likewise.
4089         * config/posix/bar.h: Likewise.
4090         * config/posix/lock.c: Likewise.
4091         * config/posix/mutex.h: Likewise.
4092         * config/posix/proc.c: Likewise.
4093         * config/posix/ptrlock.h: Likewise.
4094         * config/posix/sem.c: Likewise.
4095         * config/posix/sem.h: Likewise.
4096         * config/posix/time.c: Likewise.
4097         * config/posix95/lock.c: Likewise.
4098         * critical.c: Likewise.
4099         * env.c: Likewise.
4100         * error.c: Likewise.
4101         * fortran.c: Likewise.
4102         * iter_ull.c: Likewise.
4103         * libgomp.h: Likewise.
4104         * libgomp_f.h.in: Likewise.
4105         * libgomp_g.h: Likewise.
4106         * loop.c: Likewise.
4107         * loop_ull.c: Likewise.
4108         * omp.h.in: Likewise.
4109         * omp_lib.f90.in: Likewise.
4110         * omp_lib.h.in: Likewise.
4111         * ordered.c: Likewise.
4112         * parallel.c: Likewise.
4113         * sections.c: Likewise.
4114         * single.c: Likewise.
4115         * task.c: Likewise.
4116         * team.c: Likewise.
4117         * work.c: Likewise.
4119 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4121         * testsuite/config/default.exp: Change copyright header to refer to
4122         version 3 of the GNU General Public License and to point readers
4123         at the COPYING3 file and the FSF's license web page.
4125 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4127         PR middle-end/39573
4128         * libgomp.c++/pr39573.C: New test.
4130 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4132         PR other/39591
4133         * testsuite/libgomp.c/pr39591-1.c: New test.
4134         * testsuite/libgomp.c/pr39591-2.c: New test.
4135         * testsuite/libgomp.c/pr39591-3.c: New test.
4137 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
4139         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
4140         * testsuite/libgomp.c/atomic-6.c: Ditto.
4142 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
4144         PR c/39495
4145         * testsuite/libgomp.c/loop-12.c: New test.
4146         * testsuite/libgomp.c/loop-11.c: New test.
4147         * testsuite/libgomp.c++/loop-11.C: New test.
4148         * testsuite/libgomp.c++/loop-12.C: New test.
4149         * testsuite/libgomp.c++/for-8.C: New test.
4151 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4153         * configure: Regenerate.
4155 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
4157         PR middle-end/39154
4158         * testsuite/libgomp.c/pr39154.c: New test.
4160 2009-01-30  Ian Lance Taylor  <iant@google.com>
4162         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
4163         libgomp_ld_is_gold.  Get gold version number.
4164         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
4165         * configure: Rebuild.
4167 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
4169         * testsuite/lib/libgomp.exp: Add -B option for targets that
4170         use libgfortran.a%s in their specs.
4172 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
4174         PR libgomp/38086
4175         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
4176         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
4177         HAVE_AS_SYMVER_DIRECTIVE is not defined.
4178         * configure: Regenerated.
4179         * config.h.in: Likewise.
4181 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
4183         PR c++/38650
4184         * testsuite/libgomp.c/pr38650.c: New test.
4185         * testsuite/libgomp.c++/pr38650.C: New test.
4187 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
4189         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
4191 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
4193         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
4195 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4197         * configure: Regenerate.
4199 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
4201         PR middle-end/36802
4202         * testsuite/libgomp.c/pr36802-1.c: New test.
4203         * testsuite/libgomp.c/pr36802-2.c: New test.
4204         * testsuite/libgomp.c/pr36802-3.c: New test.
4206 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
4208         PR libgomp/38270
4209         * config/linux/powerpc/mutex.h: New.
4211 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
4213         PR c++/38257
4214         * testsuite/libgomp.c++/for-7.C: New test.
4216         PR c++/38348
4217         * testsuite/libgomp.c++/for-6.C: New test.
4219 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
4221         PR testsuite/28870
4222         * testsuite/lib/libgomp.exp: Include new timeout library files.
4223         (libgomp_target_compile): Set timeout value from new proc.
4225 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
4227         PR libgomp/37938
4228         * config/linux/ia64/mutex.h: New.
4230 2008-11-04  Tobias Burnus  <burnus@net-b.de>
4232         PR libgomp/37935
4233         * libgomp.texi (Runtime library routines, environment variables):
4234         Update for OpenMP version 3.0.
4236 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
4237             Steve Ellcey  <sje@cup.hp.com>
4239         * configure: Regenerate for new libtool.
4240         * Makefile.in: Ditto.
4241         * testsuite/Makefile.in: Ditto.
4243 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
4244             Andreas Tobler  <a.tobler@schweiz.org>
4246         * config/bsd/proc.c: New file.
4247         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
4248         * configure.ac: Check for header <sys/sysctl.h>
4249         * configure: Regenerate.
4250         * config.h.in: Likewise.
4252 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
4254         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
4256 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4258         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
4259         * Makefile.in: Regenerated.
4260         * testsuite/Makefile.in: Regenerated.
4262 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
4264         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
4265         depend on blddir if blddir exists.
4266         (libgomp_target_compile): Likewise.
4267         * testsuite/libgomp.c++/c++.exp: Likewise.
4268         * testsuite/libgomp.fortran/fortran.exp: Likewise.
4270 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4272         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
4273         Do not list GPL as Invariant Section.
4275 2008-07-28  Ilie Garbacea  <ilie@mips.com>
4276             Chao-ying Fu  <fu@mips.com>
4278         * configure.tgt: Enable futex for MIPS.
4279         * config/linux/mips/futex.h: New file.
4281 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
4283         * team.c (gomp_team_end): Free team immediately if it has
4284         just one thread.
4286 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
4288         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
4289         * testsuite/libgomp.fortran/fortran.exp: Same.
4290         * testsuite/libgomp.c/c.exp: Same.
4291         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
4292         directory to library path first.
4294 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
4296         * env.c (parse_stacksize): Add cast to avoid warning.
4297         (parse_spincount): Likewise.
4299 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
4301         * testsuite/libgomp.c/loop-10.c: New test.
4302         * libgomp.c/loop-3.c (main): Add lastprivate clause.
4303         * libgomp.c++/loop-6.C (main): Likewise.
4305         PR debug/36617
4306         * testsuite/libgomp.c/debug-1.c: New test.
4308 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
4310         * testsuite/libgomp.c/nqueens-1.c: New test.
4312         PR c++/36523
4313         * testsuite/libgomp.c++/task-7.C: New function.
4315 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4317         * configure: Regenerate.
4319 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4321         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
4322         mutex when HAVE_SYNC_BUILTINS isn't defined.
4324 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4326         * libgomp.texi (omp_test_lock): Fix typo.
4328 2008-06-12  Tobias Burnus  <burnus@net-b.de>
4330         * omp_lib.f90.in: Add "implicit none".
4332 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4334         PR middle-end/36506
4335         * testsuite/libgomp.c/reduction-5.c: New test.
4337 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
4339         * libgomp.h (struct gomp_task): Add in_tied_task field.
4340         * task.c (gomp_init_task): Initialize it.
4341         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
4342         unconditionally.  Don't call gomp_team_barrier_wake if
4343         current task is implicit or if(0) from implicit and number of
4344         running tasks is equal to nthreads - 1.
4346         PR libgomp/36471
4347         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
4348         omp_get_team_size_8): Fix pastos.
4350         PR libgomp/36469
4351         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
4352         * configure: Regenerated.
4353         * config.h.in: Regenerated.
4354         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
4355         defined.
4357 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
4359         PR bootstrap/36452
4360         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
4361         (GOMP_loop_ull_dynamic_start): Likewise.
4362         (GOMP_loop_ull_guided_start): Likewise.
4363         (GOMP_loop_ull_ordered_static_start): Likewise.
4364         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
4365         (GOMP_loop_ull_ordered_guided_start): Likewise.
4367 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4368             Richard Henderson  <rth@redhat.com>
4369             Ulrich Drepper  <drepper@redhat.com>
4370             Jakob Blomer  <jakob.blomer@ira.uka.de>
4372         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
4373         Substitute also OMP_*LOCK_25*.
4374         * configure: Regenerated.
4375         * config.h.in: Regenerated.
4376         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
4377         ptrlock.c and task.c.
4378         * Makefile.in: Regenerated.
4379         * testsuite/Makefile.in: Regenerated.
4380         * task.c: New file.
4381         * loop_ull.c: New file.
4382         * iter_ull.c: New file.
4383         * libgomp.h: Include ptrlock.h.
4384         (enum gomp_task_kind): New type.
4385         (struct gomp_team): Add task_lock, task_queue, task_count,
4386         task_running_count, single_count fields.  Add
4387         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
4388         Remove work_share_lock, generation_mask,
4389         oldest_live_gen, num_live_gen and init_work_shares fields, add
4390         work work_share_list_alloc, work_share_list_free and work_share_chunk
4391         fields.  Change work_shares from pointer to pointers into an array.
4392         Change ordered_release field into gomp_sem_t ** from flexible array
4393         member.  Add implicit_task and initial_work_shares fields.
4394         Move close to the end of the struct.
4395         (struct gomp_team_state): Add single_count, last_work_share,
4396         active_level and level fields, remove work_share_generation.
4397         (gomp_barrier_handle_tasks): New prototype.
4398         (gomp_finish_task): New inline function.
4399         (struct gomp_work_share): Move chunk_size, end, incr into
4400         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
4401         next_ll fields.  Reshuffle fields.  Add next_alloc,
4402         next_ws, next_free and inline_ordered_team_ids fields, change
4403         ordered_team_ids into pointer from flexible array member.
4404         Add mode field.  Put lock and next into a different cache line
4405         from most of the write-once fields.
4406         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
4407         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
4408         gomp_iter_ull_guided_next): New prototypes.
4409         (gomp_new_icv): New prototype.
4410         (struct gomp_thread): Add thread_pool and task fields.
4411         (struct gomp_thread_pool): New type.
4412         (gomp_new_team): New prototype.
4413         (gomp_team_start): Change type of last argument.
4414         (gomp_new_work_share): Removed.
4415         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
4416         (gomp_work_share_init_done): New static inline.
4417         (gomp_throttled_spin_count_var, gomp_available_cpus,
4418         gomp_managed_threads): New extern decls.
4419         (gomp_init_task): New prototype.
4420         (gomp_spin_count_var): New extern var decl.
4421         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
4422         or no alias support, or if not PIC.
4423         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
4424         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
4425         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
4426         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
4427         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
4428         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
4429         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
4430         gomp_test_nest_lock_25): New prototypes.
4431         (omp_lock_symver, strong_alias): Define.
4432         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
4433         decls.
4434         (gomp_end_task): New.
4435         (struct gomp_task_icv, gomp_global_icv): New.
4436         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
4437         (struct gomp_task): New.
4438         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
4439         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
4440         (gomp_icv): New.
4441         (gomp_schedule_type): Reorder enum to match
4442         omp_sched_t.
4443         * team.c (struct gomp_thread_start_data): Add thread_pool and task
4444         fields.
4445         (gomp_thread_start): Add gomp_team_barrier_wait call.
4446         For non-nested case remove clearing of docked thread thr fields.
4447         Use pool fields instead of global gomp_* variables.  Use
4448         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
4449         Create tasks for each member thread.
4450         (free_team): Only destroy team barrier, task_lock here and free it.
4451         (gomp_free_thread): Free last_team if non-NULL.
4452         (gomp_team_end): Call gomp_team_barrier_wait instead of
4453         gomp_barrier_wait.  For nested case call one extra
4454         gomp_barrier_wait.  Move here some destruction from free_team.
4455         Call free_team on pool->last_team if any, rather than freeing
4456         current team.  Destroy work_share_list_free_lock ifndef
4457         HAVE_SYNC_BUILTINS.
4458         (gomp_new_icv): New function.
4459         (gomp_threads, gomp_threads_size, gomp_threads_used,
4460         gomp_threads_dock): Removed.
4461         (gomp_thread_destructor): New variable.
4462         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
4463         functions.
4464         (gomp_team_start): Create new pool if current thread doesn't have
4465         one.  Use pool fields instead of global gomp_* variables.
4466         Initialize thread_pool field for new threads.  Clear single_count.
4467         Change last argument from ws to team, don't create
4468         new team, set ts.work_share to &team->work_shares[0] and clear
4469         ts.last_work_share.  Don't clear ts.work_share_generation.
4470         If number of threads changed, adjust atomically gomp_managed_threads.
4471         Use gomp_init_task instead of gomp_new_task,
4472         set thr->task to the corresponding implicit_task array entry.
4473         Create tasks for each member thread.  Initialize ts.level.
4474         (initialize_team): Call pthread_key_create on
4475         gomp_thread_destructor.
4476         (team_destructor): New function.
4477         (new_team): Removed.
4478         (gomp_new_team): New function.
4479         (free_team): Free gomp_work_share blocks chained through next_alloc,
4480         instead of freeing work_shares and destroying work_share_lock.
4481         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
4482         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
4483         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
4484         of gomp_barrier_wait.
4485         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
4486         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
4487         if gomp_work_share_start returned true.  Don't unlock ws->lock.
4488         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
4489         of gomp_barrier_wait.
4490         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
4491         gomp_work_share_init_done if gomp_work_share_start returned true.
4492         Don't unlock ws->lock.
4493         * work.c: Include stddef.h.
4494         (free_work_share): Use work_share_list_free_lock instead
4495         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
4496         Call gomp_fini_work_share and then either free ws if orphaned, or
4497         put it into work_share_list_free list of the current team.
4498         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
4499         functions.
4500         (gomp_work_share_start, gomp_work_share_end,
4501         gomp_work_share_end_nowait): Rewritten.
4502         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
4503         (openmp_version): Set to 200805.
4504         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
4505         omp_sched_guided, omp_sched_auto): New parameters.
4506         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4507         omp_set_max_active_levels, omp_get_max_active_levels,
4508         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4509         omp_get_active_level): New interfaces.
4510         * omp_lib.h.in (openmp_version): Set to 200805.
4511         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
4512         omp_sched_guided, omp_sched_auto): New parameters.
4513         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4514         omp_set_max_active_levels, omp_get_max_active_levels,
4515         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4516         omp_get_active_level): New externals.
4517         * loop.c: Include limits.h.
4518         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
4519         GFS_AUTO.
4520         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
4521         Likewise.  Use gomp_icv.
4522         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
4523         ts.static_trip here.
4524         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
4525         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
4526         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
4527         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
4528         don't unlock ws->lock, otherwise lock it.
4529         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
4530         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
4531         (gomp_parallel_loop_start): Call gomp_new_team instead of
4532         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
4533         Adjust gomp_team_start caller.  Pass 0 as second argument to
4534         gomp_resolve_num_threads.
4535         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
4536         If adding ws->chunk_size nthreads + 1 times after end won't
4537         overflow, set ws->mode to 1.
4538         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
4539         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
4540         GOMP_loop_ull_ordered_static_start,
4541         GOMP_loop_ull_ordered_dynamic_start,
4542         GOMP_loop_ull_ordered_guided_start,
4543         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
4544         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
4545         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
4546         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
4547         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
4548         prototypes.
4549         * libgomp.map: Export lock routines also @@OMP_2.0.
4550         (GOMP_loop_ordered_dynamic_first,
4551         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
4552         GOMP_loop_ordered_static_first): Remove.
4553         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
4554         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
4555         GOMP_loop_ull_ordered_dynamic_next,
4556         GOMP_loop_ull_ordered_dynamic_start,
4557         GOMP_loop_ull_ordered_guided_next,
4558         GOMP_loop_ull_ordered_guided_start,
4559         GOMP_loop_ull_ordered_runtime_next,
4560         GOMP_loop_ull_ordered_runtime_start,
4561         GOMP_loop_ull_ordered_static_next,
4562         GOMP_loop_ull_ordered_static_start,
4563         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
4564         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
4565         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
4566         (omp_set_schedule, omp_get_schedule,
4567         omp_get_thread_limit, omp_set_max_active_levels,
4568         omp_get_max_active_levels, omp_get_level,
4569         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
4570         omp_set_schedule_, omp_set_schedule_8_,
4571         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
4572         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
4573         omp_get_max_active_levels_, omp_get_level_,
4574         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
4575         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
4576         New exports @@OMP_3.0.
4577         * omp.h.in (omp_sched_t): New type.
4578         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4579         omp_set_max_active_levels, omp_get_max_active_levels,
4580         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
4581         omp_get_active_level): New prototypes.
4582         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
4583         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
4584         gomp_thread_limit_var, gomp_remaining_threads_count,
4585         gomp_remaining_threads_lock): New variables.
4586         (parse_spincount): New function.
4587         (initialize_env): Call gomp_init_num_threads unconditionally.
4588         Initialize gomp_available_cpus.  Call parse_spincount,
4589         initialize gomp_{,throttled_}spin_count_var
4590         depending on presence and value of OMP_WAIT_POLICY and
4591         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
4592         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
4593         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
4594         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
4595         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
4596         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
4597         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
4598         (gomp_global_icv): New.
4599         (parse_schedule): Use it.  Parse "auto".
4600         (omp_set_num_threads): Use gomp_icv.
4601         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
4602         Likewise.
4603         (omp_get_max_threads): Move from parallel.c.
4604         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
4605         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
4606         add ialias.
4607         (parse_stacksize, parse_wait_policy): New functions.
4608         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
4609         both wrappers for compatibility and new locks.
4610         (omp_set_schedule, omp_get_schedule,
4611         omp_get_thread_limit, omp_set_max_active_levels,
4612         omp_get_max_active_levels, omp_get_level,
4613         omp_get_ancestor_thread_num, omp_get_team_size,
4614         omp_get_active_level): New ialias_redirect.
4615         (omp_set_schedule_, omp_set_schedule_8_,
4616         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
4617         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
4618         omp_get_max_active_levels_, omp_get_level_,
4619         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
4620         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
4621         New functions.
4622         * parallel.c: Include limits.h.
4623         (gomp_resolve_num_threads): Add count argument.  Rewritten.
4624         (GOMP_parallel_start): Call gomp_new_team and pass that as last
4625         argument to gomp_team_start.  Pass 0 as second argument to
4626         gomp_resolve_num_threads.
4627         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
4628         if gomp_thread_limit_var != ULONG_MAX.
4629         (omp_in_parallel): Implement using ts.active_level.
4630         (omp_get_max_threads): Move to env.c.
4631         (omp_get_level, omp_get_ancestor_thread_num,
4632         omp_get_team_size, omp_get_active_level): New functions,
4633         add ialias.
4634         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
4635         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
4636         gomp_iter_dynamic_next instead of the _locked variant and don't take
4637         lock around it, otherwise acquire it before calling
4638         gomp_iter_dynamic_next_locked.
4639         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
4640         gomp_iter_dynamic_next instead of the _locked variant and don't take
4641         lock around it.
4642         (GOMP_parallel_sections_start): Call gomp_new_team instead of
4643         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
4644         Adjust gomp_team_start caller.  Pass count as second argument to
4645         gomp_resolve_num_threads, don't adjust num_threads after the call.
4646         Use gomp_icv.
4647         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
4648         ws->chunk_size by incr.
4649         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
4650         code.
4651         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
4652         types.
4653         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
4654         (omp_check_defines): Check even the compat defines.
4655         * config/linux/ptrlock.c: New file.
4656         * config/linux/ptrlock.h: New file.
4657         * config/linux/wait.h: New file.
4658         * config/posix/ptrlock.c: New file.
4659         * config/posix/ptrlock.h: New file.
4660         * config/linux/bar.h (gomp_team_barrier_wait,
4661         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
4662         (gomp_team_barrier_set_task_pending,
4663         gomp_team_barrier_clear_task_pending,
4664         gomp_team_barrier_set_waiting_for_tasks,
4665         gomp_team_barrier_waiting_for_tasks,
4666         gomp_team_barrier_done): New inlines.
4667         (gomp_barrier_t): Rewritten.
4668         (gomp_barrier_state_t): New typedef.
4669         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
4670         gomp_barrier_wait_start): Rewritten.
4671         (gomp_barrier_wait_end): Change second argument to
4672         gomp_barrier_state_t.
4673         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
4674         inlines.
4675         * config/linux/bar.c: Include wait.h instead of libgomp.h and
4676         futex.h.
4677         (gomp_barrier_wait_end): Rewritten.
4678         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
4679         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
4680         * config/posix/bar.h (gomp_barrier_t): Add generation field.
4681         (gomp_barrier_state_t): New typedef.
4682         (gomp_team_barrier_wait,
4683         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
4684         (gomp_barrier_wait_start): Or all but low 2 bits from generation
4685         into the return value.  Return gomp_barrier_state_t.
4686         (gomp_team_barrier_set_task_pending,
4687         gomp_team_barrier_clear_task_pending,
4688         gomp_team_barrier_set_waiting_for_tasks,
4689         gomp_team_barrier_waiting_for_tasks,
4690         gomp_team_barrier_done): New inlines.
4691         (gomp_barrier_wait_end): Change second argument to
4692         gomp_barrier_state_t.
4693         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
4694         inlines.
4695         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
4696         (gomp_barrier_wait_end): Change second argument to
4697         gomp_barrier_state_t.
4698         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
4699         gomp_team_barrier_wake): New functions.
4700         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
4701         futex.h.
4702         (gomp_futex_wake, gomp_futex_wait): New variables.
4703         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
4704         * config/linux/lock.c: Rewrite to make locks task owned,
4705         for backwards compatibility provide the old entrypoints
4706         if symbol versioning.  Include wait.h instead of libgomp.h and
4707         futex.h.
4708         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
4709         * config/posix95/lock.c: Rewrite to make locks task owned,
4710         for backwards compatibility provide the old entrypoints
4711         if symbol versioning.
4712         * config/posix/lock.c: Rewrite to make locks task owned,
4713         for backwards compatibility provide the old entrypoints
4714         if symbol versioning.
4715         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
4716         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
4717         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
4718         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4719         (sys_futex0): Return error code.
4720         (futex_wake, futex_wait): If ENOSYS was returned, clear
4721         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4722         (cpu_relax, atomic_write_barrier): New static inlines.
4723         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4724         (futex_wake, futex_wait): If ENOSYS was returned, clear
4725         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4726         (cpu_relax, atomic_write_barrier): New static inlines.
4727         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4728         (sys_futex0): Return error code.
4729         (futex_wake, futex_wait): If ENOSYS was returned, clear
4730         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4731         (cpu_relax, atomic_write_barrier): New static inlines.
4732         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4733         (sys_futex0): Return error code.
4734         (futex_wake, futex_wait): If ENOSYS was returned, clear
4735         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4736         (cpu_relax, atomic_write_barrier): New static inlines.
4737         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4738         (sys_futex0): Return error code.
4739         (futex_wake, futex_wait): If ENOSYS was returned, clear
4740         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4741         (cpu_relax, atomic_write_barrier): New static inlines.
4742         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
4743         (sys_futex0): Return error code.
4744         (futex_wake, futex_wait): If ENOSYS was returned, clear
4745         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
4746         (cpu_relax, atomic_write_barrier): New static inlines.
4747         * config/linux/sem.c: Include wait.h instead of libgomp.h and
4748         futex.h.
4749         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
4750         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
4751         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
4752         types.
4753         (omp_nest_lock_t): Change owner into void *, add lock field.
4754         * config/posix95/omp-lock.h: Include semaphore.h.
4755         (omp_lock_25_t, omp_nest_lock_25_t): New types.
4756         (omp_lock_t): Use sem_t instead of mutex if semaphores
4757         aren't broken.
4758         (omp_nest_lock_t): Likewise.  Change owner to void *.
4759         * config/posix/omp-lock.h: Include semaphore.h.
4760         (omp_lock_25_t, omp_nest_lock_25_t): New types.
4761         (omp_lock_t): Use sem_t instead of mutex if semaphores
4762         aren't broken.
4763         (omp_nest_lock_t): Likewise.  Add owner field.
4765 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4767         * testsuite/libgomp.c/collapse-1.c: New test.
4768         * testsuite/libgomp.c/collapse-2.c: New test.
4769         * testsuite/libgomp.c/collapse-3.c: New test.
4770         * testsuite/libgomp.c/icv-1.c: New test.
4771         * testsuite/libgomp.c/icv-2.c: New test.
4772         * testsuite/libgomp.c/lib-2.c: New test.
4773         * testsuite/libgomp.c/lock-1.c: New test.
4774         * testsuite/libgomp.c/lock-2.c: New test.
4775         * testsuite/libgomp.c/lock-3.c: New test.
4776         * testsuite/libgomp.c/loop-4.c: New test.
4777         * testsuite/libgomp.c/loop-5.c: New test.
4778         * testsuite/libgomp.c/loop-6.c: New test.
4779         * testsuite/libgomp.c/loop-7.c: New test.
4780         * testsuite/libgomp.c/loop-8.c: New test.
4781         * testsuite/libgomp.c/loop-9.c: New test.
4782         * testsuite/libgomp.c/nested-3.c: New test.
4783         * testsuite/libgomp.c/nestedfn-6.c: New test.
4784         * testsuite/libgomp.c/sort-1.c: New test.
4785         * testsuite/libgomp.c/task-1.c: New test.
4786         * testsuite/libgomp.c/task-2.c: New test.
4787         * testsuite/libgomp.c/task-3.c: New test.
4788         * testsuite/libgomp.c/task-4.c: New test.
4789         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
4790         to C++ testsuite default compiler options.
4791         * testsuite/libgomp.c++/collapse-1.C: New test.
4792         * testsuite/libgomp.c++/collapse-2.C: New test.
4793         * testsuite/libgomp.c++/ctor-10.C: New test.
4794         * testsuite/libgomp.c++/for-1.C: New test.
4795         * testsuite/libgomp.c++/for-2.C: New test.
4796         * testsuite/libgomp.c++/for-3.C: New test.
4797         * testsuite/libgomp.c++/for-4.C: New test.
4798         * testsuite/libgomp.c++/for-5.C: New test.
4799         * testsuite/libgomp.c++/loop-8.C: New test.
4800         * testsuite/libgomp.c++/loop-9.C: New test.
4801         * testsuite/libgomp.c++/loop-10.C: New test.
4802         * testsuite/libgomp.c++/task-1.C: New test.
4803         * testsuite/libgomp.c++/task-2.C: New test.
4804         * testsuite/libgomp.c++/task-3.C: New test.
4805         * testsuite/libgomp.c++/task-4.C: New test.
4806         * testsuite/libgomp.c++/task-5.C: New test.
4807         * testsuite/libgomp.c++/task-6.C: New test.
4808         * testsuite/libgomp.fortran/allocatable1.f90: New test.
4809         * testsuite/libgomp.fortran/allocatable2.f90: New test.
4810         * testsuite/libgomp.fortran/allocatable3.f90: New test.
4811         * testsuite/libgomp.fortran/allocatable4.f90: New test.
4812         * testsuite/libgomp.fortran/collapse1.f90: New test.
4813         * testsuite/libgomp.fortran/collapse2.f90: New test.
4814         * testsuite/libgomp.fortran/collapse3.f90: New test.
4815         * testsuite/libgomp.fortran/collapse4.f90: New test.
4816         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
4817         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
4818         * testsuite/libgomp.fortran/lib4.f90: New test.
4819         * testsuite/libgomp.fortran/lock-1.f90: New test.
4820         * testsuite/libgomp.fortran/lock-2.f90: New test.
4821         * testsuite/libgomp.fortran/nested1.f90: New test.
4822         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
4823         * testsuite/libgomp.fortran/strassen.f90: New test.
4824         * testsuite/libgomp.fortran/tabs1.f90: New test.
4825         * testsuite/libgomp.fortran/tabs2.f: New test.
4826         * testsuite/libgomp.fortran/task1.f90: New test.
4827         * testsuite/libgomp.fortran/task2.f90: New test.
4828         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
4829         * testsuite/libgomp.fortran/vla5.f90: Likewise.
4830         * testsuite/libgomp.c/pr26943-2.c: Likewise.
4831         * testsuite/libgomp.c/pr26943-3.c: Likewise.
4832         * testsuite/libgomp.c/pr26943-4.c: Likewise.
4834 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
4836         PR c++/36308
4837         * testsuite/libgomp.c++/ctor-11.C: New test.
4838         * testsuite/libgomp.c++/ctor-12.C: New test.
4840 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
4842         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
4844 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4846         PR middle-end/36106
4847         * testsuite/libgomp.c/atomic-5.c: New test.
4848         * testsuite/libgomp.c/atomic-6.c: New test.
4849         * testsuite/libgomp.c/autopar-1.c: New test.
4851 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4853         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
4854         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
4855         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
4856         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
4857         * configure: Regenerate.
4858         * Makefile.in, testsuite/Makefile.in: Likewise.
4860 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
4862         PR bootstrap/35457
4863         * aclocal.m4: Regenerate.
4864         * configure: Regenerate.
4866 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
4868         PR middle-end/35611
4869         * testsuite/libgomp.c/atomic-4.c: New test.
4871         PR libgomp/35625
4872         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
4873         (gomp_iter_guided_next): Likewise.
4874         * testsuite/libgomp.c/pr35625.c: New test.
4876 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4878         * aclocal.m4: Regenerate.
4879         * configure: Likewise.
4880         * Makefile.in: Likewise.
4881         * testsuite/Makefile.in: Likewise.
4883 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
4885         PR middle-end/35185
4886         * testsuite/libgomp.c++/pr35185.C: New test.
4888 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4890         PR middle-end/35549
4891         * testsuite/libgomp.c/pr35549.c: New test.
4893 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4895         * testsuite/libgomp.c/atomic-3.c: New test.
4897 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4899         PR fortran/33197
4900         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
4901         .F08 file suffixes.
4903 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
4905         PR libgomp/33131
4906         * configure.ac: Add ACX_HEADER_STRING.
4907         * env.c: Include strings.h.
4908         * aclocal.m4: Regenerate.
4909         * config.h.in: Regenerate.
4910         * configure: Regenerate.
4911         * Makefile.in: Regenerate.
4912         * testsuite/Makefile.in: Regenerate.
4914 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
4916         PR middle-end/35196
4917         * testsuite/libgomp.c/pr35196.c: New test.
4919         PR middle-end/35130
4920         * testsuite/libgomp.fortran/pr35130.f90: New test.
4921         * testsuite/libgomp.c/pr35130.c: New test.
4923 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
4925         PR middle-end/33880
4926         * testsuite/libgomp.c/pr33880.c: New test.
4927         * testsuite/libgomp.fortran/pr33880.f90: New test.
4929 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
4931         * configure: Regenerate.
4933 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
4935         * configure.ac: Move futex checking into ../config/futex.m4.
4936         * configure: Rebuilt.
4937         * aclocal.m4: Rebuilt.
4938         * Makefile.in: Rebuilt.
4940         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
4941         2007-10-15 ../config/tls.m4 change.
4943 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
4945         PR c++/34513
4946         * testsuite/libgomp.c/pr34513.c: New test.
4947         * testsuite/libgomp.c++/pr34513.C: New test.
4949 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
4951         PR target/32765
4952         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
4954 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
4956         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
4958 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
4960         * testsuite/libgomp.c/private-1.c: New test.
4962 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
4963             Paolo Bonzini  <bonzini@gnu.org>
4965         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
4966         instead of 'VPATH ='.
4967         * Makefile.in: Regenerate.
4969 2007-11-23  Matthias Klose  <doko@ubuntu.com>
4971         * configure.ac: Adjust makeinfo version check.
4972         * configure: Regenerate.
4974 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
4976         PR fortran/34020
4977         * testsuite/libgomp.fortran/pr34020.f90: New test.
4979 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
4981         PR c++/33894
4982         * testsuite/libgomp.c++/atomic-1.C: New test.
4984 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
4986         PR libgomp/33275
4987         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
4988         Make x and y integers rather than (implicit) reals.  Add private (j)
4989         clause to the last omp parallel.
4991 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
4993         * configure: Regenerate following changes to ../config/tls.m4.
4995 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
4997         * testsuite/libgomp.fortran/stack.f90: New test.
4999 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
5001         * config/mingw32/proc.c: New file.
5003 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
5005         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
5006         (main): Use __get_cpuid to get i386 target fetaures.
5007         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
5008         (main): Use __get_cpuid to get x86_64 target fetaures.
5010 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
5012         PR target/32765
5013         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
5014         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
5016 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
5018         PR fortran/32550
5019         * testsuite/libgomp.fortran/pr32550.f90: New test.
5020         * testsuite/libgomp.fortran/crayptr2.f90: New test.
5022 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5024         * aclocal.m4: Regenerated.
5026 2007-07-05  Tobias Burnus  <burnus@net-b.de>
5028         PR fortran/32359
5029         * testsuite/libgomp.fortran/pr32359.f90: New.
5031 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
5033         PR libgomp/32468
5034         * sections.c (GOMP_parallel_sections_start): Only decrease
5035         number of threads to COUNT if dyn_var is true.
5036         * testsuite/libgomp.c/pr32468.c: New test.
5038 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5040         PR libgomp/26308
5041         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
5043 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
5045         PR middle-end/32362
5046         * testsuite/libgomp.c/pr32362-1.c: New test.
5047         * testsuite/libgomp.c/pr32362-2.c: New test.
5048         * testsuite/libgomp.c/pr32362-3.c: New test.
5050 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
5052         * team.c (gomp_team_start): Fix setting up thread_attr
5053         stack size.
5055 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
5057         * configure: Regenerate.
5059 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
5061         * Makefile.in: Regenerate.
5062         * configure: Regenerate.
5063         * aclocal.m4: Regenerate.
5064         * testsuite/Makefile.in: Regenerate.
5066 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
5068         * config/linux/proc.c: New file.
5070         PR libgomp/28482
5071         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
5073 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
5075         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
5077 2007-04-16  Matthias Klose  <doko@debian.org>
5079         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
5080         flags if not building with -m64.
5081         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
5082         flag for i?86-*-* targets, if current target matches -m64.
5084 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
5086         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
5087         * Makefile.in: Regenerate.
5089 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5091         PR testsuite/31369
5092         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
5093         ld_library_path.
5094         * testsuite/libgomp.fortran/fortran.exp: Likewise.
5096 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
5098         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
5099         decls.
5100         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
5101         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
5102         (parse_affinity): New function.
5103         (initialize_env): Call it and gomp_init_affinity.
5104         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
5105         create new pthread_attr_t and call gomp_init_thread_affinity
5106         on it for each thread before passing the attribute to pthread_create.
5107         * config/linux/affinity.c: New file.
5108         * config/posix/affinity.c: New file.
5109         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
5110         * configure: Rebuilt.
5111         * config.h.in: Rebuilt.
5112         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
5113         * Makefile.in: Rebuilt.
5115 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
5117         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
5118         *-*-darwin*.
5119         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
5120         and use it if found.
5122 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
5124         * testsuite/config/default.exp: New file.
5125         * testsuite/lib/libgomp.exp: New file.
5126         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
5127         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
5128         load_lib *, load_gcc_lib *): Move to libgomp.exp.
5129         (libgomp_load): Remove.
5130         * testsuite/lib/libgomp.exp (libgomp_init): Compute
5131         always_ld_library_path, not ld_library_path.  Set additional_flags
5132         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
5133         (target_compile): Do not call libgomp_init.  Append lang_library_path
5134         and lang_link_flags to options.
5135         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
5136         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
5137         here.
5138         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
5139         always_ld_library_path.  Set LD_LIBRARY_PATH here.
5140         * testsuite/libgomp.fortran/fortran.exp: Ditto.
5141         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
5142         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
5143         CX8 flag.
5144         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
5145         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
5146         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
5147         * testsuite/libgomp.c/pr29947-1.c: Ditto.
5148         * testsuite/libgomp.c/atomic-10.c: Ditto.
5150 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
5152         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
5153         dg-final cleanup-modules line.
5154         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
5155         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
5156         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
5157         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
5158         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
5159         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
5160         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
5162 2007-03-18  Andreas Schwab  <schwab@suse.de>
5164         * acinclude.m4: Adjust regular expression for ld version
5165         extraction.
5166         * configure: Regenerate.
5168 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
5170         * Makefile.am: Add install-pdf target as copied from
5171         automake v1.10 rules.
5172         * Makefile.in: Regenerate
5174 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
5176         PR libgomp/28486
5177         * configure: Regenerate.
5179         PR c++/30703
5180         * testsuite/libgomp.c++/pr30703.C: New test.
5182 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
5184         Revert:
5185         2006-07-05  Eric Christopher  <echristo@apple.com>
5186         * configure.ac: Depend addition of -pthread on host OS.
5187         * configure: Regenerate.
5189 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5191         * libgomp.texi: Fix spacing after abbreviations.
5193 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
5195         PR libgomp/30546
5196         * configure.ac: Add check for makeinfo
5197         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
5198         if an appropiate version of makeinfo is found.
5199         * aclocal.m4: Regenerated.
5200         * configure: Regenerated.
5201         * Makefile.in: Regenerated.
5202         * testsuite/Makefile.in: Regenerated.
5204 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
5206         PR libgomp/30540
5207         * libgomp.texi: More about implementation-dependent settings.
5209 2007-01-26  Tobias Burnus  <burnus@net-b.de>
5211         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
5213 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
5215         PR middle-end/30494
5216         * testsuite/libgomp.c/pr30494.c: New test.
5218 2007-01-15  Tom Tromey  <tromey@redhat.com>
5220         * configure: Rebuilt.
5221         * configure.ac: Fixed comment.
5223 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
5225         * libgomp.texi: Document implementation specific default values of
5226         environment variables.
5228 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
5230         PR libgomp/28209
5231         * libgomp.texi: New file.
5232         * configure.ac: Add --enable-generated-files-in-srcdir option.
5233         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
5234         files to srcdir.
5235         * Makefile.in: Regenerated.
5236         * config.h.in: Regenerated.
5237         * testsuite/Makefile.in: Regenerated.
5238         * NOTES: Removed.
5240 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
5242         PR libgomp/29949
5243         * env.c (omp_set_num_threads): Set illegal thread count to 1.
5245 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
5247         * configure: Regenerate.
5249 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
5251         PR libgomp/29947
5252         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
5253         start if there shouldn't be any loop iterations.
5254         (gomp_loop_ordered_static_start): Remove start == end test.
5255         * testsuite/libgomp.c/pr29947-1.c: New test.
5256         * testsuite/libgomp.c/pr29947-2.c: New test.
5258 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
5260         * configure.tgt: Force initial-exec TLS model on Linux only.
5262 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
5264         * configure: Regenerated.
5266 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
5268         * env.c (parse_schedule): Reject out of range values.
5269         (parse_unsigned_long): Reject out of range, negative or zero values.
5271 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
5273         PR fortran/29629
5274         * testsuite/libgomp.fortran/pr29629.f90: New test.
5276 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
5278         PR libgomp/29494
5279         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
5280         * config/posix95: New directory.
5281         * config/posix95/omp-lock.h: New file.
5282         * config/posix95/lock.c: Likewise.
5284 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
5286         * aclocal.m4: Regenerate.
5287         * configure: Regenerate.
5289 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
5291         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
5292         '<' to '<='.
5294 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
5296         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
5297         test.
5298         * configure: Regenerate.
5299         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
5301 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
5303         PR middle-end/25261
5304         PR middle-end/28790
5305         * testsuite/libgomp.c/nestedfn-4.c: New test.
5306         * testsuite/libgomp.c/nestedfn-5.c: New test.
5307         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
5309         PR fortran/29097
5310         * testsuite/libgomp.fortran/condinc1.f: New test.
5311         * testsuite/libgomp.fortran/condinc2.f: New test.
5312         * testsuite/libgomp.fortran/condinc3.f90: New test.
5313         * testsuite/libgomp.fortran/condinc4.f90: New test.
5314         * testsuite/libgomp.fortran/condinc1.inc: New file.
5316 2006-09-18  Tom Tromey  <tromey@redhat.com>
5318         * configure: Rebuilt.
5320 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
5322         PR c/28768
5323         PR preprocessor/14634
5324         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
5325         to AC_DEFINE.
5326         * configure: Regenerate.
5328 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
5330         * testsuite/libgomp.fortran/reduction3.f90: Change
5331         -2147483648 to -huge(i)-1 to avoid overflow.
5332         * testsuite/libgomp.fortran/reduction4.f90: Change
5333         Z'ffffffff' to not(0) to avoid overflow.
5335 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
5337         PR libgomp/25938
5338         * Makefile.am (libsubincludedir): New.
5339         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
5340         * Makefile.in: Regenerate.
5342 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
5344         PR libgomp/28725
5345         * env.c: Include ctype.h.
5346         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
5347         leading and/or trailing whitespace and compare strings case
5348         insensitively.
5350 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
5352         PR fortran/28390
5353         * testsuite/libgomp.fortran/pr28390.f: New test.
5355 2006-07-05  Eric Christopher  <echristo@apple.com>
5357         * configure.ac: Depend addition of -pthread on host OS.
5358         * configure: Regenerate.
5360 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
5362         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
5363         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
5364         defined.
5366 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
5368         PR libgomp/26175
5369         PR libgomp/26477
5370         * configure.ac: If neither --enable-linux-futex nor
5371         --disable-linux-futex is passed, determine the default by checking
5372         for compiling and/or running against NPTL.  With --enable-linux-futex,
5373         check if SYS_gettid and SYS_futex are defined.
5374         * configure: Rebuilt.
5376 2006-06-14  Richard Henderson  <rth@redhat.com>
5378         PR libgomp/28008
5379         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
5380         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
5382 2006-06-09  Richard Henderson  <rth@redhat.com>
5384         * env.c (gomp_nthreads_var): Change to unsigned long.
5385         (gomp_run_sched_chunk): Likewise.
5386         (parse_unsigned_long): Rename from parse_num_threads and generalize.
5387         (initialize_env): Initialize gomp_thread_attr.
5388         * libgomp.h (gomp_nthreads_var): Update decl.
5389         (gomp_run_sched_chunk): Likewise.
5390         (gomp_thread_attr): Declare.
5391         * team.c (gomp_thread_attr): Export.
5392         (initialize_team): Don't initialize it.
5394 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
5396         PR fortran/27916
5397         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
5398         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
5400 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5402         * config/mingw32/time.c: New file.
5403         * configure.tgt: Use it.
5405 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
5407         * Makefile.am: Add install-html target. Add install-html to .PHONY
5408         * Makefile.in: Regenerate.
5410 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5412         PR libgomp/27612
5413         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
5414         * testsuite/libgomp.c/critical-1.c: Likewise.
5415         * testsuite/libgomp.c/loop-1.c: Likewise.
5416         * testsuite/libgomp.c/loop-2.c: Likewise.
5417         * testsuite/libgomp.c/single-1.c: Likewise.
5418         * testsuite/libgomp.c/ordered-1.c: Likewise.
5419         * testsuite/libgomp.c/ordered-2.c: Likewise.
5421 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
5423         PR middle-end/27416
5424         * libgomp.fortran/pr27416-1.f90: New test.
5426 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
5428         PR fortran/27395
5429         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
5430         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
5432 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
5434         PR c++/26943
5435         * testsuite/libgomp.c/pr26943-1.c: New test.
5436         * testsuite/libgomp.c/pr26943-2.c: New test.
5437         * testsuite/libgomp.c/pr26943-3.c: New test.
5438         * testsuite/libgomp.c/pr26943-4.c: New test.
5439         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
5440         * testsuite/libgomp.c++/pr26943.C: New test.
5442 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
5444         PR middle-end/27337
5445         * testsuite/libgomp.c++/pr27337.C: New test.
5447 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
5449         PR c/26171
5450         * testsuite/libgomp.c/pr26171.c: New test.
5452 2006-04-25  Richard Henderson  <rth@redhat.com>
5454         PR libgomp/25865
5455         * configure.ac: Use GCC_CHECK_TLS.
5456         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
5457         * Makefile.in, aclocal.m4, configure: Regenerate.
5459 2006-04-10  Matthias Klose  <doko@debian.org>
5461         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
5462         directory names containing underscores.
5464 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
5466         PR c++/26691
5467         * testsuite/libgomp.c++/pr26691.C: New test.
5469 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
5471         * testsuite/libgomp.fortran/retval2.f90: New test.
5473 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
5475         * testsuite/libgomp.c++: New directory.
5477 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
5479         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
5480         * config/posix/sem.c: Implement the above.
5482 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
5484         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
5485         define HAVE_BROKEN_POSIX_SEMAPHORES.
5486         * configure: Rebuilt.
5487         * config.h.in: Rebuilt.
5489 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5491         PR bootstrap/26161
5492         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
5493         for the other pthread check.
5494         * configure: Regenerate.
5495         * config.h.in: Regenerate.
5497 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
5499         PR libgomp/25938
5500         PR libgomp/25984
5501         * Makefile.am (fincludedir): New variable.
5502         (nodist_include_HEADERS): Remove Fortran files.
5503         (nodist_finclude_HEADERS): New variable.
5504         * Makefile.in: Regenerated.
5506 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
5508         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
5509         Remove tests for returning assumed character length arrays.
5511 2006-02-12  Roger Sayle  <roger@eyesopen.com>
5512             John David Anglin  <dave@hiauly1.hia.nrc.ca>
5514         PR libgomp/25936
5515         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
5517 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
5519         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
5521 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5523         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
5524         part of LD_LIBRARY_PATH manually.
5526 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
5528         PR libgomp/25852
5529         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
5530         libgomp_init.
5532 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
5534         PR libgomp/25884
5535         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
5536         * configure.ac (PERL): Don't set.
5537         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
5538         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
5539         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
5540         * omp.h.in: Wrap the new configure substitutions with @ characters.
5541         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
5542         * aclocal.m4, configure, Makefile.in: Regenerate.
5543         * mkomp_h.pl: Delete.
5545 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
5547         PR libgomp/25259
5548         * configure.ac: Use GCC_HEADER_STDINT.
5549         * libgomp.h: Include gstdint.h.
5550         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
5551         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
5553 2006-01-24  Richard Henderson  <rth@redhat.com>
5555         PR libgomp/25942
5556         * configure.ac: Add AM_MAINTAINER_MODE.
5557         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
5559 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
5561         * Makefile.in: Regenerate.
5562         * testsuite/Makefile.in: Regenerate.
5563         * aclocal.m4: Regenerate.
5565 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
5567         * config/posix/proc.c: Conditional include of sys/loadavg.h for
5568         Solaris.
5569         * configure.ac: Add check for loadavg.h.
5570         (link_gomp): Adjust comment.
5571         * configure: Regenerate.
5572         * config.h.in: Regenerate.
5574 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
5576         PR libgomp/25877
5577         * configure.ac: Remove check for alloca.h.
5578         * configure: Regenerate.
5579         * config.h.in: Regenerate.
5580         * libgomp.h: define gomp_alloca to be __builtin_alloca.
5581         * team.c: Remove use of alloca.h.
5582         Call gomp_alloca instead of alloca.
5584 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
5586         PR libgomp/25877
5587         * team.c: Add include of alloca.h.
5588         * configure.ac: Add check for alloca.h.
5589         * configure: Regenerate.
5590         * config.h.in: Regenerate.
5592 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
5594         PR fortran/25219
5595         * testsuite/libgomp.fortran/pr25219.f90: New test.
5597 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
5599         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
5600         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
5601         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
5602         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
5603         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
5604         testsuite/libgomp.fortran/threadprivate1.f90,
5605         testsuite/libgomp.fortran/threadprivate2.f90,
5606         testsuite/libgomp.fortran/threadprivate3.f90,
5607         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
5608         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
5609         testsuite/libgomp.fortran/omp_parse3.f90: Change required
5610         effective-target to TLS runtime.
5612         * testsuite/libgomp.fortran/pr25162.f: Require
5613         effective-target TLS runtime.
5615 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
5617         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
5618         * testsuite/libgomp.c/nestedfn-3.c: New test.
5620 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
5622         PR fortran/25162
5623         * testsuite/libgomp.fortran/pr25162.f: New test.
5625 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
5627         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
5628         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
5630 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
5632         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
5633         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
5634         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
5635         single.c, team.c, work.c, config/linux/alpha/futex.h,
5636         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
5637         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
5638         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
5639         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
5640         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
5641         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
5642         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
5643         FSF address.
5645 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
5647         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
5648         to nodist_noinst_HEADERS.
5649         * Makefile.in: Rebuilt.
5651         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
5652         add integer count field.
5653         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
5654         omp_nest_lock_t type change.
5655         (omp_init_nest_lock): Likewise.  Initialize count to 0.
5656         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
5657         Increment count.
5658         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
5659         Decrement count.
5660         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
5661         Increment count if successful and return the new nesting level.
5662         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
5663         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
5664         * testsuite/libgomp.c/lib-1.c: New test.
5665         * testsuite/libgomp.fortran/lib1.f90: New test.
5666         * testsuite/libgomp.fortran/lib2.f: New test.
5667         * testsuite/libgomp.fortran/lib3.f: New test.
5669 2005-11-17  Richard Henderson  <rth@redhat.com>
5671         PR 24845
5672         * Makefile.am (nodist_toolexeclib_HEADERS): New.
5673         * configure.ac (link_gomp): New.  Substitute it.
5674         (AC_CONFIG_FILES): Add libgomp.spec.
5675         * libgomp.spec.in: New file.
5676         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
5677         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
5679 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
5681         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
5682         reduction(-:var) behaving the same as reduction(+:var).
5683         * testsuite/libgomp.c/reduction-4.c: New test.
5685 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
5687         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
5688         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
5689         testsuite/libgomp.c/copyin-3.c,
5690         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
5691         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
5692         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
5693         testsuite/libgomp.c++/pr24455.C,
5694         testsuite/libgomp.fortran/threadprivate1.f90,
5695         testsuite/libgomp.fortran/threadprivate2.f90,
5696         testsuite/libgomp.fortran/threadprivate3.f90,
5697         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
5698         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
5699         testsuite/libgomp.fortran/omp_parse3.f90: Require
5700         effective-target TLS.
5702 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
5704         * HEADER: Remove.
5706 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
5708         PR libgomp/24797
5709         * team.c (initialize_team): Pass NULL rather than free as
5710         pthread_key_create destructor.  Initialize thread specific data
5711         pointer in initial thread to a static local variable rather than
5712         malloced memory.
5714 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
5716         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
5717         its location to ld_library_path.
5719 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
5721         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
5723 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
5725         * testsuite/libgomp.c: Rename from libgomp.dg.
5727 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
5729         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
5730         threadprivate variable 'i'.
5732 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
5734         * config/linux/s390/futex.h: New file.
5735         * configure.tgt: Use it.
5737         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
5738         before the parallel.
5740 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
5742         PR c++/24734
5743         * testsuite/libgomp.c++/master-1.C: New test.
5745 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
5747         * testsuite/libgomp.dg/copyin-3.c: New test.
5749 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
5751         * testsuite/libgomp.fortran/retval1.f90: New test.
5752         * testsuite/libgomp.fortran/vla7.f90: New test.
5754 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
5756         * testsuite/libgomp.fortran/vla2.f90: New test.
5757         * testsuite/libgomp.fortran/vla3.f90: New test.
5758         * testsuite/libgomp.fortran/vla4.f90: New test.
5759         * testsuite/libgomp.fortran/vla5.f90: New test.
5760         * testsuite/libgomp.fortran/vla6.f90: New test.
5762 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
5764         * config/linux/sparc/futex.h: New file.
5765         * configure.tgt: Use it.
5766         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
5768         * critical.c: Include stdlib.h.
5769         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
5770         ignoring return value.
5771         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
5772         LIBGOMP_CHECK_SYNC_BUILTINS check.
5773         * configure: Rebuilt.
5775 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
5777         * testsuite/libgomp.fortran/vla1.f90: New test.
5779 2005-10-31  Richard Henderson  <rth@redhat.com>
5781         * testsuite/libgomp.fortran/character2.f90: Fix race condition
5782         setting 's' in different threads.
5784 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
5786         * libgomp.h (attribute_hidden, ialias): Define.
5787         * config/posix/proc.c (omp_get_num_procs): Add ialias.
5788         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
5789         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
5790         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5791         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5792         omp_test_lock, omp_test_nest_lock): Likewise.
5793         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
5794         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
5795         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
5796         omp_test_lock, omp_test_nest_lock): Likewise.
5797         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
5798         omp_get_dynamic, omp_get_nested): Likewise.
5799         * parallel.c (omp_get_num_threads, omp_get_max_threads,
5800         omp_get_thread_num, omp_in_parallel): Likewise.
5801         * fortran.c (ialias_redirect): Define.
5802         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
5803         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
5804         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
5805         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
5806         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
5807         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
5808         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
5809         omp_get_wtime): Add ialias_redirect.
5811 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
5813         * fortran.c: Include stdlib.h.
5815 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
5817         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
5818         * Makefile.in: Regenerated.
5820 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
5822         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
5823         * libgomp_f.h.in (omp_check_defines): New function.
5824         * env.c: Include libgomp_f.h.
5825         (initialize_env): Call omp_check_defines.
5827         * testsuite/libgomp.dg/copyin-2.c: New test.
5828         * testsuite/libgomp.c++/copyin-2.C: New test.
5829         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
5831         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
5832         * testsuite/libgomp.fortran/sharing2.f90: New test.
5834         * testsuite/libgomp.dg/copyin-1.c: New test.
5835         * testsuite/libgomp.c++/copyin-1.C: New test.
5837 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
5839         * testsuite/libgomp.fortran/crayptr1.f90: New test.
5841         * testsuite/libgomp.fortran/workshare1.f90: New test.
5843         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
5844         only test.
5845         * libgomp.fortran/sharing1.f90: New test.
5847 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
5849         PR c++/24502
5850         * testsuite/libgomp.c++/loop-7.C: New test.
5852         * testsuite/libgomp.dg/nestedfn-2.c: New test.
5854         * testsuite/libgomp.dg/nestedfn-1.c: New test.
5855         * testsuite/libgomp.fortran/reduction6.f90: New test.
5856         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
5858 2005-10-23  Richard Henderson  <rth@redhat.com>
5860         * testsuite/libgomp.c++/ctor-1.C: New.
5861         * testsuite/libgomp.c++/ctor-2.C: New.
5862         * testsuite/libgomp.c++/ctor-3.C: New.
5863         * testsuite/libgomp.c++/ctor-4.C: New.
5864         * testsuite/libgomp.c++/ctor-5.C: New.
5865         * testsuite/libgomp.c++/ctor-6.C: New.
5866         * testsuite/libgomp.c++/ctor-7.C: New.
5867         * testsuite/libgomp.c++/ctor-8.C: New.
5868         * testsuite/libgomp.c++/ctor-9.C: New.
5870 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
5872         PR 24455
5873         * testsuite/libgomp.c++/pr24455-1.C: New test.
5874         * testsuite/libgomp.c++/pr24455.C: New test.
5875         * testsuite/libgomp.dg/pr24455-1.c: New test.
5876         * testsuite/libgomp.dg/pr24455.c: New test.
5878 2005-10-20  Richard Henderson  <rth@redhat.com>
5880         * testsuite/libgomp.c++/loop-6.C: New.
5881         * testsuite/libgomp.dg/loop-3.c: New.
5883 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
5885         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
5886         explicitly private.
5887         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
5888         explicitly shared.
5890 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
5892         * testsuite/libgomp.fortran/jacobi.f: New test.
5894 2005-10-19  Richard Henderson  <rth@redhat.com>
5896         * configure.tgt (i?86-linux): Default to with_arch instead of
5897         CFLAGS.  Add -mtune to match target_cpu.
5898         (x86_64-linux): Tune to i686.
5900         * fortran.c (omp_test_nest_lock_): Fix typo.
5902 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
5904         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
5905         gomp_ordered_sync): Do nothing if team->nthreads == 1.
5906         * testsuite/libgomp.dg/ordered-3.c: New test.
5908         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
5909         Remove volatile keyword.
5911         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
5912         in COMMON block to avoid warnings on 64-bit targets.
5914 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
5916         * testsuite/libgomp.dg/shared-3.c: New test.
5918 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
5920         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
5921         * testsuite/libgomp.fortran/reduction5.f90: New test.
5923 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
5925         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
5926         dg-options.
5927         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
5928         flush loop now that __sync_synchronize has proper memory barrier.
5929         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
5930         Add -ffixed-form to dg-options.
5932 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
5934         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
5935         from subdirectories.
5936         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
5937         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
5938         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
5939         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
5940         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
5941         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
5942         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
5943         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
5944         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
5945         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
5946         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
5947         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
5948         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
5949         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
5950         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
5951         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
5952         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
5953         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
5954         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
5955         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
5956         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
5957         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
5958         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
5959         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
5960         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
5962 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
5964         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
5965         lang_library_path exists.  Use find instead of glob to gather tests.
5966         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
5968 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
5970         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
5971         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
5972         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
5973         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
5974         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
5975         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
5976         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
5977         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
5978         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
5979         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
5980         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
5981         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
5982         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
5984 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
5986         * testsuite/libgomp.dg/vla-1.c: New test.
5988         * testsuite/libgomp.fortran/reference2.f90: New test.
5990         * testsuite/libgomp.fortran/character2.f90: Remove explicit
5991         declaration of omp_get_thread_num.
5992         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
5993         use omp_lib.
5995         * testsuite/libgomp.fortran/reduction1.f90: New test.
5996         * testsuite/libgomp.fortran/reduction2.f90: New test.
5997         * testsuite/libgomp.fortran/reduction3.f90: New test.
5998         * testsuite/libgomp.fortran/reduction4.f90: New test.
6000 2005-10-13  Richard Henderson  <rth@redhat.com>
6002         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
6003         * Makefile.in: Regenerate.
6004         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
6005         * libgomp.h: Include bar.h.
6006         (struct gomp_barrier): Remove.
6007         (struct gomp_team): Add barrier.  Replace master_barrier with
6008         master_release.  Replace threads with ordered_release.
6009         (struct gomp_thread): Replace barrier with release.
6010         * ordered.c (gomp_ordered_first): Update for ordered_release change.
6011         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
6012         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
6013         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
6014         (GOMP_single_copy_end): Likewise.
6015         * team.c (gomp_threads_dock): New.
6016         (gomp_barrier_init, gomp_barrier_destroy): Remove.
6017         (gomp_thread_start): Use gomp_barrier_wait.
6018         (new_team, free_team): Update for gomp_team changes.
6019         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
6020         (gomp_team_end): Use gomp_barrier_wait.
6021         (initialize_team): Update for gomp_thread changes.
6022         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
6023         (gomp_work_share_end_nowait): Use atomic ops when available.
6024         * config/linux/bar.c, config/linux/bar.h: New files.
6025         * config/posix/bar.c, config/posix/bar.h: New files.
6027 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
6029         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
6030         * testsuite/libgomp.dg/single-2.c: New test.
6032         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
6033         lang_link_flags): Unset, so that they aren't inherited from previously
6034         sourced *.exp.
6036         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
6038 2005-10-12  Richard Henderson  <rth@redhat.com>
6040         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
6041         (libgomp_init): Use lang_test_file, lang_library_path, and
6042         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
6044         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
6045         (lang_test_file, lang_link_flags): New.
6046         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
6048         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
6049         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
6050         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
6051         testsuite/libgomp.c++/parallel-1.C,
6052         testsuite/libgomp.c++/reduction-1.C,
6053         testsuite/libgomp.c++/reduction-2.C,
6054         testsuite/libgomp.c++/reduction-3.C,
6055         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
6056         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
6057         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
6058         New files, largely cribbed from the C testsuite.
6060 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
6062         * testsuite/libgomp.fortran/character1.f90: New test.
6063         * testsuite/libgomp.fortran/character2.f90: New test.
6065         * testsuite/libgomp.dg/nested-1.c: New test.
6066         * testsuite/libgomp.dg/nested-2.c: New test.
6067         * testsuite/libgomp.fortran/do1.f90: New test.
6068         * testsuite/libgomp.fortran/do2.f90: New test.
6070         * testsuite/libgomp.fortran/reference1.f90: New test.
6072 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
6074         * testsuite/libgomp.dg/reduction-1.c: New test.
6075         * testsuite/libgomp.dg/reduction-2.c: New test.
6076         * testsuite/libgomp.dg/reduction-3.c: New test.
6078 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
6080         * testsuite/libgomp.dg/atomic-1.c: New test.
6081         * testsuite/libgomp.dg/atomic-2.c: New test.
6083 2005-10-09  Richard Henderson  <rth@redhat.com>
6085         * critical.c (atomic_lock): New.
6086         (initialize_critical): Initialize it.
6087         (GOMP_atomic_start, GOMP_atomic_end): New.
6088         * libgomp.map: Export them.
6089         * libgomp_g.h: Declare them.
6091         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
6093 2005-10-02  Richard Henderson  <rth@redhat.com>
6095         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
6096         to XCFLAGS instead of CFLAGS.
6098 2005-09-30  Richard Henderson  <rth@redhat.com>
6100         * configure.ac: Determine whether -pthread or -lpthread is needed.
6101         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
6102         * Makefine.in, configure: Rebuild.
6104 2005-09-28  Richard Henderson  <rth@redhat.com>
6106         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
6107         * testsuite/libgomp.dg/omp-single-3.c: New test.
6109 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
6111         * testsuite/libgomp.dg/omp-single-2.c: New test.
6112         * testsuite/libgomp.dg/shared-2.c: Fix return code.
6114 2005-09-27  Richard Henderson  <rth@redhat.com>
6116         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
6117         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
6119 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
6121         * testsuite/libgomp.dg/omp-loop03.c: New test.
6123 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
6125         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
6127 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
6129         * testsuite/libgomp.dg/omp-single-1.c: New test.
6130         * testsuite/libgomp.dg/shared-1.c: Return 0.
6131         Add prototype for abort.
6132         * testsuite/libgomp.dg/shared-2.c: Likewise.
6134 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
6136         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
6137         constructs.
6139 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
6141         * testsuite/libgomp.dg/shared-1.c: New test.
6142         * testsuite/libgomp.dg/shared-2.c: New test.
6144 2005-09-24  Richard Henderson  <rth@redhat.com>
6146         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
6148 2005-09-24  Richard Henderson  <rth@redhat.com>
6150         * iter.c (gomp_iter_static_next): Round up when computing number
6151         of iterations.  Don't bother distributing a remainder equally.
6153         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
6154         Don't call srand.  Zero b before testing.
6155         (main): New.
6157 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
6159         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
6160         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
6162 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
6164         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
6165         without !$omp end do, followed immediately by subroutine end.
6167 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
6169         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
6171 2005-09-22  Richard Henderson  <rth@redhat.com>
6173         * critical.c (GOMP_critical_name_start): Change argument to void**.
6174         Reuse the pointer space if the mutex fits.
6175         (GOMP_critical_name_end): Likewise.
6176         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
6177         * libgomp_g.h (GOMP_critical_name_start): Update decl.
6178         (GOMP_critical_name_end): Likewise.
6179         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
6180         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
6182 2005-09-20  Richard Henderson  <rth@redhat.com>
6184         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
6185         (create_lock_lock): New.
6186         (initialize_critical): Initialize it.
6187         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
6188         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
6190 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
6192         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
6194 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
6196         * testsuite/libgomp.dg/omp-loop01.c: New test.
6197         * testsuite/libgomp.dg/omp-loop02.c: New test.
6199 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
6201         * configure.ac (AC_PROG_FC): Add.
6202         (USE_FORTRAN): New automake conditional.
6203         * configure: Rebuilt.
6204         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
6205         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
6206         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
6207         Add rules to build them.
6208         * Makefile.in: Rebuilt.
6209         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
6210         OMP_NEST_LOCK_KIND.
6211         * libgomp.map: Add Fortran wrappers.
6212         * libgomp_f.h.in: New file.
6213         * omp_lib.h.in: New file.
6214         * omp_lib.f90.in: New file.
6215         * fortran.c: New file.
6216         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
6217         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
6218         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
6219         libgfortran has been built.
6220         * testsuite/libgomp.fortran/fortran.exp: New file.
6221         * testsuite/libgomp.fortran/omp_cond1.f: New test.
6222         * testsuite/libgomp.fortran/omp_cond2.f: New test.
6223         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
6224         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
6225         * testsuite/libgomp.fortran/omp_hello.f: New test.
6226         * testsuite/libgomp.fortran/omp_orphan.f: New test.
6227         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
6228         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
6229         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
6230         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
6231         * testsuite/libgomp.fortran/omp_reduction.f: New test.
6232         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
6233         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
6235 2005-08-30  Richard Henderson  <rth@redhat.com>
6237         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
6238         function for when aliases are not usable.
6239         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
6240         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
6241         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
6242         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
6243         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
6244         GOMP_loop_ordered_guided_next): Likewise.
6245         * ordered.c (GOMP_ordered_start): Likewise.
6247 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
6249         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
6250         * testsuite/libgomp.dg/omp_hello.c: Fix return code
6251         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
6252         * testsuite/libgomp.dg/omp_orphan.c: Likewise
6253         * testsuite/libgomp.dg/omp_reduction.c: Likewise
6254         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
6255         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
6256         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
6257         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
6259 2005-07-07  Eric Christopher  <echristo@redhat.com>
6260             Diego Novillo  <dnovillo@redhat.com>
6262         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
6263         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
6264         up code.
6265         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
6266         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
6267         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
6268         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
6269         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
6270         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
6271         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
6273 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
6275         * TOPLEVEL.patch: Remove.
6277 2005-05-16  Richard Henderson  <rth@redhat.com>
6279         * configure.ac: Test for clock_gettime.
6280         * config.h.in, configure: Rebuild.
6281         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
6282         (omp_get_wtime): Use clock_gettime if available.
6283         (omp_get_wtick): Use clock_getres if available.
6285 2005-05-11  Richard Henderson  <rth@redhat.com>
6287         * config/linux/ia64/futex.h: New file.
6288         * configure.tgt: Use it.
6290         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
6292 2005-05-07  Richard Henderson  <rth@redhat.com>
6294         * config/linux/powerpc/futex.h: New file.
6295         * configure.tgt: Use it.
6297         * config/linux/i486/futex.h: Merge ...
6298         * config/linux/x86_64/futex.h: ... into ...
6299         * config/linux/x86/futex.h: ... here.
6300         * configure.tgt: Update to match.
6302 2005-05-06  Richard Henderson  <rth@redhat.com>
6304         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
6305         * config/linux/i486/futex.h: Likewise.
6306         * config/linux/x86_64/futex.h: Likewise.
6308         * config/linux/lock.c: New file.
6309         * config/linux/omp-lock.h: New file.
6311         * critical.c, env.h: Don't include omp.h
6312         * config/posix/lock.c: Include libgomp.h instead of omp.h.
6313         * config/posix/time.c: Likewise.
6314         * config/posix/omp-lock.h: New file.
6315         * libgomp.h: Include omp-lock.h and omp.h.
6316         * Makefile.am (nodist_include_HEADERS): New.
6317         (omp.h): New rule.
6318         * configure.ac (PERL): New.
6319         * mkomp_h.pl: New file.
6320         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
6321         with templates.
6322         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
6324         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
6325         build directory.  Re-add -march=i486 hack.
6327         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
6328         (libgomp_link_flags): Remove.
6329         (libgomp_initialized): Remove.
6330         (libgomp_init): Don't protect from reinitialization.  Copy code
6331         from libstdc++ for getting the multilib set correctly.
6333 2005-05-05  Richard Henderson  <rth@redhat.com>
6335         * config/linux/alpha/futex.h: New file.
6336         * configure.tgt (alpha*-*-linux*): Use it.
6338         * config/posix/mutex.c: New file.
6339         * config/posix/sem.c: Use libgomp.h.
6341         * configure.tgt (x86_64-linux): Also test CC for -m32.
6342         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
6344         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
6345         after $gccpath.
6347         * Makefile.am (SUBDIRS): New.
6348         (libgomp_la_LDFLAGS): Add -lpthread.
6349         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
6350         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
6352         * libgomp_g.h: New file.
6353         * libgomp.h: Split out all public declarations to libgomp_g.h.
6354         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
6355         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
6356         * config/linux/sem.h: Likewise.
6357         * config/posix/sem.h: Likewise.
6359         * Makefile.am (AM_LDFLAGS): New.
6360         (libgomp_version_script): Split out from ...
6361         (libgomp_la_LDFLAGS): ... here.
6362         (libgomp_version_info): New.
6363         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
6364         (LIBGOMP_ENABLE): New.
6365         (LIBGOMP_CHECK_LINKER_FEATURES): New.
6366         (LIBGOMP_ENABLE_SYMVERS): New.
6367         * configure.ac (AC_INIT): Version 1.0.
6368         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
6369         (enable-linux-futex): Likewise.  Rename from enable-futex.
6370         (libtool_VERSION): New.
6371         (LIBGOMP_ENABLE_SYMVERS): Use it.
6372         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
6373         * Makefile.in, aclocal.m4, configure: Rebuild.
6375         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
6376         (gomp_mutex_unlock_slow): Fix typo.
6377         * config/linux/sem.c: Similarly.
6378         (gomp_sem_post_slow): Fix typo.
6379         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
6380         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
6381         [__PIC__] (sys_futex0): Don't use tmp output in asm.
6383         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
6384         (libgomp_la_LDFLAGS): Add top_srcdir to path.
6385         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
6386         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
6387         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
6388         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
6389         LDFLAGS.  Pull enable_futex check to top-level.
6390         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
6391         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
6393         First attempt at real configury.
6394         * Makefile, config.h: Remove file.
6395         * Makefile.am, Makefile.in: New file.
6396         * acinclude.m4 aclocal.m4: New file.
6397         * configure.ac, configure.tgt, configure: New file.
6399         * config/posix/lock.c: Rename from sys-lock.c.
6400         * config/posix/mutex.h: Rename from sys-mutex.h.
6401         * config/posix/sem.c: Rename from sys-sem.c.
6402         * config/posix/sem.h: Rename from sys-sem.h.
6403         * config/posix/proc.c: Rename from sys-proc.c.
6404         * config/posix/time.c: Rename from sys-proc.c.
6406         * config/linux/mutex.c: New file.
6407         * config/linux/mutex.h: New file.
6408         * config/linux/sem.c: New file.
6409         * config/linux/sem.h: New file.
6410         * config/linux/i486/futex.h: New file.
6411         * config/linux/x86_64/futex.h: New file.
6413 2005-05-04  Richard Henderson  <rth@redhat.com>
6415         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
6416         * libgomp.h: Declare them.
6417         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
6418         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
6420 2005-05-04  Richard Henderson  <rth@redhat.com>
6422         * libgomp-1 code drop
6424 2005-05-04  Richard Henderson  <rth@redhat.com>
6426         * iter.c (gomp_iter_static_next): Return tri-state on 0.
6427         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
6428         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
6429         (gomp_iter_static_next): Update.
6430         (gomp_ordered_static_next): Update.
6431         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
6432         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
6433         totally empty range.
6434         (gomp_loop_ordered_static_next): Refine test for calling
6435         gomp_ordered_static_next.
6436         * testsuite/ordered-1.c: Add case for more threads than iterations.
6438         * iter.c (gomp_iter_runtime_next_locked): Remove.
6439         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
6440         gomp_loop_guided_start, gomp_loop_ordered_static_start,
6441         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
6442         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
6443         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
6444         gomp_loop_ordered_guided_next): Downcase name, make static, add
6445         an external alias with the old name.
6446         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
6447         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
6448         switch and call one of the above static functions.
6449         * libgomp.h: Update.
6451         * work.c (gomp_work_share_start): Lock the mutex for !first too.
6452         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
6453         GOMP_loop_guided_start, GOMP_loop_runtime_start,
6454         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
6455         GOMP_loop_ordered_guided_start): Update to match.
6456         * sections.c (GOMP_sections_start): Likewise.
6457         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
6459         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
6460         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
6461         Use bounds check instead of modulus.
6462         (gomp_ordered_sync): Split out of GOMP_ordered_start.
6463         (gomp_ordered_last): Don't sync with ordered_owner here.
6464         (gomp_ordered_next): Likewise.
6465         (gomp_ordered_static_loop_next): Likewise.
6466         * loop.c, libgomp.h: Update to match.
6468         * libgomp.h (GOMP_barrier): Declare.
6470         * testsuite/barrier-1.c: New file.
6471         * testsuite/critical-1.c: New file.
6472         * testsuite/ordered-2.c: New file.
6473         * testsuite/ordered-1.c: New file.
6474         * testsuite/sections-1.c: New file.
6475         * testsuite/single-1.c: New file.
6476         * testsuite/Makefile (TESTS): Add them.
6478 2005-05-04  Richard Henderson  <rth@redhat.com>
6480         * libgomp.h (struct gomp_work_share): Add ordered_owner.
6481         * loop.c (GOMP_loop_static_start): If not the startup thread,
6482         acquire the mutex to wait for initialization complete.
6483         (GOMP_loop_ordered_static_start): Likewise.
6484         (GOMP_loop_ordered_runtime_start): Likewise.
6485         (GOMP_loop_ordered_static_first): Remove.
6486         (GOMP_loop_ordered_dynamic_first): Remove.
6487         (GOMP_loop_ordered_guided_first): Remove.
6488         (GOMP_loop_ordered_runtime_first): Remove.
6489         * ordered.c (gomp_ordered_loop_first): Post to own release when
6490         we're the first thread.
6491         (gomp_ordered_loop_last): Wait on release if not owner.
6492         (gomp_ordered_loop_next): Likewise.
6493         (gomp_ordered_static_loop_init): New.
6494         (gomp_ordered_static_loop_next): Use ordered_owner.
6495         (GOMP_ordered_start): Likewise.
6496         * work.c (gomp_new_work_share): Initialize ordered_owner.
6498 2005-05-03  Richard Henderson  <rth@redhat.com>
6500         * Makefile (OPT): New.
6501         (CFLAGS): Use it.
6503         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
6504         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
6505         * libgomp.h, libgomp.map, NOTES: Update to match.
6507         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
6508         Add initialized and thr members.
6509         (gomp_thread_start): Pause when initially spawned to wait for
6510         the whole team to be created.
6511         (gomp_team_start): Release team members at the end.
6513         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
6514         (f_foo_1): Use GOMP_loop_end.
6515         (f_foo_2): Use GOMP_loop_end_nowait.
6517         * testsuite/loop-2.c: New file.
6518         * testsuite/Makefile (TESTS): Add it.
6520 2005-05-03  Richard Henderson  <rth@redhat.com>
6522         * iter.c (gomp_iter_static_next): Fix overflow check typo.
6523         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
6524         * team.c (new_team): Initialize oldest_live_gen to 1 if no
6525         initial work_share.
6527         * testsuite/Makefile: New file.
6528         * testsuite/loop-1.c: New file.
6530 2005-05-03  Richard Henderson  <rth@redhat.com>
6532         Initial implementation and checkin.