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