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