2018-11-09 Jakub Jelinek <jakub@redhat.com>
[official-gcc.git] / libgomp / ChangeLog
blobac43ff62662cf2bd7a5490c90fec4f09741a9bc3
1 2018-11-09  Jakub Jelinek  <jakub@redhat.com>
3         * testsuite/libgomp.c-c++-common/task-reduction-13.c: New test.
4         * testsuite/libgomp.c-c++-common/task-reduction-14.c: New test.
6 2018-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8         * affinity.c: Include <string.h>, <stdio.h>.
9         (gomp_display_affinity_place): Remove cpusetp.
10         * teams.c: Include <limits.h>.
12 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
14         * testsuite/libgomp.c-c++-common/task-reduction-8.c (bar): Add
15         in_reduction clause for s[0].
17         * affinity.c (gomp_display_affinity_place): New function.
18         * affinity-fmt.c: New file.
19         * alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
20         * config/linux/affinity.c (gomp_display_affinity_place): New function.
21         * config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
22         Move these functions to ...
23         * config/nvptx/teams.c: ... here.  New file.
24         * config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
25         New functions.
26         * config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
27         functions.
28         * configure.ac: Check for aligned_alloc, posix_memalign, memalign
29         and _aligned_malloc.
30         (HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
31         * configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
32         * env.c (gomp_display_affinity_var, gomp_affinity_format_var,
33         gomp_affinity_format_len): New variables.
34         (parse_schedule): Parse monotonic and nonmonotonic modifiers in
35         OMP_SCHEDULE variable.  Set GFS_MONOTONIC for monotonic schedules.
36         (handle_omp_display_env): Display monotonic/nonmonotonic schedule
37         modifiers.  Display (non-default) chunk sizes.  Print
38         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
39         (initialize_env): Don't call pthread_attr_setdetachstate.  Handle
40         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
41         * fortran.c: Include stdio.h and string.h.
42         (omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
43         (omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
44         (omp_set_affinity_format_, omp_get_affinity_format_,
45         omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
46         omp_pause_resource_all_): New functions.
47         * icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
48         switch.
49         * icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
50         functions to ...
51         * teams.c: ... here.  New file.
52         * libgomp_g.h: Include gstdint.h.
53         (GOMP_loop_nonmonotonic_runtime_start,
54         GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
55         GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
56         GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
57         GOMP_parallel_loop_nonmonotonic_runtime,
58         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
59         GOMP_loop_ull_nonmonotonic_runtime_start,
60         GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
61         GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
62         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
63         GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
64         GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
65         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
66         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
67         GOMP_teams_reg): Declare.
68         * libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
69         gomp_aligned_alloc uses fallback implementation.
70         (gomp_aligned_alloc, gomp_aligned_free): Declare.
71         (enum gomp_schedule_type): Add GFS_MONOTONIC.
72         (struct gomp_doacross_work_share): Add extra field.
73         (struct gomp_work_share): Add task_reductions field.
74         (struct gomp_taskgroup): Add workshare and reductions fields.
75         (GOMP_NEEDS_THREAD_HANDLE): Define if needed.
76         (gomp_thread_handle): New typedef.
77         (gomp_display_affinity_place, gomp_set_affinity_format,
78         gomp_display_string, gomp_display_affinity,
79         gomp_display_affinity_thread): Declare.
80         (gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
81         (gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
82         gomp_workshare_task_reduction_register): Declare.
83         (gomp_team_start): Add taskgroup argument.
84         (gomp_pause_host): Declare.
85         (gomp_init_work_share, gomp_work_share_start): Change bool argument
86         to size_t.
87         (gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
88         * libgomp.map (GOMP_5.0): Export GOMP_loop_start,
89         GOMP_loop_ordered_start, GOMP_loop_doacross_start,
90         GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
91         GOMP_loop_ull_doacross_start,
92         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
93         GOMP_loop_maybe_nonmonotonic_runtime_next,
94         GOMP_loop_maybe_nonmonotonic_runtime_start,
95         GOMP_loop_nonmonotonic_runtime_next,
96         GOMP_loop_nonmonotonic_runtime_start,
97         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
98         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
99         GOMP_loop_ull_nonmonotonic_runtime_next,
100         GOMP_loop_ull_nonmonotonic_runtime_start,
101         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
102         GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
103         GOMP_taskgroup_reduction_register,
104         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
105         GOMP_teams_reg and GOMP_taskwait_depend.
106         (OMP_5.0): Export omp_pause_resource{,_all}{,_},
107         omp_{capture,display}_affinity{,_}, and
108         omp_[gs]et_affinity_format{,_}.
109         * loop.c: Include string.h.
110         (GOMP_loop_runtime_next): Add ialias.
111         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
112         (gomp_loop_static_start, gomp_loop_dynamic_start,
113         gomp_loop_guided_start, gomp_loop_ordered_static_start,
114         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
115         gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
116         gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
117         or gomp_doacross_init callers.
118         (gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
119         GOMP_loop_doacross_start): New functions.
120         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
121         GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
122         Mask off GFS_MONOTONIC bit.
123         (GOMP_loop_maybe_nonmonotonic_runtime_next,
124         GOMP_loop_maybe_nonmonotonic_runtime_start,
125         GOMP_loop_nonmonotonic_runtime_next,
126         GOMP_loop_nonmonotonic_runtime_start,
127         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
128         GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
129         functions.
130         (gomp_parallel_loop_start): Pass NULL as taskgroup to
131         gomp_team_start.
132         * loop_ull.c: Include string.h.
133         (GOMP_loop_ull_runtime_next): Add ialias.
134         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
135         (gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
136         gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
137         gomp_loop_ull_ordered_dynamic_start,
138         gomp_loop_ull_ordered_guided_start,
139         gomp_loop_ull_doacross_static_start,
140         gomp_loop_ull_doacross_dynamic_start,
141         gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
142         and gomp_doacross_ull_init callers.
143         (gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
144         GOMP_loop_ull_doacross_start): New functions.
145         (GOMP_loop_ull_runtime_start,
146         GOMP_loop_ull_ordered_runtime_start,
147         GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
148         (GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
149         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
150         GOMP_loop_ull_nonmonotonic_runtime_next,
151         GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
152         * Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
153         * omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
154         (omp_pause_resource_t, omp_depend_t): New typedefs.
155         (enum omp_lock_hint_t): Renamed to ...
156         (enum omp_sync_hint_t): ... this.  Define omp_sync_hint_*
157         enumerators using numbers and omp_lock_hint_* as their aliases.
158         (omp_lock_hint_t): New typedef.  Rename to ...
159         (omp_sync_hint_t): ... this.
160         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
161         omp_sync_hint_t instead of omp_lock_hint_t.
162         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
163         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
164         Declare.
165         (omp_target_is_present, omp_target_disassociate_ptr):
166         Change first argument from void * to const void *.
167         (omp_target_memcpy, omp_target_memcpy_rect): Change second argument
168         from void * to const void *.
169         (omp_target_associate_ptr): Change first and second arguments from
170         void * to const void *.
171         * omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
172         omp_pause_hard): New parameters.
173         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
174         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
175         New interfaces.
176         * omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
177         omp_pause_hard): New parameters.
178         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
179         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
180         New externals.
181         * ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
182         EXTRA argument.  If not needed to prepare array, if extra is 0,
183         clear ws->doacross, otherwise allocate just doacross structure and
184         extra payload.  If array is needed, allocate also extra payload.
185         (GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
186         GOMP_doacross_ull_wait): Handle doacross->array == NULL like
187         doacross == NULL.
188         * parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
189         gomp_team_start.
190         (GOMP_parallel): Likewise.  Formatting fix.
191         (GOMP_parallel_reductions): New function.
192         (GOMP_cancellation_point): If taskgroup has workshare
193         flag set, check cancelled of prev taskgroup if any.
194         (GOMP_cancel): If taskgroup has workshare flag set, set cancelled
195         on prev taskgroup if any.
196         * sections.c: Include string.h.
197         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
198         (GOMP_sections_start): Adjust gomp_work_share_start caller.
199         (GOMP_sections2_start): New function.
200         (GOMP_parallel_sections_start, GOMP_parallel_sections):
201         Pass NULL as taskgroup to gomp_team_start.
202         * single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
203         gomp_work_share_start callers.
204         * target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
205         If taskgroup has workshare flag set, check cancelled on prev
206         taskgroup if any.  Guard all cancellation tests with
207         gomp_cancel_var test.
208         (omp_target_is_present, omp_target_disassociate_ptr):
209         Change ptr argument from void * to const void *.
210         (omp_target_memcpy): Change src argument from void * to const void *.
211         (omp_target_memcpy_rect): Likewise.
212         (omp_target_memcpy_rect_worker): Likewise.  Use const char * casts
213         instead of char * where needed.
214         (omp_target_associate_ptr): Change host_ptr and device_ptr arguments
215         from void * to const void *.
216         (omp_pause_resource, omp_pause_resource_all): New functions.
217         * task.c (gomp_task_handle_depend): Handle new depend array format
218         in addition to the old.  Handle mutexinoutset kinds the same as
219         inout for now, handle unspecified kinds.
220         (gomp_create_target_task): If taskgroup has workshare flag set, check
221         cancelled on prev taskgroup if any.  Guard all cancellation tests with
222         gomp_cancel_var test.  Handle new depend array format count in
223         addition to the old.
224         (GOMP_task): Likewise.  Adjust function comment.
225         (gomp_task_run_pre): If taskgroup has workshare flag set, check
226         cancelled on prev taskgroup if any.  Guard all cancellation tests with
227         gomp_cancel_var test.
228         (GOMP_taskwait_depend): New function.
229         (gomp_task_maybe_wait_for_dependencies): Handle new depend array
230         format in addition to the old.  Handle mutexinoutset kinds the same as
231         inout for now, handle unspecified kinds.  Fix a function comment typo.
232         (gomp_taskgroup_init): New function.
233         (GOMP_taskgroup_start): Use it.
234         (gomp_reduction_register, gomp_create_artificial_team,
235         GOMP_taskgroup_reduction_register,
236         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
237         gomp_parallel_reduction_register,
238         gomp_workshare_task_reduction_register,
239         gomp_workshare_taskgroup_start,
240         GOMP_workshare_task_reduction_unregister): New functions.
241         * taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
242         check cancelled on prev taskgroup if any.  Guard all cancellation
243         tests with gomp_cancel_var test.  Handle GOMP_TASK_FLAG_REDUCTION flag
244         by calling GOMP_taskgroup_reduction_register.
245         * team.c (gomp_thread_attr): Remove comment.
246         (struct gomp_thread_start_data): Add handle field.
247         (gomp_thread_start): Call pthread_detach.
248         (gomp_new_team): Adjust gomp_init_work_share caller.
249         (gomp_free_pool_helper): Call pthread_detach.
250         (gomp_team_start): Add taskgroup argument, initialize implicit
251         tasks' taskgroup field to that.  Don't call
252         pthread_attr_setdetachstate.  Handle OMP_DISPLAY_AFFINITY env var.
253         (gomp_team_end): Determine nesting by thr->ts.level != 0
254         rather than thr->ts.team != NULL.
255         (gomp_pause_pool_helper, gomp_pause_host): New functions.
256         * work.c (alloc_work_share): Use gomp_aligned_alloc instead of
257         gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
258         (gomp_init_work_share): Change ORDERED argument from bool to size_t,
259         if more than 1 allocate also extra payload at the end of array.  Never
260         keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
261         (gomp_work_share_start): Change ORDERED argument from bool to size_t,
262         return true instead of ws.
263         * Makefile.in: Regenerated.
264         * configure: Regenerated.
265         * config.h.in: Regenerated.
266         * testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
267         in some cases.
268         * testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
269         * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
270         * testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
271         * testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
272         * testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
273         * testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
274         * testsuite/libgomp.c-c++-common/depobj-1.c: New test.
275         * testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
276         * testsuite/libgomp.c-c++-common/for-10.c: New test.
277         * testsuite/libgomp.c-c++-common/for-11.c: New test.
278         * testsuite/libgomp.c-c++-common/for-12.c: New test.
279         * testsuite/libgomp.c-c++-common/for-13.c: New test.
280         * testsuite/libgomp.c-c++-common/for-14.c: New test.
281         * testsuite/libgomp.c-c++-common/for-15.c: New test.
282         * testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
283         define a different N(test), don't define N(f0) to N(f14), but instead
284         define N(f20) to N(f34) using != comparisons.
285         * testsuite/libgomp.c-c++-common/for-7.c: New test.
286         * testsuite/libgomp.c-c++-common/for-8.c: New test.
287         * testsuite/libgomp.c-c++-common/for-9.c: New test.
288         * testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
289         * testsuite/libgomp.c-c++-common/pause-1.c: New test.
290         * testsuite/libgomp.c-c++-common/pause-2.c: New test.
291         * testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
292         * testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
293         * testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
294         * testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
295         * testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
296         * testsuite/libgomp.c-c++-common/simd-1.c: New test.
297         * testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
298         * testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
299         * testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
300         * testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
301         * testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
302         * testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
303         * testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
304         * testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
305         * testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
306         * testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
307         * testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
308         * testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
309         * testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
310         * testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
311         * testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
312         * testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
313         * testsuite/libgomp.c++/depend-1.C: New test.
314         * testsuite/libgomp.c++/depend-iterator-1.C: New test.
315         * testsuite/libgomp.c++/depobj-1.C: New test.
316         * testsuite/libgomp.c++/for-16.C: New test.
317         * testsuite/libgomp.c++/for-21.C: New test.
318         * testsuite/libgomp.c++/for-22.C: New test.
319         * testsuite/libgomp.c++/for-23.C: New test.
320         * testsuite/libgomp.c++/for-24.C: New test.
321         * testsuite/libgomp.c++/for-25.C: New test.
322         * testsuite/libgomp.c++/for-26.C: New test.
323         * testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
324         * testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
325         * testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
326         * testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
327         * testsuite/libgomp.c++/task-reduction-10.C: New test.
328         * testsuite/libgomp.c++/task-reduction-11.C: New test.
329         * testsuite/libgomp.c++/task-reduction-12.C: New test.
330         * testsuite/libgomp.c++/task-reduction-13.C: New test.
331         * testsuite/libgomp.c++/task-reduction-14.C: New test.
332         * testsuite/libgomp.c++/task-reduction-15.C: New test.
333         * testsuite/libgomp.c++/task-reduction-16.C: New test.
334         * testsuite/libgomp.c++/task-reduction-17.C: New test.
335         * testsuite/libgomp.c++/task-reduction-18.C: New test.
336         * testsuite/libgomp.c++/task-reduction-19.C: New test.
337         * testsuite/libgomp.c/task-reduction-1.c: New test.
338         * testsuite/libgomp.c++/task-reduction-1.C: New test.
339         * testsuite/libgomp.c/task-reduction-2.c: New test.
340         * testsuite/libgomp.c++/task-reduction-2.C: New test.
341         * testsuite/libgomp.c++/task-reduction-3.C: New test.
342         * testsuite/libgomp.c++/task-reduction-4.C: New test.
343         * testsuite/libgomp.c++/task-reduction-5.C: New test.
344         * testsuite/libgomp.c++/task-reduction-6.C: New test.
345         * testsuite/libgomp.c++/task-reduction-7.C: New test.
346         * testsuite/libgomp.c++/task-reduction-8.C: New test.
347         * testsuite/libgomp.c++/task-reduction-9.C: New test.
348         * testsuite/libgomp.c/teams-1.c: New test.
349         * testsuite/libgomp.c/teams-2.c: New test.
350         * testsuite/libgomp.c/thread-limit-4.c: New test.
351         * testsuite/libgomp.c/thread-limit-5.c: New test.
352         * testsuite/libgomp.fortran/display-affinity-1.f90: New test.
354 2018-11-06  Chung-Lin Tang <cltang@codesourcery.com>
356         * oacc-mem.c (memcpy_tofrom_device): New function, combined from
357         acc_memcpy_to/from_device functions, now with async parameter.
358         (acc_memcpy_to_device): Modify to use memcpy_tofrom_device.
359         (acc_memcpy_from_device): Likewise.
360         (acc_memcpy_to_device_async): New API function.
361         (acc_memcpy_from_device_async): Likewise.
362         (present_create_copy): Add async parameter and async setting/unsetting.
363         (acc_create): Adjust present_create_copy call.
364         (acc_copyin): Likewise.
365         (acc_present_or_create): Likewise.
366         (acc_present_or_copyin): Likewise.
367         (acc_create_async): New API function.
368         (acc_copyin_async): New API function.
369         (delete_copyout): Add async parameter and async setting/unsetting.
370         (acc_delete): Adjust delete_copyout call.
371         (acc_copyout): Likewise.
372         (acc_delete_async): New API function.
373         (acc_copyout_async): Likewise.
374         (update_dev_host): Add async parameter and async setting/unsetting.
375         (acc_update_device): Adjust update_dev_host call.
376         (acc_update_self): Likewise.
377         (acc_update_device_async): New API function.
378         (acc_update_self_async): Likewise.
379         * openacc.h (acc_copyin_async): Declare new API function.
380         (acc_create_async): Likewise.
381         (acc_copyout_async): Likewise.
382         (acc_delete_async): Likewise.
383         (acc_update_device_async): Likewise.
384         (acc_update_self_async): Likewise.
385         (acc_memcpy_to_device_async): Likewise.
386         (acc_memcpy_from_device_async): Likewise.
387         * openacc_lib.h (acc_copyin_async_32_h): New subroutine.
388         (acc_copyin_async_64_h): New subroutine.
389         (acc_copyin_async_array_h): New subroutine.
390         (acc_create_async_32_h): New subroutine.
391         (acc_create_async_64_h): New subroutine.
392         (acc_create_async_array_h): New subroutine.
393         (acc_copyout_async_32_h): New subroutine.
394         (acc_copyout_async_64_h): New subroutine.
395         (acc_copyout_async_array_h): New subroutine.
396         (acc_delete_async_32_h): New subroutine.
397         (acc_delete_async_64_h): New subroutine.
398         (acc_delete_async_array_h): New subroutine.
399         (acc_update_device_async_32_h): New subroutine.
400         (acc_update_device_async_64_h): New subroutine.
401         (acc_update_device_async_array_h): New subroutine.
402         (acc_update_self_async_32_h): New subroutine.
403         (acc_update_self_async_64_h): New subroutine.
404         (acc_update_self_async_array_h): New subroutine.
405         * openacc.f90 (acc_copyin_async_32_h): New subroutine.
406         (acc_copyin_async_64_h): New subroutine.
407         (acc_copyin_async_array_h): New subroutine.
408         (acc_create_async_32_h): New subroutine.
409         (acc_create_async_64_h): New subroutine.
410         (acc_create_async_array_h): New subroutine.
411         (acc_copyout_async_32_h): New subroutine.
412         (acc_copyout_async_64_h): New subroutine.
413         (acc_copyout_async_array_h): New subroutine.
414         (acc_delete_async_32_h): New subroutine.
415         (acc_delete_async_64_h): New subroutine.
416         (acc_delete_async_array_h): New subroutine.
417         (acc_update_device_async_32_h): New subroutine.
418         (acc_update_device_async_64_h): New subroutine.
419         (acc_update_device_async_array_h): New subroutine.
420         (acc_update_self_async_32_h): New subroutine.
421         (acc_update_self_async_64_h): New subroutine.
422         (acc_update_self_async_array_h): New subroutine.
423         * libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*,
424         acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*,
425         acc_delete_finalize_async*, acc_memcpy_from_device_async*,
426         acc_memcpy_to_device_async*, acc_update_device_async*, and
427         acc_update_self_async* entries.
428         * testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test.
429         * testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test.
430         * testsuite/libgomp.oacc-fortran/lib-16.f90: New test.
432 2018-10-31  Joseph Myers  <joseph@codesourcery.com>
434         PR bootstrap/82856
435         * Makefile.am: Include multilib.am
436         (AUTOMAKE_OPTIONS): Add info-in-builddir.
437         (CLEANFILES): Remove libgomp.info.
438         * configure.ac: Remove AC_PREREQ.
439         * testsuite/Makefile.am (RUNTEST): Remove quotes.
440         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
441         Regenerate.
443 2018-10-29  Joseph Myers  <joseph@codesourcery.com>
444             Julian Brown  <julian@codesourcery.com>
446         * testsuite/libgomp.oacc-c++/this.C: New.
448 2018-09-18  Cesar Philippidis  <cesar@codesourcery.com>
450         * plugin/plugin-nvptx.c (struct cuda_map): New.
451         (struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
452         h_tail with (cuda_map *) map.
453         (cuda_map_create): New function.
454         (cuda_map_destroy): New function.
455         (map_init): Update to use a linked list of cuda_map objects.
456         (map_fini): Likewise.
457         (map_pop): Likewise.
458         (map_push): Likewise.  Return CUdeviceptr instead of void.
459         (init_streams_for_device): Remove stales references to ptx_stream
460         members.
461         (select_stream_for_async): Likewise.
462         (nvptx_exec): Update call to map_init.
464 2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
465             Julian Brown  <julian@codesourcery.com>
467         PR middle-end/86336
468         * testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.
470 2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
471         Thomas Koenig <tkoenig@gcc.gnu.org>
473         PR fortran/25829
474         * testsuite/libgomp.fortran/async_io_1.f90: New test.
475         * testsuite/libgomp.fortran/async_io_2.f90: New test.
476         * testsuite/libgomp.fortran/async_io_3.f90: New test.
477         * testsuite/libgomp.fortran/async_io_4.f90: New test.
478         * testsuite/libgomp.fortran/async_io_5.f90: New test.
479         * testsuite/libgomp.fortran/async_io_6.f90: New test.
480         * testsuite/libgomp.fortran/async_io_7.f90: New test.
482 2018-08-13  Cesar Philippidis  <cesar@codesourcery.com>
483             Tom de Vries  <tdevries@suse.de>
485         PR target/85590
486         * plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef.
487         (cuOccupancyMaxPotentialBlockSize): Declare.
488         * plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New
489         CUDA_ONE_CALL_MAYBE_NULL.
490         * plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define
491         CUoccupancyB2DSize and declare
492         cuOccupancyMaxPotentialBlockSize.
493         (nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the
494         default num_gangs and num_workers when the driver supports it.
496 2018-08-08  Tom de Vries  <tdevries@suse.de>
498         * plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using
499         CUDA_ONE_CALL_MAYBE_NULL.
500         * plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare.
501         (cuLinkAddData_v2, cuLinkCreate_v2): Declare.
502         (link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions
503         are not found.
505 2018-08-08  Tom de Vries  <tdevries@suse.de>
507         * plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL.
508         * plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not
509         present.
511 2018-08-08  Tom de Vries  <tdevries@suse.de>
513         * plugin/plugin-nvptx.c
514         (CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define.
515         (nvptx_open_device): Use
516         CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR.
518 2018-08-08  Tom de Vries  <tdevries@suse.de>
520         * plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ...
521         (cuGetErrorString): ... here.  Guard with CUDA_VERSION < 6000.
523 2018-08-07  Tom de Vries  <tdevries@suse.de>
525         * plugin/plugin-nvptx.c (DO_PRAGMA): Define.
526         (struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL.
527         (init_cuda_lib): Add new param to CUDA_ONE_CALL_1.  Add arg to
528         corresponding call in CUDA_ONE_CALL.  Add def/undef of
529         CUDA_ONE_CALL_MAYBE_NULL.
530         (CUDA_CALL_EXISTS): Define.
532 2018-08-07  Tom de Vries  <tdevries@suse.de>
534         * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put
535         CUDA_ONE_CALL defines right before the cuda-lib.def include, and the
536         corresponding undefs right after.
538 2018-08-04  Tom de Vries  <tdevries@suse.de>
540         * plugin/configfrag.ac: For --without-cuda-driver, set
541         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB to no.  Handle
542         CUDA_DRIVER_INCLUDE == no and CUDA_DRIVER_LIB == no.
543         * configure: Regenerate.
545 2018-08-02  Tom de Vries  <tdevries@suse.de>
547         PR target/86660
548         * testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
549         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
550         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
551         Same.
552         * testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
553         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
554         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
556 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
557             Thomas Schwinge <thomas@codesourcery.com>
559         * config/nvptx/oacc-parallel.c: Truncate.
561 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
562             James Norris <jnorris@codesourcery.com>
564         * plugin/plugin-nvptx.c (struct map): Removed.
565         (map_init, map_pop): Remove use of struct map.
566         (map_push): Likewise and change argument list.
567         * testsuite/libgomp.oacc-c-c++-common/mapping-1.c: New
569 2018-08-01  Tom de Vries  <tdevries@suse.de>
571         * plugin/cuda-lib.def: New file.  Factor out of ...
572         * plugin/plugin-nvptx.c (CUDA_CALLS): ... here.
573         (struct cuda_lib_s, init_cuda_lib): Include cuda-lib.def instead of
574         using CUDA_CALLS.
576 2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
578         Revert 'AsyncI/O patch committed'.
579         2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
580                 Thomas Koenig <tkoenig@gcc.gnu.org>
582         PR fortran/25829
583         * testsuite/libgomp.fortran/async_io_1.f90: New test.
584         * testsuite/libgomp.fortran/async_io_2.f90: New test.
585         * testsuite/libgomp.fortran/async_io_3.f90: New test.
586         * testsuite/libgomp.fortran/async_io_4.f90: New test.
587         * testsuite/libgomp.fortran/async_io_5.f90: New test.
588         * testsuite/libgomp.fortran/async_io_6.f90: New test.
589         * testsuite/libgomp.fortran/async_io_7.f90: New test.
591 2018-07-30  Tom de Vries  <tdevries@suse.de>
593         * plugin/plugin-nvptx.c (MIN, MAX): Redefine.
594         (nvptx_exec): Ensure worker and vector default dims don't exceed
595         targ_fn->max_threads_per_block.
597 2018-07-30  Tom de Vries  <tdevries@suse.de>
599         * plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field.
600         (nvptx_open_device): Init default_dims for device.
601         (nvptx_exec): Use default_dims from device.
603 2018-07-26  Jakub Jelinek  <jakub@redhat.com>
605         PR testsuite/86660
606         * testsuite/libgomp.c++/for-15.C (results): Include it in
607         omp declare target region.
608         (main): Use map (always, tofrom: results) instead of
609         map (tofrom: results).
611         PR middle-end/86660
612         * testsuite/libgomp.c/pr86660.c: New test.
614 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
615             Tom de Vries  <tdevries@suse.de>
617         * plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have
618         sufficient resources to launch a kernel, and give a hint on how to fix
619         it.
621 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
622             Tom de Vries  <tdevries@suse.de>
624         * plugin/plugin-nvptx.c (struct ptx_device): Add warp_size,
625         max_threads_per_block and max_threads_per_multiprocessor fields.
626         (nvptx_open_device): Initialize new fields.
627         (nvptx_exec): Use num_sms, and new fields.
629 2018-07-26  Tom de Vries  <tdevries@suse.de>
631         * testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls
632         to correct locations.  Remove xfail.
634 2018-07-26  Tom de Vries  <tdevries@suse.de>
636         * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
637         acc_wait.  Move acc_async_test calls to correct locations.  Remove
638         xfail.
640 2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
641         Thomas Koenig <tkoenig@gcc.gnu.org>
643         PR fortran/25829
644         * testsuite/libgomp.fortran/async_io_1.f90: New test.
645         * testsuite/libgomp.fortran/async_io_2.f90: New test.
646         * testsuite/libgomp.fortran/async_io_3.f90: New test.
647         * testsuite/libgomp.fortran/async_io_4.f90: New test.
648         * testsuite/libgomp.fortran/async_io_5.f90: New test.
649         * testsuite/libgomp.fortran/async_io_6.f90: New test.
650         * testsuite/libgomp.fortran/async_io_7.f90: New test.
652 2018-07-17  Jakub Jelinek  <jakub@redhat.com>
654         PR middle-end/86542
655         * testsuite/libgomp.c++/pr86542.C: New test.
657         PR middle-end/86539
658         * testsuite/libgomp.c++/pr86539.C: New test.
660 2018-07-11  Jakub Jelinek  <jakub@redhat.com>
662         PR c++/86443
663         * testsuite/libgomp.c++/for-15.C (a): Remove unused variable.
664         (results): Make sure the variable is not inside declare target region.
665         (qux): Remove unused function.
667 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
669         PR c++/86443
670         * testsuite/libgomp.c++/for-15.C: New test.
672 2018-06-26  Jakub Jelinek  <jakub@redhat.com>
674         PR c++/86291
675         * testsuite/libgomp.c++/pr86291.C: New test.
677 2018-06-24  Gerald Pfeifer  <gerald@pfeifer.com>
679         * libgomp.texi (Top): Move www.openmp.org to https.
680         (Enabling OpenMP): Ditto.
681         (omp_get_active_level): Ditto.
682         (omp_get_ancestor_thread_num): Ditto.
683         (omp_get_cancellation): Ditto.
684         (omp_get_default_device): Ditto.
685         (omp_get_dynamic): Ditto.
686         (omp_get_level): Ditto.
687         (omp_get_max_active_levels): Ditto.
688         (omp_get_max_task_priority): Ditto.
689         (omp_get_max_threads): Ditto.
690         (omp_get_nested): Ditto.
691         (omp_get_num_devices): Ditto.
692         (omp_get_num_procs): Ditto.
693         (omp_get_num_teams): Ditto.
694         (omp_get_num_threads): Ditto.
695         (omp_get_proc_bind): Ditto.
696         (omp_get_schedule): Ditto.
697         (omp_get_team_num): Ditto.
698         (omp_get_team_size): Ditto.
699         (omp_get_thread_limit): Ditto.
700         (omp_get_thread_num): Ditto.
701         (omp_in_parallel): Ditto.
702         (omp_in_final): Ditto.
703         (omp_is_initial_device): Ditto.
704         (omp_set_default_device): Ditto.
705         (omp_set_dynamic): Ditto.
706         (omp_set_max_active_levels): Ditto.
707         (omp_set_nested): Ditto.
708         (omp_set_num_threads): Ditto.
709         (omp_set_schedule): Ditto.
710         (omp_init_lock): Ditto.
711         (omp_set_lock): Ditto.
712         (omp_test_lock): Ditto.
713         (omp_unset_lock): Ditto.
714         (omp_destroy_lock): Ditto.
715         (omp_init_nest_lock): Ditto.
716         (omp_set_nest_lock): Ditto.
717         (omp_test_nest_lock): Ditto.
718         (omp_unset_nest_lock): Ditto.
719         (omp_destroy_nest_lock): Ditto.
720         (omp_get_wtick): Ditto.
721         (omp_get_wtime): Ditto.
722         (OMP_CANCELLATION): Ditto.
723         (OMP_DISPLAY_ENV): Ditto.
724         (OMP_DEFAULT_DEVICE): Ditto.
725         (OMP_DYNAMIC): Ditto.
726         (OMP_MAX_ACTIVE_LEVELS): Ditto.
727         (OMP_MAX_TASK_PRIORITY): Ditto.
728         (OMP_NESTED): Ditto.
729         (OMP_NUM_THREADS): Ditto.
730         (OMP_PROC_BIND): Ditto.
731         (OMP_PLACES): Ditto.
732         (OMP_STACKSIZE): Ditto.
733         (OMP_SCHEDULE): Ditto.
734         (OMP_THREAD_LIMIT): Ditto.
735         (OMP_WAIT_POLICY): Ditto.
737 2018-06-22  Cesar Philippidis  <cesar@codesourcery.com>
738             James Norris  <jnorris@codesourcery.com>
739             Julian Brown  <julian@codesourcery.com>
740             Thomas Schwinge  <thomas@codesourcery.com>
741             Tom de Vries  <tom@codesourcery.com>
743         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
744         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
745         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
746         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
747         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
748         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
749         * testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
750         * testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
751         * testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
752         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
753         Likewise.
754         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
755         Likewise.
756         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
757         Likewise.
758         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
759         Likewise.
760         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
761         Likewise.
762         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
763         Likewise.
764         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
765         Likewise.
766         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
767         Likewise.
768         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
769         Likewise.
770         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
771         Likewise.
772         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
773         Likewise.
774         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
775         Likewise.
776         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
777         Likewise.
778         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
779         Likewise.
780         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
781         Likewise.
782         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
783         Likewise.
784         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
785         Likewise.
786         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
787         Likewise.
788         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
789         Likewise.
790         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
791         Likewise.
792         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
793         Likewise.
794         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
795         Likewise.
796         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
797         Likewise.
798         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
799         Likewise.
800         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
801         Likewise.
802         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
803         Likewise.
804         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
805         Likewise.
806         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
807         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
808         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
809         * testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
810         * testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
811         * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
812         * testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
813         * testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
814         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
815         Likewise.
816         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
817         Likewise.
818         * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
819         * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
820         * testsuite/libgomp.oacc-fortran/kernels-independent.f90:
821         Likewise.
822         * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
823         * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
824         * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
825         Likewise.
826         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
827         Likewise.
828         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
829         Likewise.
830         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
831         Likewise.
832         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
833         Likewise.
834         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
835         Likewise.
836         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
837         Likewise.
838         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
839         Likewise.
840         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
841         Likewise.
842         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
843         Likewise.
844         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
845         Likewise.
846         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
847         Likewise.
848         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
849         Likewise.
850         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
851         Likewise.
852         * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
853         Likewise.
854         * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
855         * testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
856         * testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
857         * testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
858         * testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
859         * testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
860         * testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.
862 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
863             Thomas Schwinge <thomas@codesourcery.com>
864             Cesar Philippidis  <cesar@codesourcery.com>
866         * libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member.
867         (gomp_acc_remove_pointer): Update declaration.
868         (gomp_acc_declare_allocate): Declare.
869         (gomp_remove_var): Declare.
870         * libgomp.map (OACC_2.5): Define.
871         * oacc-mem.c (acc_map_data): Update refcount.
872         (acc_unmap_data): Likewise.
873         (present_create_copy): Likewise.
874         (acc_create): Add FLAG_PRESENT when calling present_create_copy.
875         (acc_copyin): Likewise.
876         (FLAG_FINALIZE): Define.
877         (delete_copyout): Update dynamic refcounts, add support for FINALIZE.
878         (acc_delete_finalize): New function.
879         (acc_delete_finalize_async): New function.
880         (acc_copyout_finalize): New function.
881         (acc_copyout_finalize_async): New function.
882         (gomp_acc_insert_pointer): Update refcounts.
883         (gomp_acc_remove_pointer): Return if data is not present on the
884         accelerator.
885         * oacc-parallel.c (find_pset): Rename to find_pointer.
886         (find_pointer): Add support for GOMP_MAP_POINTER.
887         (handle_ftn_pointers): New function.
888         (GOACC_parallel_keyed): Update refcounts of variables.
889         (GOACC_enter_exit_data): Add support for finalized data mappings.
890         Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling
891         of fortran arrays.
892         (GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}.
893         (GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support
894         for GOMP_MAP_FORCE_FROM.
895         * openacc.f90 (module openacc_internal): Add
896         acc_copyout_finalize_{32_h,64_h,array_h,_l}, and
897         acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for
898         acc_copyout_finalize and acc_delete_finalize.
899         (acc_copyout_finalize_32_h): New subroutine.
900         (acc_copyout_finalize_64_h): New subroutine.
901         (acc_copyout_finalize_array_h): New subroutine.
902         (acc_delete_finalize_32_h): New subroutine.
903         (acc_delete_finalize_64_h): New subroutine.
904         (acc_delete_finalize_array_h): New subroutine.
905         * openacc.h (acc_copyout_finalize): Declare.
906         (acc_copyout_finalize_async): Declare.
907         (acc_delete_finalize): Declare.
908         (acc_delete_finalize_async): Declare.
909         * openacc_lib.h (acc_copyout_finalize): New interface.
910         (acc_delete_finalize): New interface.
911         * target.c (gomp_map_vars): Update dynamic_refcount.
912         (gomp_remove_var): New function.
913         (gomp_unmap_vars): Use it.
914         (gomp_unload_image_from_device): Likewise.
915         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test
916         case to utilize OpenACC 2.5 data clause semantics.
917         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
918         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
919         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
920         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
921         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
922         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
923         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
924         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
925         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
926         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
927         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
928         * testsuite/libgomp.oacc-fortran/data-5.f90: New test.
929         * testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to
930         utilize OpenACC 2.5 data clause semantics.
931         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
932         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
933         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
934         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
935         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
936         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
937         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
938         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
939         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
941 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
943         PR fortran/85841
944         PR testsuite/85865
945         * testsuite/libgomp.fortran/collapse2.f90: Add option "-std=legacy".
946         * testsuite/libgomp.fortran/omp_atomic2.f90: Ditto.
947         * testsuite/libgomp.fortran/omp_parse1.f90: Ditto.
948         * testsuite/libgomp.fortran/omp_parse3.f90: Ditto.
949         * testsuite/libgomp.fortran/task2.f90: Ditto.
950         * testsuite/libgomp.fortran/vla1.f90: Ditto.
951         * testsuite/libgomp.fortran/vla2.f90: Ditto.
952         * testsuite/libgomp.fortran/vla3.f90: Ditto.
953         * testsuite/libgomp.fortran/vla4.f90: Ditto.
954         * testsuite/libgomp.fortran/vla5.f90: Ditto.
955         * testsuite/libgomp.fortran/vla6.f90: Ditto.
956         * testsuite/libgomp.fortran/vla8.f90: Ditto.
957         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Ditto.
958         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Ditto.
960 2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>
962         PR c++/85782
963         * testsuite/libgomp.oacc-c-c++-common/pr85782.c: New test.
965 2018-05-09  Tom de Vries  <tom@codesourcery.com>
967         PR libgomp/82901
968         * oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument
969         to GOACC_enter_exit_data.
971 2018-05-09  Tom de Vries  <tom@codesourcery.com>
973         PR libgomp/83792
974         * oacc-int.h (async_valid_stream_id_p, async_valid_p)
975         (async_synchronous_p): New function.
976         * oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use
977         async_valid_p.
978         * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
979         async_valid_stream_id_p.
980         * oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p.
981         * oacc-parallel.c (GOACC_parallel_keyed): Same.
983 2018-05-07  Tom de Vries  <tom@codesourcery.com>
985         PR testsuite/85677
986         * testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level
987         include directory in ALWAYS_CFLAGS out of $blddir != "" condition.
989 2018-05-03  Tom de Vries  <tom@codesourcery.com>
991         PR testsuite/85106
992         * testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to
993         extra_tool_flags if it contains an -foffload=-fdump-* flag.
994         * testsuite/lib/libgomp.exp: Include scanoffloadtree.exp.
995         * testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump.
997 2018-05-02  Tom de Vries  <tom@codesourcery.com>
999         PR libgomp/85411
1000         * plugin/plugin-nvptx.c (nvptx_exec): Move parsing of
1001         GOMP_OPENACC_DIM ...
1002         * env.c (parse_gomp_openacc_dim): ... here.  New function.
1003         (initialize_env): Call parse_gomp_openacc_dim.
1004         (goacc_default_dims): Define.
1005         * libgomp.h (goacc_default_dims): Declare.
1006         * oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function.
1007         * oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare.
1008         * libgomp.map: New version "GOMP_PLUGIN_1.2". Add
1009         GOMP_PLUGIN_acc_default_dim.
1010         * testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test.
1011         * testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test.
1013 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1015         PR testsuite/83791
1016         * testsuite/libgomp.c++/udr-9.C: Update.
1017         * testsuite/libgomp.c++/atomic-16.C: Remove.
1018         * testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
1019         * testsuite/libgomp.c++/loop-13.C: Remove.
1020         * testsuite/libgomp.c++/loop-14.C: Remove.
1021         * testsuite/libgomp.c++/loop-15.C: Remove.
1022         * testsuite/libgomp.c++/monotonic-1.C: Remove.
1023         * testsuite/libgomp.c++/monotonic-2.C: Remove.
1024         * testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
1025         * testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
1026         * testsuite/libgomp.c++/ordered-1.C: Remove.
1027         * testsuite/libgomp.c++/pr45784.C: Remove.
1028         * testsuite/libgomp.c++/pr64824.C: Remove.
1029         * testsuite/libgomp.c++/pr64868.C: Remove.
1030         * testsuite/libgomp.c++/pr66199-1.C: Remove.
1031         * testsuite/libgomp.c++/pr66199-2.C: Remove.
1032         * testsuite/libgomp.c++/pr66199-3.C: Remove.
1033         * testsuite/libgomp.c++/pr66199-4.C: Remove.
1034         * testsuite/libgomp.c++/pr66199-5.C: Remove.
1035         * testsuite/libgomp.c++/pr66199-6.C: Remove.
1036         * testsuite/libgomp.c++/pr66199-7.C: Remove.
1037         * testsuite/libgomp.c++/pr66199-8.C: Remove.
1038         * testsuite/libgomp.c++/pr66199-9.C: Remove.
1039         * testsuite/libgomp.c++/pr69389.C: Remove.
1040         * testsuite/libgomp.c++/simd10.C: Remove.
1041         * testsuite/libgomp.c++/simd11.C: Remove.
1042         * testsuite/libgomp.c++/simd12.C: Remove.
1043         * testsuite/libgomp.c++/simd13.C: Remove.
1044         * testsuite/libgomp.c++/target-1.C: Remove.
1045         * testsuite/libgomp.c++/target-3.C: Remove.
1046         * testsuite/libgomp.c++/target-4.C: Remove.
1047         * testsuite/libgomp.c++/target-5.C: Remove.
1048         * testsuite/libgomp.c++/taskgroup-1.C: Remove.
1049         * testsuite/libgomp.c++/taskloop-1.C: Remove.
1050         * testsuite/libgomp.c++/taskloop-2.C: Remove.
1051         * testsuite/libgomp.c++/taskloop-3.C: Remove.
1052         * testsuite/libgomp.c++/taskloop-4.C: Remove.
1053         * testsuite/libgomp.c++/udr-9.C: Remove.
1054         * testsuite/libgomp.c++/for-10.C: Remove.
1055         * testsuite/libgomp.c++/for-11.C: Remove.
1056         * testsuite/libgomp.c++/for-12.C: Remove.
1057         * testsuite/libgomp.c++/for-13.C: Remove.
1058         * testsuite/libgomp.c++/for-14.C: Remove.
1059         * testsuite/libgomp.c++/for-9.C: Remove.
1060         * testsuite/libgomp.c/atomic-18.c: Move ...
1061         * testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
1062         * testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
1063         * testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
1064         * testsuite/libgomp.c/loop-13.c: Move ...
1065         * testsuite/libgomp.c-c++-common/loop-13.c: ... here.
1066         * testsuite/libgomp.c/loop-14.c: Move ...
1067         * testsuite/libgomp.c-c++-common/loop-14.c: ... here.
1068         * testsuite/libgomp.c/loop-15.c: Remove.
1069         * testsuite/libgomp.c-c++-common/loop-15.c: New test.
1070         * testsuite/libgomp.c/monotonic-1.c: Move ...
1071         * testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
1072         * testsuite/libgomp.c/monotonic-2.c: Move ...
1073         * testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
1074         * testsuite/libgomp.c/nonmonotonic-1.c: Move ...
1075         * testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
1076         * testsuite/libgomp.c/nonmonotonic-2.c: Move ...
1077         * testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
1078         * testsuite/libgomp.c/ordered-4.c: Move ...
1079         * testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
1080         * testsuite/libgomp.c/pr45784.c: Move ...
1081         * testsuite/libgomp.c-c++-common/pr45784.c: ... here.
1082         * testsuite/libgomp.c/pr64824.c: Move ...
1083         * testsuite/libgomp.c-c++-common/pr64824.c: ... here.
1084         * testsuite/libgomp.c/pr64868.c: Move ...
1085         * testsuite/libgomp.c-c++-common/pr64868.c: ... here.
1086         * testsuite/libgomp.c/pr66199-1.c: Move ...
1087         * testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
1088         * testsuite/libgomp.c/pr66199-2.c: Move ...
1089         * testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
1090         * testsuite/libgomp.c/pr66199-3.c: Move ...
1091         * testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
1092         * testsuite/libgomp.c/pr66199-4.c: Move ...
1093         * testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
1094         * testsuite/libgomp.c/pr66199-5.c: Move ...
1095         * testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
1096         * testsuite/libgomp.c/pr66199-6.c: Move ...
1097         * testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
1098         * testsuite/libgomp.c/pr66199-7.c: Move ...
1099         * testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
1100         * testsuite/libgomp.c/pr66199-8.c: Move ...
1101         * testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
1102         * testsuite/libgomp.c/pr66199-9.c: Move ...
1103         * testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
1104         * testsuite/libgomp.c/pr69389.c: Move ...
1105         * testsuite/libgomp.c-c++-common/pr69389.c: ... here.
1106         * testsuite/libgomp.c/simd-14.c: Move ...
1107         * testsuite/libgomp.c-c++-common/simd-14.c: ... here.
1108         * testsuite/libgomp.c/simd-15.c: Move ...
1109         * testsuite/libgomp.c-c++-common/simd-15.c: ... here.
1110         * testsuite/libgomp.c/simd-16.c: Move ...
1111         * testsuite/libgomp.c-c++-common/simd-16.c: ... here.
1112         * testsuite/libgomp.c/simd-17.c: Move ...
1113         * testsuite/libgomp.c-c++-common/simd-17.c: ... here.
1114         * testsuite/libgomp.c/target-1.c: Move ...
1115         * testsuite/libgomp.c-c++-common/target-1.c: ... here.
1116         * testsuite/libgomp.c/target-10.c: Move ...
1117         * testsuite/libgomp.c-c++-common/target-10.c: ... here.
1118         * testsuite/libgomp.c/target-13.c: Move ...
1119         * testsuite/libgomp.c-c++-common/target-13.c: ... here.
1120         * testsuite/libgomp.c/target-2.c: Move ...
1121         * testsuite/libgomp.c-c++-common/target-2.c: ... here.
1122         * testsuite/libgomp.c/taskgroup-1.c: Move ...
1123         * testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
1124         * testsuite/libgomp.c/taskloop-1.c: Move ...
1125         * testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
1126         * testsuite/libgomp.c/taskloop-2.c: Move ...
1127         * testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
1128         * testsuite/libgomp.c/taskloop-3.c: Move ...
1129         * testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
1130         * testsuite/libgomp.c/taskloop-4.c: Move ...
1131         * testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
1132         * testsuite/libgomp.c/udr-1.c: Move ...
1133         * testsuite/libgomp.c-c++-common/udr-1.c: ... here.
1134         * testsuite/libgomp.c/for-1.c: Move ...
1135         * testsuite/libgomp.c-c++-common/for-1.c: ... here.
1136         * testsuite/libgomp.c/for-1.h: Move ...
1137         * testsuite/libgomp.c-c++-common/for-1.h: ... here.
1138         * testsuite/libgomp.c/for-2.c: Move ...
1139         * testsuite/libgomp.c-c++-common/for-2.c: ... here.
1140         * testsuite/libgomp.c/for-2.h: Move ...
1141         * testsuite/libgomp.c-c++-common/for-2.h: ... here.
1142         * testsuite/libgomp.c/for-3.c: Move ...
1143         * testsuite/libgomp.c-c++-common/for-3.c: ... here.
1144         * testsuite/libgomp.c/for-4.c: Move ...
1145         * testsuite/libgomp.c-c++-common/for-4.c: ... here.
1146         * testsuite/libgomp.c/for-5.c: Move ...
1147         * testsuite/libgomp.c-c++-common/for-5.c: ... here.
1148         * testsuite/libgomp.c/for-6.c: Move ...
1149         * testsuite/libgomp.c-c++-common/for-6.c: ... here.
1151 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1153         PR libgomp/82428
1154         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use
1155         __builtin_goacc_parlevel_{id,size}.
1156         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same.
1157         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same.
1158         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same.
1159         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same.
1160         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same.
1161         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same.
1162         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same.
1163         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same.
1164         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same.
1165         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same.
1166         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same.
1167         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same.
1168         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same.
1169         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same.
1170         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same.
1171         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same.
1172         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same.
1173         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same.
1174         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same.
1175         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same.
1176         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same.
1177         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same.
1178         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same.
1180 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1182         PR testsuite/85106
1183         * testsuite/lib/libgomp.exp: Include scanltranstree.exp.
1185 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1187         PR testsuite/85106
1188         * testsuite/lib/libgomp.exp: Include scanwpaipa.exp.
1190 2018-04-29  Julian Brown  <julian@codesourcery.com>
1191             Tom de Vries  <tom@codesourcery.com>
1193         PR testsuite/85527
1194         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow
1195         arbitrary order for iterations of atomic subtract check.
1197 2018-04-28  Tom de Vries  <tom@codesourcery.com>
1199         PR testsuite/85527
1200         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store
1201         atomic capture results obtained in parallel loop to an array, instead of
1202         to a scalar.
1204 2018-04-26  Tom de Vries  <tom@codesourcery.com>
1206         PR libgomp/84020
1207         * plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
1208         * plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
1209         (process_GOMP_NVPTX_JIT): New function.
1210         (link_ptx): Use process_GOMP_NVPTX_JIT.
1212 2018-04-26  Richard Biener <rguenther@suse.de>
1213             Tom de Vries  <tom@codesourcery.com>
1215         PR lto/85422
1216         * testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
1218 2018-04-26  Tom de Vries  <tom@codesourcery.com>
1220         PR target/85519
1221         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
1222         recursion depth from 25 to 23.
1223         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
1225 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1227         * configure: Regenerated.
1229 2018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1230             Tom de Vries  <tom@codesourcery.com>
1232         PR target/85445
1233         * testsuite/libgomp.oacc-c++/ref-1.C: New.
1235 2018-04-19  Thomas Schwinge  <thomas@codesourcery.com>
1237         PR libgomp/85463
1238         * testsuite/libgomp.oacc-fortran/error_stop-1.f: New file.
1239         * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
1240         * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
1241         * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
1242         * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
1243         * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
1245         PR libfortran/85166
1246         * testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call
1247         abort".
1248         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1250 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
1252         * configure: Regenerated.
1254 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
1256         PR jit/85384
1257         * configure: Regenerate.
1259 2018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
1260             Tom de Vries  <tom@codesourcery.com>
1262         PR middle-end/84955
1263         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
1264         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
1266 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1268         PR fortran/83064
1269         PR testsuite/85346
1270         * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
1271         test from gfortran.dg to here.
1273 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
1275         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346.
1276         * testsuite/libgomp.oacc-fortran/pr84955.f90: Likewise.
1278 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
1280         PR middle-end/84955
1281         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
1282         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
1284 2018-04-05  Tom de Vries  <tom@codesourcery.com>
1286         PR target/85204
1287         * testsuite/libgomp.oacc-c-c++-common/broadcast-1.c: New test.
1289 2018-03-26  Tom de Vries  <tom@codesourcery.com>
1291         PR tree-optimization/85063
1292         * testsuite/libgomp.c/switch-conversion-2.c: New test.
1293         * testsuite/libgomp.c/switch-conversion.c: New test.
1294         * testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test.
1295         * testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test.
1297 2018-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1299         PR fortran/84381
1300         * testsuite/libgomp.fortran/aligned1.f03: Replace non-standard
1301         call abort by STOP n.
1302         * testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise.
1303         * testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise.
1304         * testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise.
1305         * testsuite/libgomp.fortran/allocatable1.f90: Likewise.
1306         * testsuite/libgomp.fortran/allocatable10.f90: Likewise.
1307         * testsuite/libgomp.fortran/allocatable11.f90: Likewise.
1308         * testsuite/libgomp.fortran/allocatable12.f90: Likewise.
1309         * testsuite/libgomp.fortran/allocatable2.f90: Likewise.
1310         * testsuite/libgomp.fortran/allocatable3.f90: Likewise.
1311         * testsuite/libgomp.fortran/allocatable4.f90: Likewise.
1312         * testsuite/libgomp.fortran/allocatable5.f90: Likewise.
1313         * testsuite/libgomp.fortran/allocatable6.f90: Likewise.
1314         * testsuite/libgomp.fortran/allocatable7.f90: Likewise.
1315         * testsuite/libgomp.fortran/allocatable8.f90: Likewise.
1316         * testsuite/libgomp.fortran/allocatable9.f90: Likewise.
1317         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.
1318         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise.
1319         * testsuite/libgomp.fortran/associate1.f90: Likewise.
1320         * testsuite/libgomp.fortran/associate2.f90: Likewise.
1321         * testsuite/libgomp.fortran/associate3.f90: Likewise.
1322         * testsuite/libgomp.fortran/cancel-do-1.f90: Likewise.
1323         * testsuite/libgomp.fortran/cancel-do-2.f90: Likewise.
1324         * testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise.
1325         * testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise.
1326         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise.
1327         * testsuite/libgomp.fortran/character1.f90: Likewise.
1328         * testsuite/libgomp.fortran/character2.f90: Likewise.
1329         * testsuite/libgomp.fortran/collapse1.f90: Likewise.
1330         * testsuite/libgomp.fortran/collapse2.f90: Likewise.
1331         * testsuite/libgomp.fortran/collapse3.f90: Likewise.
1332         * testsuite/libgomp.fortran/collapse4.f90: Likewise.
1333         * testsuite/libgomp.fortran/crayptr1.f90: Likewise.
1334         * testsuite/libgomp.fortran/crayptr2.f90: Likewise.
1335         * testsuite/libgomp.fortran/crayptr3.f90: Likewise.
1336         * testsuite/libgomp.fortran/declare-simd-1.f90: Likewise.
1337         * testsuite/libgomp.fortran/declare-simd-3.f90: Likewise.
1338         * testsuite/libgomp.fortran/declare-target-2.f90: Likewise.
1339         * testsuite/libgomp.fortran/depend-1.f90: Likewise.
1340         * testsuite/libgomp.fortran/depend-2.f90: Likewise.
1341         * testsuite/libgomp.fortran/depend-3.f90: Likewise.
1342         * testsuite/libgomp.fortran/do1.f90: Likewise.
1343         * testsuite/libgomp.fortran/do2.f90: Likewise.
1344         * testsuite/libgomp.fortran/doacross1.f90: Likewise.
1345         * testsuite/libgomp.fortran/doacross2.f90: Likewise.
1346         * testsuite/libgomp.fortran/doacross3.f90: Likewise.
1347         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise.
1348         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise.
1349         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise.
1350         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
1351         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise.
1352         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise.
1353         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise.
1354         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise.
1355         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise.
1356         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
1357         * testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise.
1358         * testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise.
1359         * testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise.
1360         * testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise.
1361         * testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise.
1362         * testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise.
1363         * testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise.
1364         * testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise.
1365         * testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise.
1366         * testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise.
1367         * testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise.
1368         * testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise.
1369         * testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise.
1370         * testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise.
1371         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
1372         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise.
1373         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise.
1374         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise.
1375         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise.
1376         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise.
1377         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
1378         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
1379         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise.
1380         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise.
1381         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise.
1382         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise.
1383         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise.
1384         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise.
1385         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise.
1386         * testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise.
1387         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise.
1388         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
1389         * testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise.
1390         * testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise.
1391         * testsuite/libgomp.fortran/lastprivate1.f90: Likewise.
1392         * testsuite/libgomp.fortran/lastprivate2.f90: Likewise.
1393         * testsuite/libgomp.fortran/lib1.f90: Likewise.
1394         * testsuite/libgomp.fortran/lib2.f: Likewise.
1395         * testsuite/libgomp.fortran/lib3.f: Likewise.
1396         * testsuite/libgomp.fortran/lib4.f90: Likewise.
1397         * testsuite/libgomp.fortran/lock-1.f90: Likewise.
1398         * testsuite/libgomp.fortran/lock-2.f90: Likewise.
1399         * testsuite/libgomp.fortran/nested1.f90: Likewise.
1400         * testsuite/libgomp.fortran/nestedfn1.f90: Likewise.
1401         * testsuite/libgomp.fortran/nestedfn2.f90: Likewise.
1402         * testsuite/libgomp.fortran/nestedfn3.f90: Likewise.
1403         * testsuite/libgomp.fortran/nestedfn4.f90: Likewise.
1404         * testsuite/libgomp.fortran/nestedfn5.f90: Likewise.
1405         * testsuite/libgomp.fortran/omp_atomic1.f90: Likewise.
1406         * testsuite/libgomp.fortran/omp_atomic2.f90: Likewise.
1407         * testsuite/libgomp.fortran/omp_atomic3.f90: Likewise.
1408         * testsuite/libgomp.fortran/omp_atomic4.f90: Likewise.
1409         * testsuite/libgomp.fortran/omp_atomic5.f90: Likewise.
1410         * testsuite/libgomp.fortran/omp_cond1.f: Likewise.
1411         * testsuite/libgomp.fortran/omp_cond2.f: Likewise.
1412         * testsuite/libgomp.fortran/omp_cond3.F90: Likewise.
1413         * testsuite/libgomp.fortran/omp_cond4.F90: Likewise.
1414         * testsuite/libgomp.fortran/omp_parse1.f90: Likewise.
1415         * testsuite/libgomp.fortran/omp_parse2.f90: Likewise.
1416         * testsuite/libgomp.fortran/omp_parse3.f90: Likewise.
1417         * testsuite/libgomp.fortran/omp_parse4.f90: Likewise.
1418         * testsuite/libgomp.fortran/openmp_version-1.f: Likewise.
1419         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1420         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise.
1421         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise.
1422         * testsuite/libgomp.fortran/pointer1.f90: Likewise.
1423         * testsuite/libgomp.fortran/pointer2.f90: Likewise.
1424         * testsuite/libgomp.fortran/pr25162.f: Likewise.
1425         * testsuite/libgomp.fortran/pr25219.f90: Likewise.
1426         * testsuite/libgomp.fortran/pr27395-1.f90: Likewise.
1427         * testsuite/libgomp.fortran/pr27395-2.f90: Likewise.
1428         * testsuite/libgomp.fortran/pr27416-1.f90: Likewise.
1429         * testsuite/libgomp.fortran/pr27916-1.f90: Likewise.
1430         * testsuite/libgomp.fortran/pr27916-2.f90: Likewise.
1431         * testsuite/libgomp.fortran/pr28390.f: Likewise.
1432         * testsuite/libgomp.fortran/pr29629.f90: Likewise.
1433         * testsuite/libgomp.fortran/pr32550.f90: Likewise.
1434         * testsuite/libgomp.fortran/pr33880.f90: Likewise.
1435         * testsuite/libgomp.fortran/pr34020.f90: Likewise.
1436         * testsuite/libgomp.fortran/pr35130.f90: Likewise.
1437         * testsuite/libgomp.fortran/pr42162.f90: Likewise.
1438         * testsuite/libgomp.fortran/pr46753.f90: Likewise.
1439         * testsuite/libgomp.fortran/pr48894.f90: Likewise.
1440         * testsuite/libgomp.fortran/pr49792-1.f90: Likewise.
1441         * testsuite/libgomp.fortran/pr49792-2.f90: Likewise.
1442         * testsuite/libgomp.fortran/pr63938-1.f90: Likewise.
1443         * testsuite/libgomp.fortran/pr63938-2.f90: Likewise.
1444         * testsuite/libgomp.fortran/pr65597.f90: Likewise.
1445         * testsuite/libgomp.fortran/pr66199-1.f90: Likewise.
1446         * testsuite/libgomp.fortran/pr71014.f90: Likewise.
1447         * testsuite/libgomp.fortran/pr81304.f90: Likewise.
1448         * testsuite/libgomp.fortran/pr81841.f90: Likewise.
1449         * testsuite/libgomp.fortran/pr84418-1.f90: Likewise.
1450         * testsuite/libgomp.fortran/pr84418-2.f90: Likewise.
1451         * testsuite/libgomp.fortran/procptr1.f90: Likewise.
1452         * testsuite/libgomp.fortran/recursion1.f90: Likewise.
1453         * testsuite/libgomp.fortran/reduction1.f90: Likewise.
1454         * testsuite/libgomp.fortran/reduction2.f90: Likewise.
1455         * testsuite/libgomp.fortran/reduction3.f90: Likewise.
1456         * testsuite/libgomp.fortran/reduction4.f90: Likewise.
1457         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
1458         * testsuite/libgomp.fortran/reduction6.f90: Likewise.
1459         * testsuite/libgomp.fortran/reference1.f90: Likewise.
1460         * testsuite/libgomp.fortran/reference2.f90: Likewise.
1461         * testsuite/libgomp.fortran/retval1.f90: Likewise.
1462         * testsuite/libgomp.fortran/retval2.f90: Likewise.
1463         * testsuite/libgomp.fortran/sharing1.f90: Likewise.
1464         * testsuite/libgomp.fortran/sharing2.f90: Likewise.
1465         * testsuite/libgomp.fortran/simd1.f90: Likewise.
1466         * testsuite/libgomp.fortran/simd2.f90: Likewise.
1467         * testsuite/libgomp.fortran/simd3.f90: Likewise.
1468         * testsuite/libgomp.fortran/simd4.f90: Likewise.
1469         * testsuite/libgomp.fortran/simd5.f90: Likewise.
1470         * testsuite/libgomp.fortran/simd6.f90: Likewise.
1471         * testsuite/libgomp.fortran/simd7.f90: Likewise.
1472         * testsuite/libgomp.fortran/stack.f90: Likewise.
1473         * testsuite/libgomp.fortran/strassen.f90: Likewise.
1474         * testsuite/libgomp.fortran/tabs1.f90: Likewise.
1475         * testsuite/libgomp.fortran/tabs2.f: Likewise.
1476         * testsuite/libgomp.fortran/target1.f90: Likewise.
1477         * testsuite/libgomp.fortran/target2.f90: Likewise.
1478         * testsuite/libgomp.fortran/target3.f90: Likewise.
1479         * testsuite/libgomp.fortran/target4.f90: Likewise.
1480         * testsuite/libgomp.fortran/target5.f90: Likewise.
1481         * testsuite/libgomp.fortran/target6.f90: Likewise.
1482         * testsuite/libgomp.fortran/target7.f90: Likewise.
1483         * testsuite/libgomp.fortran/target8.f90: Likewise.
1484         * testsuite/libgomp.fortran/task1.f90: Likewise.
1485         * testsuite/libgomp.fortran/task2.f90: Likewise.
1486         * testsuite/libgomp.fortran/task3.f90: Likewise.
1487         * testsuite/libgomp.fortran/task4.f90: Likewise.
1488         * testsuite/libgomp.fortran/taskgroup1.f90: Likewise.
1489         * testsuite/libgomp.fortran/taskloop1.f90: Likewise.
1490         * testsuite/libgomp.fortran/taskloop2.f90: Likewise.
1491         * testsuite/libgomp.fortran/taskloop3.f90: Likewise.
1492         * testsuite/libgomp.fortran/taskloop4.f90: Likewise.
1493         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
1494         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
1495         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
1496         * testsuite/libgomp.fortran/threadprivate4.f90: Likewise.
1497         * testsuite/libgomp.fortran/udr1.f90: Likewise.
1498         * testsuite/libgomp.fortran/udr10.f90: Likewise.
1499         * testsuite/libgomp.fortran/udr11.f90: Likewise.
1500         * testsuite/libgomp.fortran/udr12.f90: Likewise.
1501         * testsuite/libgomp.fortran/udr13.f90: Likewise.
1502         * testsuite/libgomp.fortran/udr14.f90: Likewise.
1503         * testsuite/libgomp.fortran/udr15.f90: Likewise.
1504         * testsuite/libgomp.fortran/udr2.f90: Likewise.
1505         * testsuite/libgomp.fortran/udr3.f90: Likewise.
1506         * testsuite/libgomp.fortran/udr4.f90: Likewise.
1507         * testsuite/libgomp.fortran/udr5.f90: Likewise.
1508         * testsuite/libgomp.fortran/udr6.f90: Likewise.
1509         * testsuite/libgomp.fortran/udr7.f90: Likewise.
1510         * testsuite/libgomp.fortran/udr8.f90: Likewise.
1511         * testsuite/libgomp.fortran/udr9.f90: Likewise.
1512         * testsuite/libgomp.fortran/vla1.f90: Likewise.
1513         * testsuite/libgomp.fortran/vla2.f90: Likewise.
1514         * testsuite/libgomp.fortran/vla3.f90: Likewise.
1515         * testsuite/libgomp.fortran/vla4.f90: Likewise.
1516         * testsuite/libgomp.fortran/vla5.f90: Likewise.
1517         * testsuite/libgomp.fortran/vla6.f90: Likewise.
1518         * testsuite/libgomp.fortran/vla7.f90: Likewise.
1519         * testsuite/libgomp.fortran/vla8.f90: Likewise.
1520         * testsuite/libgomp.fortran/workshare1.f90: Likewise.
1521         * testsuite/libgomp.fortran/workshare2.f90: Likewise.
1522         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
1523         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1524         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
1525         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
1526         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
1527         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
1528         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
1529         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
1530         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
1531         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise.
1532         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
1533         * testsuite/libgomp.oacc-fortran/c2.pl: Likewise.
1534         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
1535         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
1536         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
1537         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
1538         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
1539         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
1540         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
1541         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
1542         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
1543         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90: Likewise.
1544         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: Likewise.
1545         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
1546         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
1547         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
1548         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
1549         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
1550         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
1551         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
1552         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
1553         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
1554         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
1555         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
1556         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
1557         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
1558         * testsuite/libgomp.oacc-fortran/host_data-1.f90: Likewise.
1559         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
1560         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise.
1561         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
1562         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise.
1563         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise.
1564         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise.
1565         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise.
1566         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
1567         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
1568         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
1569         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
1570         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
1571         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
1572         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
1573         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
1574         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
1575         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
1576         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
1577         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
1578         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
1579         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
1580         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Likewise.
1581         * testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise.
1582         * testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise.
1583         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
1584         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
1585         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
1586         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise.
1587         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
1588         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
1589         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
1590         * testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
1591         * testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise.
1592         * testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise.
1593         * testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise.
1594         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
1595         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
1596         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
1597         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
1598         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
1599         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
1600         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
1601         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
1602         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
1603         * testsuite/libgomp.oacc-fortran/reduction-8.f90: Likewise.
1604         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
1605         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
1606         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
1607         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
1608         * testsuite/libgomp.oacc-fortran/routine-5.f90: Likewise.
1609         * testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
1610         * testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise.
1611         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
1612         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
1613         * testsuite/libgomp.oacc-fortran/update-1.f90: Likewise.
1615 2018-03-20  Richard Biener  <rguenther@suse.de>
1617         * testsuite/libgomp.graphite/force-parallel-4.c: XFAIL one
1618         parallelizable loop.
1620 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1622         PR target/84148
1623         * configure: Regenerate.
1625 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
1627         PR fortran/84418
1628         * libgomp.fortran/pr84418-1.f90: New test.
1629         * libgomp.fortran/pr84418-2.f90: New test.
1631 2018-02-14  Jakub Jelinek  <jakub@redhat.com>
1633         PR fortran/84313
1634         * testsuite/libgomp.fortran/threadprivate4.f90: Add
1635         -std=f2003 -fall-intrinsics into dg-additional-options.
1637 2018-02-08  Martin Jambor  <mjambor@suse.cz>
1639         * testsuite/libgomp.hsa.c/pr82416.c: Make the function with target
1640         clonable.
1642 2018-02-08  Martin Jambor  <mjambor@suse.cz>
1644         * testsuite/libgomp.hsa.c/staticvar.c: New test.
1646 2018-02-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1648         * testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)
1649         [__cplusplus]: Declare extern "C".
1651 2018-02-07  Tom de Vries  <tom@codesourcery.com>
1653         PR libgomp/84217
1654         * testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test.
1656 2018-01-29  Christoph Spiel  <cspiel@freenet.de>
1657             Jakub Jelinek  <jakub@redhat.com>
1659         PR libgomp/84096
1660         * omp.h.in (omp_init_nest_lock_with_hint): Use omp_nest_lock_t
1661         instead of omp_lock_t.
1663 2018-01-25  Tom de Vries  <tom@codesourcery.com>
1665         PR target/84028
1666         * testsuite/libgomp.oacc-fortran/pr84028.f90: New test.
1668 2018-01-24  Tom de Vries  <tom@codesourcery.com>
1670         PR target/83589
1671         * testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test.
1673 2018-01-24  Tom de Vries  <tom@codesourcery.com>
1675         PR target/81352
1676         * testsuite/libgomp.oacc-fortran/pr81352.f90: New test.
1678 2018-01-19  Tom de Vries  <tom@codesourcery.com>
1679             Cesar Philippidis  <cesar@codesourcery.com>
1681         PR target/83920
1682         * testsuite/libgomp.oacc-c-c++-common/pr83920.c: New test.
1683         * testsuite/libgomp.oacc-fortran/pr83920.f90: New test.
1685 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1687         Update copyright years.
1689         * libgomp.texi: Bump @copying's copyright year.
1691 2017-12-30  Tom de Vries  <tom@codesourcery.com>
1693         PR libgomp/83046
1694         * testsuite/libgomp.oacc-c-c++-common/pr83046.c: New test.
1695         * testsuite/libgomp.c-c++-common/pr83046.c: New test.
1697 2017-12-27  Tom de Vries  <tom@codesourcery.com>
1699         PR c++/83046
1700         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c (test_static)
1701         (test_nonstatic): Fix return type to workaround PR83046.
1703 2017-12-05  Jakub Jelinek  <jakub@redhat.com>
1705         PR testsuite/83281
1706         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use
1707         j suffix instead of i.
1708         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main):
1709         Likewise.
1711 2017-12-01  Cesar Philippidis  <cesar@codesourcery.com>
1713         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing
1714         call to acc_wait (1).
1716 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
1718         PR fortran/81304
1719         * testsuite/libgomp.fortran/pr81304.f90: New test.
1721 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
1723         PR fortran/81841
1724         * libgomp.fortran/pr81841.f90: New test.
1726 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
1728         PR libgomp/83106
1729         * target.c (gomp_target_init): Compute lengths just once and
1730         use them in both malloc size and subsequent copying.
1732 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1734         * configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS.
1735         * acinclude.m4: Add cet.m4.
1736         * configure: Regenerate.
1737         * Makefile.in: Likewise.
1738         * testsuite/Makefile.in: Likewise.
1740 2017-11-15  Tom de Vries  <tom@codesourcery.com>
1742         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: New test, copied
1743         from asyncwait-1.f90.  Rewrite into C.  Rewrite from float to int.
1744         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-2.c: New test, copied
1745         from asyncwait-2.f90.  Rewrite into C.  Rewrite from float to int.
1746         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-3.c: New test, copied
1747         from asyncwait-3.f90.  Rewrite into C.  Rewrite from float to int.
1749 2017-11-14  Tom de Vries  <tom@codesourcery.com>
1751         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Allow to run for
1752         non-nvidia devices.
1754 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
1756         PR c++/82835
1757         * testsuite/libgomp.c++/pr82835.C: New test.
1759 2017-11-06  Martin Liska  <mliska@suse.cz>
1761         * testsuite/libgomp.c++/loop-2.C: Return a value
1762         for functions with non-void return type, or change type to void,
1763         or add -Wno-return-type for test.
1764         * testsuite/libgomp.c++/loop-4.C: Likewise.
1765         * testsuite/libgomp.c++/parallel-1.C: Likewise.
1766         * testsuite/libgomp.c++/shared-1.C: Likewise.
1767         * testsuite/libgomp.c++/single-1.C: Likewise.
1768         * testsuite/libgomp.c++/single-2.C: Likewise.
1770 2017-10-31  Tom de Vries  <tom@codesourcery.com>
1772         * plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
1773         "do {} while (false)".
1774         (init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
1775         after HSA_DEBUG call.
1777 2017-10-28  Jakub Jelinek  <jakub@redhat.com>
1779         * target.c (struct gomp_coalesce_buf): New type.
1780         (MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
1781         (gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
1782         (gomp_copy_host2dev): Add CBUF argument, if copying into
1783         the cached ranges, memcpy into buffer instead of copying
1784         into device.
1785         (gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
1786         Add CBUF argument, pass it through to other calls.
1787         (gomp_map_vars): Aggregate copies from host to device if small enough
1788         and with small enough gaps in between into memcpy into a buffer and
1789         fewer host to device copies from the buffer.
1790         (gomp_update): Adjust gomp_copy_host2dev caller.
1792 2017-10-17  Thomas Schwinge  <thomas@codesourcery.com>
1794         * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
1795         run" directive.
1796         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
1797         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
1798         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
1799         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
1801 2017-10-16  Tom de Vries  <tom@codesourcery.com>
1803         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
1804         openacc_nvidia_accel_selected.
1805         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
1806         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
1807         * testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
1808         * testsuite/libgomp.oacc-fortran/declare-4.f90: Same
1809         * testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
1810         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
1811         openacc_nvidia_accel_selected. Skip for shared memory device.
1812         * testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
1813         * testsuite/libgomp.oacc-fortran/declare-3.f90: Same.
1815 2017-10-09  Martin Jambor  <mjambor@suse.cz>
1817         PR hsa/82416
1818         * testsuite/libgomp.hsa.c/pr82416.c: New test.
1820 2017-10-07  Tom de Vries  <tom@codesourcery.com>
1822         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
1823         Remove acc_device_nvidia references.
1824         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
1825         Same.
1827 2017-10-05  Tom de Vries  <tom@codesourcery.com>
1829         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove
1830         vector_length(32) clause from acc parallel directive.
1831         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same.
1833 2017-10-04  Tom de Vries  <tom@codesourcery.com>
1835         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
1836         (main): Reduce sum of arr elements.  Assert that hres is exactly
1837         representable in 32-bit floating point.
1838         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
1839         (main): Reduce sum of arr elements.  Assert that hres and hmres are
1840         exactly representable in 32-bit floating point.
1841         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
1843 2017-09-28  Tom de Vries  <tom@codesourcery.com>
1845         * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option
1846         setting.
1847         * testsuite/libgomp.c++/pr69393.C: Same.
1848         * testsuite/libgomp.c++/taskloop-1.C: Same.
1849         * testsuite/libgomp.c++/taskloop-3.C: Same.
1850         * testsuite/libgomp.c++/taskloop-4.C: Same.
1851         * testsuite/libgomp.c/for-4.c: Same.
1852         * testsuite/libgomp.c/pr66199-3.c: Same.
1853         * testsuite/libgomp.c/pr66199-4.c: Same.
1854         * testsuite/libgomp.c/pr66199-6.c: Same.
1855         * testsuite/libgomp.c/taskloop-1.c: Same.
1856         * testsuite/libgomp.c/taskloop-3.c: Same.
1857         * testsuite/libgomp.c/taskloop-4.c: Same.
1858         * testsuite/libgomp.fortran/aligned1.f03: Same.
1859         * testsuite/libgomp.fortran/condinc1.f: Same.
1860         * testsuite/libgomp.fortran/condinc3.f90: Same.
1861         * testsuite/libgomp.fortran/crayptr1.f90: Same.
1862         * testsuite/libgomp.fortran/crayptr2.f90: Same.
1863         * testsuite/libgomp.fortran/crayptr3.f90: Same.
1864         * testsuite/libgomp.fortran/omp_cond1.f: Same.
1865         * testsuite/libgomp.fortran/omp_cond3.F90: Same.
1866         * testsuite/libgomp.fortran/pr66199-1.f90: Same.
1867         * testsuite/libgomp.fortran/pr66199-2.f90: Same.
1868         * testsuite/libgomp.fortran/recursion1.f90: Same.
1869         * testsuite/libgomp.fortran/target2.f90: Same.
1870         * testsuite/libgomp.fortran/target5.f90: Same.
1871         * testsuite/libgomp.fortran/task3.f90: Same.
1873 2017-09-28  Tom de Vries  <tom@codesourcery.com>
1875         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove
1876         vector_length(32) clause from acc parallel directive.
1877         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same.
1879 2017-09-27  Tom de Vries  <tom@codesourcery.com>
1881         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main):
1882         Remove acc_device_nvidia references.
1884 2017-09-16  Tom de Vries  <tom@codesourcery.com>
1886         PR c/81875
1887         * testsuite/libgomp.c-c++-common/pr81875.c: New test.
1889 2017-09-14  Tom de Vries  <tom@codesourcery.com>
1891         * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove.
1892         * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ...
1893         * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here.
1894         * testsuite/libgomp.c/c.exp: Include test-cases from
1895         libgomp.c-c++-common.
1896         * testsuite/libgomp.c++/c++.exp: Same.  Force c++-mode compilation of .c
1897         files.
1899 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
1901         PR c++/81314
1902         * testsuite/libgomp.c++/pr81314.C: New test.
1904 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
1906         * libgomp.texi (Top): www.openacc.org now uses https.
1907         (Enabling OpenACC): Ditto.
1908         (acc_get_num_devices): Ditto.
1909         (acc_set_device_type): Ditto.
1910         (acc_get_device_type): Ditto.
1911         (acc_set_device_num): Ditto.
1912         (acc_get_device_num): Ditto.
1913         (acc_async_test): Ditto.
1914         (acc_async_test_all): Ditto.
1915         (acc_wait): Ditto.
1916         (acc_wait_all): Ditto.
1917         (acc_wait_all_async): Ditto.
1918         (acc_wait_async): Ditto.
1919         (acc_init): Ditto.
1920         (acc_shutdown): Ditto.
1921         (acc_on_device): Ditto.
1922         (acc_malloc): Ditto.
1923         (acc_free): Ditto.
1924         (acc_copyin): Ditto.
1925         (acc_present_or_copyin): Ditto.
1926         (acc_create): Ditto.
1927         (acc_present_or_create): Ditto.
1928         (acc_copyout): Ditto.
1929         (acc_delete): Ditto.
1930         (acc_update_device): Ditto.
1931         (acc_update_self): Ditto.
1932         (acc_map_data): Ditto.
1933         (acc_unmap_data): Ditto.
1934         (acc_deviceptr): Ditto.
1935         (acc_hostptr): Ditto.
1936         (acc_is_present): Ditto.
1937         (acc_memcpy_to_device): Ditto.
1938         (acc_memcpy_from_device): Ditto.
1939         (acc_get_current_cuda_device): Ditto.
1940         (acc_get_current_cuda_context): Ditto.
1941         (acc_get_cuda_stream): Ditto.
1942         (acc_set_cuda_stream): Ditto.
1943         (ACC_DEVICE_TYPE): Ditto.
1944         (ACC_DEVICE_NUM): Ditto.
1945         (OpenACC Library Interoperability): Ditto.
1947 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
1949         PR c/81687
1950         * testsuite/libgomp.c/pr81687-1.c: New test.
1951         * testsuite/libgomp.c/pr81687-2.c: New test.
1953 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
1955         PR c/69389
1956         * testsuite/libgomp.c/pr69389.c: New test.
1957         * testsuite/libgomp.c++/pr69389.C: New test.
1959 2017-08-07  Tom de Vries  <tom@codesourcery.com>
1961         PR middle-end/78266
1962         * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
1963         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
1965 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
1967         PR c/45784
1968         * testsuite/libgomp.c/pr45784.c: New test.
1969         * testsuite/libgomp.c++/pr45784.C: New test.
1971 2017-07-19  Tom de Vries  <tom@codesourcery.com>
1973         * testsuite/libgomp.oacc-c/vec.c: New test.
1975 2017-07-03  Tom de Vries  <tom@codesourcery.com>
1977         * plugin/plugin-hsa.c: Fix secure_getenv.h include.
1979 2017-06-27  Tom de Vries  <tom@codesourcery.com>
1981         * plugin/plugin-nvptx.c (notify_var): New function.
1982         (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.
1984 2017-06-27  Tom de Vries  <tom@codesourcery.com>
1986         * env.c (parse_unsigned_long_1): Factor out of ...
1987         (parse_unsigned_long): ... here.
1988         (parse_int_1): Factor out of ...
1989         (parse_int): ... here.
1990         (parse_int_secure): New function.
1991         (initialize_env): Use parse_int_secure for GOMP_DEBUG.
1992         * secure_getenv.h: Factor out of ...
1993         * plugin/plugin-hsa.c: ... here.
1994         * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.
1996 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
1998         PR c++/81130
1999         * testsuite/libgomp.c++/pr81130.C: New test.
2001 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2003         * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
2004         default args.
2005         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
2006         dg-xfail-run-if default args.
2008 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2010         * testsuite/libgomp.c/pr39591-2.c: Fix test case.
2011         * testsuite/libgomp.c/pr39591-3.c: Likewise.
2013 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
2015         PR libgomp/80822
2016         * config/linux/affinity.c (gomp_affinity_init_level_1): New function.
2017         (gomp_affinity_init_level): Use it.  Always analyze the core and thread
2018         sibling lists, depending on level just pick up what CPUs to put
2019         together into a place vs. whether add multiple ordered places.
2021 2017-05-24  Thomas Schwinge  <thomas@codesourcery.com>
2023         * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
2024         * libgomp.map (OACC_2.0.1): Add these.
2025         * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
2026         for "acc_wait", and "acc_wait_all", respectively.
2027         * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
2028         for "acc_wait", and "acc_wait_all", respectively.
2029         * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
2030         * libgomp.texi (acc_wait, acc_wait_all): Update.
2031         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
2032         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
2033         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
2035         * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
2036         acc_present_or_copyin and acc_present_or_create procedures,
2037         respectively.
2038         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
2039         generally different variants of OpenACC Runtime Library functions.
2040         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2042         * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
2043         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2045         * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
2046         of preprocessor definitions.
2047         * libgomp.h (strong_alias): Guard by "#ifdef
2048         HAVE_ATTRIBUTE_ALIAS".
2049         * oacc-mem.c: Provide "acc_pcreate" as alias for
2050         "acc_present_or_create", and "acc_pcopyin" as alias for
2051         "acc_present_or_copyin".
2052         * libgomp.map: New version "OACC_2.0.1".
2053         (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
2054         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
2055         its content into...
2056         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
2057         Extend testing.
2059         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
2060         when disabling nvptx offloading.
2062 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2064         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
2065         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
2066         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
2068         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
2069         * testsuite/lib/libgomp.exp
2070         (check_effective_target_openacc_nvidia_accel_configured): New
2071         proc.
2072         * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
2073         (check_effective_target_c++): New procs.
2074         * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
2075         (check_effective_target_c++): Likewise.
2077 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
2079         PR middle-end/80809
2080         * testsuite/libgomp.c/pr80809-2.c: New test.
2081         * testsuite/libgomp.c/pr80809-3.c: New test.
2083         PR middle-end/80809
2084         * testsuite/libgomp.c/pr80809-1.c: New test.
2086         PR middle-end/80853
2087         * testsuite/libgomp.c/pr80853.c: New test.
2089 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
2091         * testsuite/libgomp.oacc-c++/template-reduction.C: Update.
2092         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
2093         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
2094         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
2095         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
2097         * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
2098         Debug output for failure.
2100 2017-05-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2102         * testsuite/lib/libgomp.exp: Load scanlang.exp.
2104 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
2106         PR bootstrap/80531
2107         * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
2108         bootstrap compare failures.
2110 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
2112         * testsuite/libgomp.c/target-36.c: New testcase.
2114 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
2116         * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type
2117         instead of char.
2119 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
2121         PR libgomp/80394
2122         * testsuite/libgomp.c/pr80394.c: New test.
2124 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
2126         PR libgomp/79876
2127         * config/posix/thread-stacksize.h: New file.
2128         * config/darwin/thread-stacksize.h: New file.
2129         * config/nvptx/thread-stacksize.h: New file.
2130         * env.c: Include thread-stacksize.h.
2131         (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
2132         instead of 0.  Call pthread_attr_setstacksize even if
2133         GOMP_DEFAULT_STACKSIZE is non-zero.
2135 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
2137         * env.c (initialize_env): Initialize stacksize to 0.
2139 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
2141         PR c++/80029
2142         * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.
2144 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
2146         PR c/79940
2147         * testsuite/libgomp.c/pr79940.c: New test.
2149 2017-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2151         * testsuite/libgomp.c/pr48591.c: Enable on all __float128
2152         targets.
2153         Add __float128 options.
2155 2017-02-11  John David Anglin  <danglin@gcc.gnu.org>
2157         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove
2158         hppa*-*-* dg-skip-if directive.
2160 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
2162         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move
2163         dg-skip-if directive into a comment.
2165 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
2166             Chung-Lin Tang  <cltang@codesourcery.com>
2168         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
2169         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
2170         add additional case.
2171         * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
2172         "openacc_nvidia_accel_selected".
2173         * libgomp.oacc-fortran/nested-function-1.f90 (test2):
2174         Add num_workers(8) clause.
2176 2017-02-08  John David Anglin  <danglin@gcc.gnu.org>
2178         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on
2179         hppa*-*-*.
2180         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't
2181         include complex.h on hppa*-*-hpux*.
2182         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
2184 2017-02-02  Thomas Schwinge  <thomas@codesourcery.com>
2186         * plugin/plugin-nvptx.c (nvptx_exec): Make it static.
2188         * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
2189         GOMP_OFFLOAD_openacc_exec.  Adjust all users.
2190         (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
2191         GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
2192         (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
2193         GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
2194         (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
2195         GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
2196         (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
2197         GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.
2199 2017-01-31  Thomas Schwinge  <thomas@codesourcery.com>
2201         * libgomp-plugin.h: #include <stdbool.h>.
2202         (GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
2203         (GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
2204         (GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
2205         (GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
2206         (GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
2207         (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
2208         (GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
2209         (GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
2210         (GOMP_OFFLOAD_openacc_register_async_cleanup)
2211         (GOMP_OFFLOAD_openacc_async_test)
2212         (GOMP_OFFLOAD_openacc_async_test_all)
2213         (GOMP_OFFLOAD_openacc_async_wait)
2214         (GOMP_OFFLOAD_openacc_async_wait_async)
2215         (GOMP_OFFLOAD_openacc_async_wait_all)
2216         (GOMP_OFFLOAD_openacc_async_wait_all_async)
2217         (GOMP_OFFLOAD_openacc_async_set_async)
2218         (GOMP_OFFLOAD_openacc_create_thread_data)
2219         (GOMP_OFFLOAD_openacc_destroy_thread_data)
2220         (GOMP_OFFLOAD_openacc_get_current_cuda_device)
2221         (GOMP_OFFLOAD_openacc_get_current_cuda_context)
2222         (GOMP_OFFLOAD_openacc_get_cuda_stream)
2223         (GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
2224         * libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
2225         these.
2226         * plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
2227         (GOMP_OFFLOAD_unload_image): Fix argument types.
2229 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2231         * testsuite/lib/libgomp.exp
2232         (check_effective_target_hsa_offloading_selected_nocache): Fix up
2233         check_compile invocation.  Fix up removal of executable.  Drop
2234         bogus "2>&1" argument.
2236         * testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules
2237         directive.
2239 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
2240             Martin Jambor  <mjambor@suse.cz>
2242         * plugin/hsa.h: Moved to top level include.
2243         * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
2245 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
2247         PR other/79046
2248         * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
2249         of cat to get version from BASE-VER file.
2250         * testsuite/Makefile.in: Regenerated.
2252 2017-01-19  Jakub Jelinek  <jakub@redhat.com>
2254         * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
2255         for _WIN64.
2257 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2259         * plugin/hsa.h: Add GCC runtime library exception.
2260         * plugin/hsa_ext_finalize.h: Likewise.
2262         * plugin/configfrag.ac: For --without-cuda-driver don't initialize
2263         CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.  If both
2264         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
2265         cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
2266         plugin/include/cuda as include dir and -ldl instead of -lcuda as
2267         library to link ptx plugin against.
2268         * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
2269         (CUDA_CALLS): Define.
2270         (cuda_lib, cuda_lib_inited): New variables.
2271         (init_cuda_lib): New function.
2272         (CUDA_CALL_PREFIX): Define.
2273         (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
2274         (CUDA_CALL): Use FN instead of (FN).
2275         (CUDA_CALL_NOCHECK): Define.
2276         (cuda_error, fini_streams_for_device, select_stream_for_async,
2277         nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
2278         event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
2279         nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
2280         nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
2281         CUDA_CALL_NOCHECK.
2282         (nvptx_init): Call init_cuda_lib, if it fails, return false.  Use
2283         CUDA_CALL_NOCHECK.
2284         (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
2285         Use CUDA_CALL_NOCHECK.
2286         * plugin/cuda/cuda.h: New file.
2287         * config.h.in: Regenerated.
2288         * configure: Regenerated.
2290         PR other/79046
2291         * configure.ac: Add GCC_BASE_VER.
2292         * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2293         get version from BASE-VER file.
2294         * testsuite/Makefile.in: Regenerated.
2295         * configure: Regenerated.
2296         * Makefile.in: Regenerated.
2298 2017-01-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2300         PR libgomp/60670
2301         * Makefile.am: Make fincludedir multilib-aware.
2302         * Makefile.in: Regenerate.
2304 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
2306         Update copyright years.
2308         * libgomp.texi: Bump @copying's copyright year.
2310 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2312         * libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
2313         pthread_spinlock_t instead of gomp_mutex_t lock.
2314         (gomp_get_thread_pool): Likewise.
2315         (gomp_release_thread_pool): Likewise.
2316         * libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
2317         Likewise.
2319 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2321         * config/rtems/pool.h (gomp_get_thread_pool): Return proper
2322         thread pool in case nthreads == 1.
2324 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2326         * config/nvptx/env.c: Delete.
2327         * icv.c: Move definitions of ICV variables back ...
2328         * env.c: ...here.  Do not compile environment-related functionality if
2329         LIBGOMP_OFFLOADED_ONLY is set.
2331 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2333         * configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
2334         (LIBGOMP_OFFLOADED_ONLY): ...here; new define.
2335         * configure: Regenerate.
2336         * config.h.in: Likewise.
2338 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2340         * Makefile.in: Regenerate with automake-1.11.6.
2341         * aclocal.m4: Likewise.
2342         * configure: Likewise.
2343         * testsuite/Makefile.in: Likewise.
2345 2016-11-28  Alexander Monakov  <amonakov@ispras.ru>
2347         * config/nvptx/critical.c: Delete to use generic implementation.
2349 2016-11-28  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
2351         * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include
2352         ../../affinity.c as fallback.
2353         * config/nvptx/affinity.c: Delete to use fallback implementation.
2355 2016-11-23  Alexander Monakov  <amonakov@ispras.ru>
2356             Jakub Jelinek  <jakub@redhat.com>
2357             Dmitry Melnik  <dm@ispras.ru>
2359         * Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
2360         * Makefile.in. Regenerate.
2361         * configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
2362         (LIBGOMP_USE_PTHREADS): ...here; new define.
2363         * configure: Regenerate.
2364         * config.h.in: Likewise.
2365         * config/posix/affinity.c: Move to...
2366         * affinity.c: ...here (new file).  Guard use of Pthreads-specific
2367         interface by LIBGOMP_USE_PTHREADS. 
2368         * critical.c: Split out GOMP_atomic_{start,end} into...
2369         * atomic.c: ...here (new file).
2370         * env.c: Split out ICV definitions into...
2371         * icv.c: ...here (new file) and...
2372         * icv-device.c: ...here. New file.
2373         * config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
2374         (gomp_destroy_lock_30): Ditto.
2375         (gomp_set_lock_30): Ditto.
2376         (gomp_unset_lock_30): Ditto.
2377         (gomp_test_lock_30): Ditto.
2378         (gomp_init_nest_lock_30): Ditto.
2379         (gomp_destroy_nest_lock_30): Ditto.
2380         (gomp_set_nest_lock_30): Ditto.
2381         (gomp_unset_nest_lock_30): Ditto.
2382         (gomp_test_nest_lock_30): Ditto.
2383         * lock.c: New.
2384         * config/nvptx/lock.c: New.
2385         * config/nvptx/bar.c: New.
2386         * config/nvptx/bar.h: New.
2387         * config/nvptx/doacross.h: New.
2388         * config/nvptx/error.c: New.
2389         * config/nvptx/icv-device.c: New.
2390         * config/nvptx/mutex.h: New.
2391         * config/nvptx/pool.h: New.
2392         * config/nvptx/proc.c: New.
2393         * config/nvptx/ptrlock.h: New.
2394         * config/nvptx/sem.h: New.
2395         * config/nvptx/simple-bar.h: New.
2396         * config/nvptx/target.c: New.
2397         * config/nvptx/task.c: New.
2398         * config/nvptx/team.c: New.
2399         * config/nvptx/time.c: New.
2400         * config/posix/simple-bar.h: New.
2401         * libgomp.h: Guard pthread.h inclusion.  Include simple-bar.h.
2402         (gomp_num_teams_var): Declare.
2403         (struct gomp_thread_pool): Change threads_dock member to
2404         gomp_simple_barrier_t.
2405         [__nvptx__] (gomp_thread): New implementation.
2406         (gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
2407         (gomp_thread_destructor): Ditto.
2408         (gomp_init_thread_affinity): Ditto.
2409         * team.c: Guard uses of Pthreads-specific interfaces by
2410         LIBGOMP_USE_PTHREADS.  Adjust all uses of threads_dock.
2411         (gomp_free_thread) [__nvptx__]: Do not call 'free'.
2412         * config/nvptx/alloc.c: Delete.
2413         * config/nvptx/barrier.c: Ditto.
2414         * config/nvptx/fortran.c: Ditto.
2415         * config/nvptx/iter.c: Ditto.
2416         * config/nvptx/iter_ull.c: Ditto.
2417         * config/nvptx/loop.c: Ditto.
2418         * config/nvptx/loop_ull.c: Ditto.
2419         * config/nvptx/ordered.c: Ditto.
2420         * config/nvptx/parallel.c: Ditto.
2421         * config/nvptx/priority_queue.c: Ditto.
2422         * config/nvptx/sections.c: Ditto.
2423         * config/nvptx/single.c: Ditto.
2424         * config/nvptx/splay-tree.c: Ditto.
2425         * config/nvptx/work.c: Ditto.
2426         * testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
2427         -foffload=-lgfortran in addition to -lgfortran.
2428         * testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.
2429         * plugin/plugin-nvptx.c: Include <limits.h>.
2430         (struct targ_fn_descriptor): Add new fields.
2431         (struct ptx_device): Ditto.  Set them...
2432         (nvptx_open_device): ...here.
2433         (nvptx_adjust_launch_bounds): New.
2434         (nvptx_host2dev): Allow NULL 'nvthd'.
2435         (nvptx_dev2host): Ditto.
2436         (GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
2437         (link_ptx): Adjust log sizes.
2438         (nvptx_host2dev): Allow NULL 'nvthd'.
2439         (nvptx_dev2host): Ditto.
2440         (nvptx_set_clocktick): New.  Use it...
2441         (GOMP_OFFLOAD_load_image): ...here.  Set new targ_fn_descriptor
2442         fields.
2443         (GOMP_OFFLOAD_dev2dev): New.
2444         (nvptx_adjust_launch_bounds): New.
2445         (nvptx_stacks_size): New.
2446         (nvptx_stacks_alloc): New.
2447         (nvptx_stacks_free): New.
2448         (GOMP_OFFLOAD_run): New.
2449         (GOMP_OFFLOAD_async_run): New (stub).
2451 2016-11-23  Martin Jambor  <mjambor@suse.cz>
2453         * testsuite/libgomp.hsa.c/bits-insns.c: New test.
2454         * testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
2455         * testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
2457 2016-11-23  Martin Liska  <mliska@suse.cz>
2458             Martin Jambor  <mjambor@suse.cz>
2460         * plugin/hsa.h: New file.
2461         * plugin/hsa_ext_finalize.h: New file.
2462         * plugin/configfrag.ac: Remove hsa-kmt-lib test.  Added checks for
2463         header file unistd.h, and functions secure_getenv, __secure_getenv,
2464         getuid, geteuid, getgid and getegid.
2465         * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added
2466         -D_GNU_SOURCE.
2467         * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h.
2468         Handle various cases of secure_getenv presence, add an implementation
2469         when we can test effective UID and GID.
2470         (struct hsa_runtime_fn_info): New structure.
2471         (hsa_runtime_fn_info hsa_fns): New variable.
2472         (hsa_runtime_lib): Likewise.
2473         (support_cpu_devices): Likewise.
2474         (init_enviroment_variables): Load newly introduced ENV
2475         variables.
2476         (hsa_warn): Call hsa run-time functions via hsa_fns structure.
2477         (hsa_fatal): Likewise.
2478         (DLSYM_FN): New macro.
2479         (init_hsa_runtime_functions): New function.
2480         (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns
2481         structure.  Depending on environment, also allow CPU devices.
2482         (init_hsa_context): Call hsa run-time functions via hsa_fns structure.
2483         (get_kernarg_memory_region): Likewise.
2484         (GOMP_OFFLOAD_init_device): Likewise.
2485         (destroy_hsa_program): Likewise.
2486         (init_basic_kernel_info): New function.
2487         (GOMP_OFFLOAD_load_image): Use it.
2488         (create_and_finalize_hsa_program): Call hsa run-time functions via
2489         hsa_fns structure.
2490         (create_single_kernel_dispatch): Likewise.
2491         (release_kernel_dispatch): Likewise.
2492         (init_single_kernel): Likewise.
2493         (parse_target_attributes): Allow up multiple HSA grid dimensions.
2494         (get_group_size): New function.
2495         (run_kernel): Likewise.
2496         (GOMP_OFFLOAD_run): Outline most functionality to run_kernel.
2497         (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns
2498         structure.
2499         * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support.
2500         * testsuite/libgomp-test-support.exp.in: Likewise.
2501         * Makefile.in: Regenerated.
2502         * aclocal.m4: Likewise.
2503         * config.h.in: Likewise.
2504         * configure: Likewise.
2505         * testsuite/Makefile.in: Likewise.
2507 2016-11-15  Martin Jambor  <mjambor@suse.cz>
2508             Alexander Monakov  <amonakov@ispras.ru>
2510         * testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
2511         mapping clauses to target constructs.
2512         * testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
2514 2016-11-15  Matthias Klose  <doko@ubuntu.com>
2516         * configure: Regenerate.
2518 2016-11-10  Jakub Jelinek  <jakub@redhat.com>
2520         * omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
2521         * omp_lib.h.in (openmp_version): Likewise.
2522         * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
2523         of 201307.
2524         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2526         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90
2527         (fib_wrapper): Add map(from: x) clause.
2528         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90
2529         (e_53_2): Likewise.
2530         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90
2531         (accum): Add map(tmp) clause.
2532         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90
2533         (accum): Add map(tofrom: tmp) clause.
2534         * testsuite/libgomp.fortran/examples-4/target_data-3.f90
2535         (gramSchmidt): Likewise.
2536         * testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
2537         map(tofrom: sum) clause.
2538         * testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
2539         map (alloc: a, l) clause.  Add defaultmap(tofrom: scalar) clause.
2540         * testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
2541         only allowed on the loop iterator.
2542         * testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
2543         * testsuite/libgomp.fortran/taskloop2.f90: New test.
2544         * testsuite/libgomp.fortran/taskloop4.f90: New test.
2545         * testsuite/libgomp.fortran/doacross1.f90: New test.
2546         * testsuite/libgomp.fortran/doacross3.f90: New test.
2547         * testsuite/libgomp.fortran/taskloop1.f90: New test.
2548         * testsuite/libgomp.fortran/taskloop3.f90: New test.
2549         * testsuite/libgomp.fortran/doacross2.f90: New test.
2550         * testsuite/libgomp.c/doacross-1.c (main): Add missing
2551         #pragma omp atomic read.
2552         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
2553         * testsuite/libgomp.c/doacross-3.c (main): Likewise.
2555 2016-11-02  Cesar Philippidis  <cesar@codesourcery.com>
2556             Nathan Sidwell  <nathan@acm.org>
2558         * plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes
2559         to determine default geometry.
2560         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang
2561         dimension.
2563 2016-11-01  Jakub Jelinek  <jakub@redhat.com>
2565         * hashtab.h: Use standard GPLv3 with runtime exception
2566         boilerplate.
2568 2016-10-27  Aldy Hernandez  <aldyh@redhat.com>
2570         * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
2571         size when allocating new thread.
2573 2016-09-14  Marek Polacek  <polacek@redhat.com>
2575         * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
2577 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
2579         PR fortran/71014
2580         * testsuite/libgomp.fortran/pr71014.f90: New test.
2582 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
2584         PR middle-end/70895
2585         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
2586         firstprivate clauses.
2587         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
2588         copy clauses.
2589         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
2590         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
2591         * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
2592         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
2593         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
2594         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
2595         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
2596         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
2597         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
2598         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
2599         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
2600         * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
2602 2016-08-14  Chung-Lin Tang  <cltang@codesourcery.com>
2604         PR fortran/70598
2605         * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.
2607 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
2609         PR c++/58706
2610         * testsuite/libgomp.c++/pr58706.C: New test.
2612 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
2614         * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
2615         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
2616         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
2617         Likewise.
2618         * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
2619         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
2620         Likewise.
2621         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
2623         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
2624         test, and don't hardcode -O0.
2626 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
2628         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
2630 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
2632         * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
2633         test.
2635 2016-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2637         PR middle-end/71734
2638         * testsuite/libgomp.fortran/pr71734-1.f90: New test.
2639         * testsuite/libgomp.fortran/pr71734-2.f90: Likewise.
2641 2016-07-01  Jakub Jelinek  <jakub@redhat.com>
2643         PR fortran/71717
2644         * testsuite/libgomp.fortran/associate3.f90: New test.
2646 2016-06-17  Jakub Jelinek  <jakub@redhat.com>
2648         * testsuite/libgomp.c++/target-21.C: New test.
2650 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2652         * testsuite/libgomp.c++/target-20.C: New test.
2654 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2655             Cesar Philippidis  <cesar@codesourcery.com>
2657         PR middle-end/71373
2658         * libgomp.oacc-c/nested-function-1.c: New file.
2659         * libgomp.oacc-c/nested-function-2.c: Likewise.
2660         * libgomp.oacc-fortran/nested-function-1.f90: Likewise.
2661         * libgomp.oacc-fortran/nested-function-2.f90: Likewise.
2662         * libgomp.oacc-fortran/nested-function-3.f90: Likewise.
2664 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2666         PR c/71381
2667         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include
2668         "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c".
2669         * testsuite/libgomp.oacc-fortran/cache-1.f95: New file.
2671 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
2673         * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
2674         * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.
2676 2016-06-01  Cesar Philippidis  <cesar@codesourcery.com>
2678         PR c/70688
2679         * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file.
2681 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
2683         * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
2684         instead of invalid schedule(static, 0).
2685         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
2687 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
2689         * oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
2690         * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
2691         parameter, use to set async stream around call to gomp_unmap_vars,
2692         call gomp_unmap_vars() with 'do_copyfrom' set to true.
2693         * plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
2694         (event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
2695         events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
2696         (event_add): Add int parameter, initialize 'val' field when
2697         adding new ptx_event struct.
2698         (nvptx_evec): Adjust event_add() call arguments.
2699         (nvptx_host2dev): Likewise.
2700         (nvptx_dev2host): Likewise.
2701         (nvptx_wait_async): Likewise.
2702         (nvptx_wait_all_async): Likewise.
2703         (GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
2704         pass to event_add() call.
2705         * oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
2706         parameter.
2707         * oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
2708         call openacc.register_async_cleanup_func() hook.
2709         * oacc-parallel.c (GOACC_parallel_keyed): Likewise.
2710         * target.c (gomp_copy_from_async): Delete function.
2711         (gomp_map_vars): Remove async_refcount.
2712         (gomp_unmap_vars): Likewise.
2713         (gomp_load_image_to_device): Likewise.
2714         (omp_target_associate_ptr): Likewise.
2715         * libgomp.h (struct splay_tree_key_s): Remove async_refcount.
2716         (acc_dispatch_t.register_async_cleanup_func): Add int parameter.
2717         (gomp_copy_from_async): Remove.
2719 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
2721         * target.c (gomp_device_copy): New function.
2722         (gomp_copy_host2dev): Likewise.
2723         (gomp_copy_dev2host): Likewise.
2724         (gomp_free_device_memory): Likewise.
2725         (gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
2726         (gomp_map_pointer): Likewise.
2727         (gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
2728         NULL value from alloc_func plugin hook.
2729         (gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
2730         (gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
2731         (gomp_unmap_vars): Likewise.
2732         (gomp_update): Adjust to call gomp_copy_dev2host and
2733         gomp_copy_host2dev functions.
2734         (gomp_unload_image_from_device): Handle false value from
2735         unload_image_func plugin hook.
2736         (gomp_init_device): Handle false value from init_device_func
2737         plugin hook.
2738         (gomp_exit_data): Adjust to call gomp_copy_dev2host.
2739         (omp_target_free): Adjust to call gomp_free_device_memory.
2740         (omp_target_memcpy): Handle return values from host2dev_func,
2741         dev2host_func, and dev2dev_func plugin hooks.
2742         (omp_target_memcpy_rect_worker): Likewise.
2743         (gomp_target_fini): Handle false value from fini_device_func
2744         plugin hook.
2745         * libgomp.h (struct gomp_device_descr): Adjust return type of
2746         init_device_func, fini_device_func, unload_image_func, free_func,
2747         dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
2748         * oacc-init.c (acc_shutdown_1): Handle false value from
2749         fini_device_func plugin hook.
2750         * oacc-host.c (host_init_device): Change return type to bool.
2751         (host_fini_device): Likewise.
2752         (host_unload_image): Likewise.
2753         (host_free): Likewise.
2754         (host_dev2host): Likewise.
2755         (host_host2dev): Likewise.
2756         * oacc-mem.c (acc_free): Handle plugin hook fatal error case.
2757         (acc_memcpy_to_device): Likewise.
2758         (acc_memcpy_from_device): Likewise.
2759         (delete_copyout): Add libfnname parameter, handle free_func
2760         hook fatal error case.
2761         (acc_delete): Adjust delete_copyout call.
2762         (acc_copyout): Likewise.
2763         (update_dev_host): Move gomp_mutex_unlock to after
2764         host2dev/dev2host hook calls.
2766         * plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
2767         to 'hsa_error_msg', for clarity.
2768         (hsa_fatal): Likewise.
2769         (hsa_error): New function.
2770         (init_hsa_context): Change return type to bool, adjust to return
2771         false on error.
2772         (GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
2773         return value.
2774         (GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
2775         return false on error.
2776         (get_agent_info): Adjust to return NULL on error.
2777         (destroy_hsa_program): Change return type to bool, adjust to
2778         return false on error.
2779         (GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
2780         (destroy_module): Change return type to bool, adjust to
2781         return false on error.
2782         (GOMP_OFFLOAD_unload_image): Likewise.
2783         (GOMP_OFFLOAD_fini_device): Likewise.
2784         (GOMP_OFFLOAD_alloc): Change to return NULL when called.
2785         (GOMP_OFFLOAD_free): Change to return false when called.
2786         (GOMP_OFFLOAD_dev2host): Likewise.
2787         (GOMP_OFFLOAD_host2dev): Likewise.
2788         (GOMP_OFFLOAD_dev2dev): Likewise.
2790         * plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
2791         (CUDA_CALL): Likewise.
2792         (CUDA_CALL_ASSERT): Likewise.
2793         (map_init): Change return type to bool, use CUDA_CALL* macros.
2794         (map_fini): Likewise.
2795         (init_streams_for_device): Change return type to bool, adjust
2796         call to map_init.
2797         (fini_streams_for_device): Change return type to bool, adjust
2798         call to map_fini.
2799         (select_stream_for_async): Release stream_lock before calls to
2800         GOMP_PLUGIN_fatal, adjust call to map_init.
2801         (nvptx_init): Use CUDA_CALL* macros.
2802         (nvptx_attach_host_thread_to_device): Change return type to bool,
2803         use CUDA_CALL* macros.
2804         (nvptx_open_device): Use CUDA_CALL* macros.
2805         (nvptx_close_device): Change return type to bool, use CUDA_CALL*
2806         macros.
2807         (nvptx_get_num_devices): Use CUDA_CALL* macros.
2808         (link_ptx): Change return type to bool, use CUDA_CALL* macros.
2809         (nvptx_exec): Use CUDA_CALL* macros.
2810         (nvptx_alloc): Use CUDA_CALL* macros.
2811         (nvptx_free): Change return type to bool, use CUDA_CALL* macros.
2812         (nvptx_host2dev): Likewise.
2813         (nvptx_dev2host): Likewise.
2814         (nvptx_wait): Use CUDA_CALL* macros.
2815         (nvptx_wait_async): Likewise.
2816         (nvptx_wait_all): Likewise.
2817         (nvptx_wait_all_async): Likewise.
2818         (nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
2819         use CUDA_CALL* macros, adjust call to map_fini.
2820         (GOMP_OFFLOAD_init_device): Change return type to bool,
2821         adjust code accordingly.
2822         (GOMP_OFFLOAD_fini_device): Likewise.
2823         (GOMP_OFFLOAD_load_image): Adjust calls to
2824         nvptx_attach_host_thread_to_device/link_ptx to handle errors,
2825         use CUDA_CALL* macros.
2826         (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
2827         return code.
2828         (GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
2829         (GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
2830         handle error return.
2831         (GOMP_OFFLOAD_dev2host): Likewise.
2832         (GOMP_OFFLOAD_host2dev): Likewise.
2833         (GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
2834         (GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
2836 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
2838         * oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
2839         (acc_free): Likewise.
2840         (acc_memcpy_to_device): Likewise.
2841         (acc_memcpy_from_device): Likewise.
2842         (acc_deviceptr): Likewise.
2843         (acc_hostptr): Likewise.
2844         (acc_is_present): Likewise.
2845         (acc_map_data): Likewise.
2846         (acc_unmap_data): Likewise.
2847         (present_create_copy): Likewise.
2848         (delete_copyout): Likewise.
2849         (update_dev_host): Likewise.
2850         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
2851         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
2852         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
2853         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
2854         * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
2855         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
2856         it only runs on nvptx targets.
2857         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
2858         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
2859         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
2860         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
2861         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
2862         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
2863         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
2864         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
2865         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
2866         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
2867         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
2868         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
2869         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
2870         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
2871         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
2872         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
2873         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
2874         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
2875         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
2876         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
2877         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
2878         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
2879         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
2881 2016-05-23  Martin Jambor  <mjambor@suse.cz>
2883         * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
2885 2016-05-17  Chung-Lin Tang  <cltang@codesourcery.com>
2887         * oacc-init.c (acc_init): Remove !cached_base_dev condition on call
2888         to gomp_init_targets_once.
2889         (acc_set_device_type): Remove !cached_base_dev condition on call to
2890         gomp_init_targets_once, move call to before acc_device_lock acquire,
2891         to avoid deadlock.
2892         (acc_get_device_num): Remove !cached_base_dev condition on call to
2893         gomp_init_targets_once.
2894         (acc_set_device_num): Likewise.
2896 2016-05-16  Martin Jambor  <mjambor@suse.cz>
2898         * testsuite/libgomp.hsa.c/complex-align-2.c: New test.
2900 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2902         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
2903         expected partitioning.
2905 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
2907         PR middle-end/70626
2908         * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
2909         * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
2910         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.
2912 2016-04-21  Alexander Monakov  <amonakov@ispras.ru>
2914         * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error
2915         non-fatal.
2917 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
2919         PR middle-end/70680
2920         * testsuite/libgomp.c/pr70680-1.c: New test.
2921         * testsuite/libgomp.c/pr70680-2.c: New test.
2923 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
2925         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
2926         pass parameter variables to subroutines.
2928 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
2930         PR middle-end/70643
2931         * testsuite/libgomp.oacc-fortran/pr70643.f90: New test.
2933 2016-04-13  Cesar Philippidis  <cesar@codesourcery.com>
2935         PR testsuite/68242
2936         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test.
2937         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
2939 2016-04-12  Thomas Schwinge  <thomas@codesourcery.com>
2941         * libgomp_g.h: Rename GOACC_parallel_keyd prototype to
2942         GOACC_parallel_keyed, restore GOACC_parallel prototype, new
2943         GOACC_declare prototype.
2945         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
2946         Merge this file, and...
2947         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
2948         ... this file, and...
2949         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
2950         ... this file, and...
2951         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
2952         ... this file, and...
2953         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
2954         ... this file, and...
2955         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
2956         ... this file, and...
2957         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
2958         ... this file, and...
2959         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
2960         ... this file, and...
2961         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
2962         ... this file, and...
2963         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
2964         ... this file, and...
2965         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
2966         ... this file, and...
2967         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
2968         ... this file, and...
2969         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
2970         ... this file into...
2971         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
2972         file.
2974         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
2975         Make failure observable.
2977 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
2979         * libgomp.h (struct gomp_target_task): Remove firstprivate_copies
2980         field.
2981         * target.c (gomp_target_fallback_firstprivate,
2982         gomp_target_unshare_firstprivate): Removed.
2983         (GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory
2984         before waiting for dependencies.
2985         (gomp_target_task_fn): Don't copy firstprivate vars here.
2986         * task.c (GOMP_PLUGIN_target_task_completion): Don't free
2987         firstprivate_copies here.
2988         (gomp_create_target_task): Don't initialize firstprivate_copies field.
2989         * testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of
2990         explicit/implicit firstprivate.
2992 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
2994         PR lto/70289
2995         PR ipa/70348
2996         PR tree-optimization/70373
2997         PR middle-end/70533
2998         PR middle-end/70534
2999         PR middle-end/70535
3000         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New
3001         test.
3002         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New
3003         test.
3004         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New
3005         test.
3006         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New
3007         test.
3008         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New
3009         test.
3010         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New
3011         test.
3012         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New
3013         test.
3014         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New
3015         test.
3016         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New
3017         test.
3018         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test.
3019         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test.
3020         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test.
3021         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New
3022         test.
3023         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New
3024         test.
3025         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New
3026         test.
3027         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New
3028         test.
3029         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test
3030         coverage.
3031         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
3032         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
3033         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test.
3034         * testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test.
3035         * testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test.
3036         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test
3037         coverage.
3038         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
3039         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3040         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3041         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
3042         * testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test.
3043         * testsuite/libgomp.oacc-c-c++-common/reduction.h: New test.
3044         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test.
3045         * testsuite/libgomp.oacc-fortran/pr70289.f90: New test.
3046         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage.
3047         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
3048         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
3049         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
3050         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
3051         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
3052         * testsuite/libgomp.oacc-fortran/reduction-7.f90: New test.
3054 2016-03-30  Thomas Schwinge  <thomas@codesourcery.com>
3055             James Norris  <jnorris@codesourcery.com>
3056             Nathan Sidwell  <nathan@codesourcery.com>
3057             Julian Brown  <julian@codesourcery.com>
3058             Cesar Philippidis  <cesar@codesourcery.com>
3059             Chung-Lin Tang  <cltang@codesourcery.com>
3060             Tom de Vries  <tom@codesourcery.com>
3062         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update.
3063         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
3064         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
3065         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise.
3066         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
3067         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
3068         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
3069         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
3070         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
3071         XFAIL.
3072         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
3073         Incorporate...
3074         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this
3075         file.
3076         * testsuite/libgomp.oacc-c++/template-reduction.C: New file.
3077         * testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise.
3078         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise.
3079         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c:
3080         Likewise.
3081         * testsuite/libgomp.oacc-c-c++-common/private-variables.c:
3082         Likewise.
3083         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
3084         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise.
3085         * testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
3086         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise.
3087         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
3088         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
3089         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
3090         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
3091         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
3092         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90:
3093         Likewise.
3094         * testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise.
3095         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
3096         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this
3097         file...
3098         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this
3099         file into...
3100         * testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new
3101         file.  Update.
3102         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New
3103         file.
3104         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c:
3105         Likewise.
3106         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to...
3107         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c:
3108         ... this new file.  Update.
3109         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to...
3110         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c:
3111         ... this new file.  Update.
3112         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New
3113         file.  Incorporate...
3114         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this
3115         file, and...
3116         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this
3117         file, and...
3118         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this
3119         file.
3120         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file.
3122 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
3124         * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call
3125         set-torture-options.
3127 2016-03-24  Thomas Schwinge  <thomas@codesourcery.com>
3129         * testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use
3130         gcc-dg-runtest.
3131         * testsuite/libgomp.oacc-c/c.exp: Likewise.
3132         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify
3133         -fno-builtin-acc_on_device instead of -O0.
3134         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for
3135         -O0.
3136         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
3137         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c:
3138         Likewise.
3139         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
3140         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
3141         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
3142         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
3143         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
3144         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
3145         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
3146         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
3147         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
3148         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
3149         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
3150         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
3151         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
3152         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
3153         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
3154         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
3155         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
3156         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
3157         Don't specify -O2.
3158         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
3159         Likewise.
3160         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
3161         Likewise.
3163 2016-03-24  Martin Liska  <mliska@suse.cz>
3165         * plugin/plugin-hsa.c (packet_store_release): New function
3166         that is taken from the HSA runtime manual.
3167         (GOMP_OFFLOAD_run): Use the function.
3169 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
3171         PR c++/70376
3172         * testsuite/libgomp.c++/pr70376.C: New test.
3174 2016-03-23  Tom de Vries  <tom@codesourcery.com>
3176         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing
3177         initialization of lresult and lvresult.
3178         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Same.
3180 2016-03-23  James Norris  <jnorris@codesourcery.com>
3181             Daichi Fukuoka <dc-fukuoka@sgi.com>
3183         PR libgomp/69414
3184         * oacc-mem.c (delete_copyout, update_dev_host): Fix device address.
3185         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests.
3186         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
3187         * testsuite/libgomp.oacc-fortran/update-1.f90: New file.
3189 2016-03-23  Martin Liska  <mliska@suse.cz>
3191         PR hsa/70337
3192         * plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow
3193         argument just in case a dispatched kernel uses that argument.
3195 2016-03-16  Thomas Schwinge  <thomas@codesourcery.com>
3197         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to
3198         -ftree-parallelize-loops/-fopenacc changes.
3199         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
3200         Likewise.
3201         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
3202         Likewise.
3203         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
3204         Likewise.
3205         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
3206         Likewise.
3207         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
3208         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
3210 2016-03-13  Thomas Schwinge  <thomas@codesourcery.com>
3212         * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to
3213         always_ld_library_path the path to libgcc_s.
3215 2016-03-10  Cesar Philippidis  <cesar@codesourcery.com>
3217         PR testsuite/70009
3218         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed.
3220 2016-03-09  Tom de Vries  <tom@codesourcery.com>
3222         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test.
3223         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same.
3224         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
3225         Same.
3226         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same.
3227         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same.
3228         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same.
3229         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same.
3231 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3233         * testsuite/lib/libgomp.exp
3234         (check_effective_target_hsa_offloading_selected_nocache): New.
3235         (check_effective_target_hsa_offloading_selected): Likewise.
3236         * testsuite/libgomp.hsa.c/c.exp: Likewise.
3237         * testsuite/libgomp.hsa.c/alloca-1.c: Likewise.
3238         * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise.
3239         * testsuite/libgomp.hsa.c/builtins-1.c: Likewise.
3240         * testsuite/libgomp.hsa.c/complex-1.c: Likewise.
3241         * testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise.
3242         * testsuite/libgomp.hsa.c/function-call-1.c: Likewise.
3243         * testsuite/libgomp.hsa.c/get-level-1.c: Likewise.
3244         * testsuite/libgomp.hsa.c/gridify-1.c: Likewise.
3245         * testsuite/libgomp.hsa.c/gridify-2.c: Likewise.
3246         * testsuite/libgomp.hsa.c/gridify-3.c: Likewise.
3247         * testsuite/libgomp.hsa.c/gridify-4.c: Likewise.
3248         * testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise.
3249         * testsuite/libgomp.hsa.c/pr69568.c: Likewise.
3250         * testsuite/libgomp.hsa.c/rotate-1.c: Likewise.
3251         * testsuite/libgomp.hsa.c/switch-1.c: Likewise.
3252         * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise.
3254 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3256         * testsuite/libgomp.c/examples-4/async_target-2.c: Only run on
3257         non-shared memory accelerators.
3258         * testsuite/libgomp.c/examples-4/device-1.c: Likewise.
3259         * testsuite/libgomp.c/examples-4/target-5.c: Likewise.
3260         * testsuite/libgomp.c/examples-4/target_data-6.c: Likewise.
3261         * testsuite/libgomp.c/examples-4/target_data-7.c: Likewise.
3262         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
3263         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
3264         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
3265         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
3266         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
3268 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3270         * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to
3271         ALWAYS_CFLAGS.
3273 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
3275         PR libgomp/69555
3276         * testsuite/libgomp.c++/pr69555-1.C: New test.
3277         * testsuite/libgomp.c++/pr69555-2.C: New test.
3279 2016-02-26  Keith McDaniel <k.allen.mcdaniel@gmail.com>
3280             Martin Jambor  <mjambor@suse.cz>
3282         * testsuite/lib/libgomp.exp
3283         (check_effective_target_offload_device_shared_as): New proc.
3284         * testsuite/libgomp.c++/declare_target-1.C: New test.
3286 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
3288         PR driver/68463
3289         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
3291 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
3293         * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
3294         * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
3295         dims.
3296         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
3297         -ftree-parallelize-loops/-fopenacc changes.
3298         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
3299         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
3300         Likewise.
3301         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
3302         Likewise.
3303         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
3304         Likewise.
3305         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
3306         Likewise.
3307         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
3308         Likewise.
3309         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
3310         Likewise.
3311         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
3312         Likewise.
3313         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
3314         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
3315         Likewise.
3316         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
3317         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
3318         Likewise.
3319         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
3320         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
3321         Likewise.
3323 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
3325         * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test.
3327 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
3329         PR driver/69805
3330         * testsuite/libgomp.c/pr69805.c: New test.
3332 2016-02-16  Tom de Vries  <tom@codesourcery.com>
3334         PR lto/67709
3335         * testsuite/libgomp.fortran/declare-simd-4.f90: New test.
3337 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3339         PR tree-optimization/69599
3340         * testsuite/libgomp.c/omp-nested-3.c: New test.
3341         * testsuite/libgomp.c/pr46032-2.c: New test.
3342         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test.
3343         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test.
3345 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3347         PR lto/69707
3348         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
3350 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
3352         * testsuite/libgomp.c/target-31.c: Fix testcase.
3354 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
3356         * testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
3357         clause.
3358         * testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
3359         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
3360         reduction and map clauses.
3361         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
3363 2016-02-02  James Norris  <jnorris@codesourcery.com>
3365         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
3367 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
3369         * libgomp.map (GOACC_2.0): Remove GOACC_host_data.
3370         * oacc-parallel.c (GOACC_host_data): Remove function definition.
3372         * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
3373         cases.
3375         * plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
3376         variables.
3377         * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
3378         (hsa_kmt_lib): Set variables.
3379         * testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
3380         always_ld_library_path.
3381         * Makefile.in: Regenerate.
3382         * configure: Likewise.
3383         * testsuite/Makefile.in: Likewise.
3385         * plugin/configfrag.ac (offload_additional_options)
3386         (offload_additional_lib_paths): Don't amend for hsa offloading.
3387         * configure: Regenerate.
3389         * plugin/configfrag.ac: Don't configure for offloading target if
3390         we don't build the corresponding plugin.
3391         * configure: Regenerate.
3393 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
3395         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
3396         * testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
3398 2016-01-26  Tom de Vries  <tom@codesourcery.com>
3400         PR tree-optimization/69110
3401         * testsuite/libgomp.c/pr69110.c: New test.
3403 2016-01-25  Richard Biener  <rguenther@suse.de>
3405         PR lto/69393
3406         * testsuite/libgomp.c++/pr69393.C: New testcase.
3408 2016-01-22  Ilya Verbin  <ilya.verbin@intel.com>
3410         * target.c (gomp_get_target_fn_addr): Allow host fallback if target
3411         function wasn't mapped to the device with non-shared memory.
3413 2016-01-20  Ilya Verbin  <ilya.verbin@intel.com>
3415         * task.c (gomp_create_target_task): Set firstprivate_copies to NULL.
3417 2016-01-19  Martin Jambor  <mjambor@suse.cz>
3418             Martin Liska  <mliska@suse.cz>
3420         * plugin/Makefrag.am: Add HSA plugin requirements.
3421         * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
3422         (HSA_RUNTIME_LIB): Likewise.
3423         (HSA_RUNTIME_CPPFLAGS): Likewise.
3424         (HSA_RUNTIME_INCLUDE): New substitution.
3425         (HSA_RUNTIME_LIB): Likewise.
3426         (HSA_RUNTIME_LDFLAGS): Likewise.
3427         (hsa-runtime): New configure option.
3428         (hsa-runtime-include): Likewise.
3429         (hsa-runtime-lib): Likewise.
3430         (PLUGIN_HSA): New substitution variable.
3431         Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
3432         configure options.
3433         (PLUGIN_HSA_CPPFLAGS): Likewise.
3434         (PLUGIN_HSA_LDFLAGS): Likewise.
3435         (PLUGIN_HSA_LIBS): Likewise.
3436         Check that we have access to HSA run-time.
3437         * libgomp-plugin.h (offload_target_type): New element
3438         OFFLOAD_TARGET_TYPE_HSA.
3439         * libgomp.h (gomp_target_task): New fields firstprivate_copies and
3440         args.
3441         (bool gomp_create_target_task): Updated.
3442         (gomp_device_descr): Extra parameter of run_func and async_run_func,
3443         new field can_run_func.
3444         * libgomp_g.h (GOMP_target_ext): Update prototype.
3445         * oacc-host.c (host_run): Added a new parameter args.
3446         * target.c (calculate_firstprivate_requirements): New function.
3447         (copy_firstprivate_data): Likewise.
3448         (gomp_target_fallback_firstprivate): Use them.
3449         (gomp_target_unshare_firstprivate): New function.
3450         (gomp_get_target_fn_addr): Allow returning NULL for shared memory
3451         devices.
3452         (GOMP_target): Do host fallback for all shared memory devices.  Do not
3453         pass any args to plugins.
3454         (GOMP_target_ext): Introduce device-specific argument parameter args.
3455         Allow host fallback if device shares memory.  Do not remap data if
3456         device has shared memory.
3457         (gomp_target_task_fn): Likewise.  Also treat shared memory devices
3458         like host fallback for mappings.
3459         (GOMP_target_data): Treat shared memory devices like host fallback.
3460         (GOMP_target_data_ext): Likewise.
3461         (GOMP_target_update): Likewise.
3462         (GOMP_target_update_ext): Likewise.  Also pass NULL as args to
3463         gomp_create_target_task.
3464         (GOMP_target_enter_exit_data): Likewise.
3465         (omp_target_alloc): Treat shared memory devices like host fallback.
3466         (omp_target_free): Likewise.
3467         (omp_target_is_present): Likewise.
3468         (omp_target_memcpy): Likewise.
3469         (omp_target_memcpy_rect): Likewise.
3470         (omp_target_associate_ptr): Likewise.
3471         (gomp_load_plugin_for_device): Also load can_run.
3472         * task.c (GOMP_PLUGIN_target_task_completion): Free
3473         firstprivate_copies.
3474         (gomp_create_target_task): Accept new argument args and store it to
3475         ttask.
3476         * plugin/plugin-hsa.c: New file.
3478 2016-01-18  Tom de Vries  <tom@codesourcery.com>
3480         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
3481         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
3482         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
3483         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
3484         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
3485         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
3486         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
3487         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
3488         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
3489         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
3490         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
3491         Same.
3492         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
3493         Same.
3494         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
3495         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
3496         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
3497         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
3498         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
3499         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
3500         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
3501         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
3502         Same.
3503         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.
3505 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
3507         * task.c (GOMP_PLUGIN_target_task_completion): Add missing return.
3509 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
3511         * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
3513 2016-01-12  James Norris  <jnorris@codesourcery.com>
3515         * libgomp.texi: Updates for OpenACC.
3517 2016-01-11  Alexander Monakov  <amonakov@ispras.ru>
3519         * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.
3521 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
3523         PR fortran/66680
3524         * testsuite/libgomp.fortran/pr66680.f90: New test.
3526 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
3528         PR middle-end/68960
3529         * testsuite/libgomp.c/pr68960.c: New test.
3531 2016-01-06  Nathan Sidwell  <nathan@acm.org>
3533         * openacc.h (acc_on_device): Add routine pragma for C++ wrapper.
3534         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New.
3536 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
3538         Update copyright years.
3540         * libgomp.texi: Bump @copying's copyright year.
3542 2015-12-31  Nathan Sidwell  <nathan@acm.org>
3544         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct
3545         dg-additional-options syntax.
3546         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
3547         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
3548         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
3549         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
3550         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
3551         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
3552         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
3553         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
3554         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
3555         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
3556         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
3557         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
3558         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
3559         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
3560         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
3561         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
3562         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
3563         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
3565 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
3567         * libgomp.h (REFCOUNT_LINK): Define.
3568         (struct splay_tree_key_s): Add link_key.
3569         * target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
3570         Replace target address of the pointer with target address of newly
3571         mapped object in the splay tree.  Set link pointer on target to the
3572         device address of the mapped object.
3573         (gomp_unmap_vars): Restore target address of the pointer in the splay
3574         tree for REFCOUNT_LINK objects after unmapping.
3575         (gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
3576         declare target link" objects.
3577         (gomp_unload_image_from_device): Replace j with i.  Force unmap of all
3578         "omp declare target link" objects, which were mapped for the image.
3579         (gomp_exit_data): Restore target address of the pointer in the splay
3580         tree for REFCOUNT_LINK objects after unmapping.
3581         * testsuite/libgomp.c/target-link-1.c: New file.
3583 2015-12-14  Ilya Verbin  <ilya.verbin@intel.com>
3585         * libgomp.h (gomp_device_state): New enum.
3586         (struct gomp_device_descr): Replace is_initialized with state.
3587         (gomp_fini_device): Remove declaration.
3588         * oacc-host.c (host_dispatch): Use state instead of is_initialized.
3589         * oacc-init.c (acc_init_1): Use state instead of is_initialized.
3590         (acc_shutdown_1): Likewise.  Inline gomp_fini_device.
3591         (acc_set_device_type): Use state instead of is_initialized.
3592         (acc_set_device_num): Likewise.
3593         * target.c (resolve_device): Use state instead of is_initialized.
3594         Do not initialize finalized device.
3595         (gomp_map_vars): Do nothing if device is finalized.
3596         (gomp_unmap_vars): Likewise.
3597         (gomp_update): Likewise.
3598         (GOMP_offload_register_ver): Use state instead of is_initialized.
3599         (GOMP_offload_unregister_ver): Likewise.
3600         (gomp_init_device): Likewise.
3601         (gomp_unload_device): Likewise.
3602         (gomp_fini_device): Remove.
3603         (gomp_get_target_fn_addr): Do nothing if device is finalized.
3604         (GOMP_target): Go to host fallback if device is finalized.
3605         (GOMP_target_ext): Likewise.
3606         (gomp_exit_data): Do nothing if device is finalized.
3607         (gomp_target_task_fn): Go to host fallback if device is finalized.
3608         (gomp_target_fini): New static function.
3609         (gomp_target_init): Use state instead of is_initialized.
3610         Call gomp_target_fini at exit.
3612 2015-12-09  Tom de Vries  <tom@codesourcery.com>
3614         PR tree-optimization/68716
3615         * testsuite/libgomp.c/omp-nested-2.c: New test.
3617 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
3619         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
3620         target openacc_nvidia_accel_selected.
3621         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
3622         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
3623         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
3624         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
3626 2015-12-01  Julian Brown  <julian@codesourcery.com>
3627             James Norris  <James_Norris@mentor.com>
3629         * oacc-parallel.c (GOACC_host_data): New function.
3630         * libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
3631         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
3632         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
3633         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
3634         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
3635         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
3636         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
3638 2015-11-30  James Norris  <jnorris@codesourcery.com>
3639             Cesar Philippidis  <cesar@codesourcery.com>
3641         libgomp/
3642         * libgomp.oacc-fortran/routine-5.f90: New test.
3643         * libgomp.oacc-fortran/routine-7.f90: New test.
3644         * libgomp.oacc-fortran/routine-9.f90: New test.
3646 2015-11-30  Tom de Vries  <tom@codesourcery.com>
3648         PR tree-optimization/46032
3649         * testsuite/libgomp.c/pr46032.c: New test.
3651 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
3653         PR libgomp/68579
3654         * task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
3655         (gomp_create_target_task): Call it before freeing
3656         GOMP_TARGET_TASK_DATA tasks.
3658         PR c/63326
3659         * testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
3660         in between case label and OpenMP standalone directives.
3661         * testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
3663 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
3665         * configure: Regenerate.
3667 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
3669         * testsuite/libgomp.c/target-35.c: New test.
3671 2015-11-22  James Norris  <jnorris@codesourcery.com>
3672             Cesar Philippidis  <cesar@codesourcery.com>
3674         * testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
3675         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
3676         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
3677         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
3678         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
3680 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
3682         PR middle-end/68221
3683         * testsuite/libgomp.c/reduction-11.c: Remove xfail.
3684         * testsuite/libgomp.c/reduction-12.c: Likewise.
3685         * testsuite/libgomp.c++/reduction-11.C: Likewise.
3686         * testsuite/libgomp.c++/reduction-12.C: Likewise.
3688 2015-11-19  Nathan Sidwell  <nathan@codesourcery.com>
3690         * libgomp.oacc-c-c++-common/reduction-dbl.c: New.
3691         * libgomp.oacc-c-c++-common/reduction-flt.c: New.
3692         * libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
3693         * libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
3694         * libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
3695         and fix.
3696         * libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3697         * libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3699 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3701         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
3702         worker & gang cases.
3703         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
3705 2015-11-17  Cesar Philippidis  <cesar@codesourcery.com>
3707         * config/nvptx/priority_queue.c: New file.
3709 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
3711         * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
3712         sections.
3714 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
3715             Aldy Hernandez  <aldyh@redhat.com>
3716             Ilya Verbin  <ilya.verbin@intel.com>
3718         * ordered.c (gomp_doacross_init, GOMP_doacross_post,
3719         GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
3720         GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
3721         iterators or IV by chunk size.
3722         * parallel.c (gomp_resolve_num_threads): Don't assume that
3723         if thr->ts.team is non-NULL, then pool must be non-NULL.
3724         * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
3725         * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
3726         GOMP_PLUGIN_target_task_completion.
3727         * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
3728         * Makefile.in: Regenerate.
3729         * libgomp.h: Shuffle prototypes and forward definitions around so
3730         priority queues can be defined.
3731         (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
3732         (enum gomp_target_task_state): New enum.
3733         (struct gomp_target_task): Add state, tgt, task and team fields.
3734         (gomp_create_target_task): Change return type to bool, add
3735         state argument.
3736         (gomp_target_task_fn): Change return type to bool.
3737         (struct gomp_device_descr): Add async_run_func.
3738         (struct gomp_task): Remove children, next_child, prev_child,
3739         next_queue, prev_queue, next_taskgroup, prev_taskgroup.
3740         Add pnode field.
3741         (struct gomp_taskgroup): Remove children.
3742         Add taskgroup_queue.
3743         (struct gomp_team): Change task_queue type to a priority queue.
3744         (splay_compare): Define inline.
3745         (priority_queue_offset): New.
3746         (priority_node_to_task): New.
3747         (task_to_priority_node): New.
3748         * oacc-mem.c: Do not include splay-tree.h.
3749         * priority_queue.c: New file.
3750         * priority_queue.h: New file.
3751         * splay-tree.c: Do not include splay-tree.h.
3752         (splay_tree_foreach_internal): New.
3753         (splay_tree_foreach): New.
3754         * splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
3755         (splay_tree_callback): Define typedef.
3756         * target.c (splay_compare): Move to libgomp.h.
3757         (GOMP_target): Don't adjust *thr in any way around running offloaded
3758         task.
3759         (GOMP_target_ext): Likewise.  Handle target nowait.
3760         (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
3761         return value from gomp_create_target_task, if false, fallthrough
3762         as if no dependencies exist.
3763         (gomp_target_task_fn): Change return type to bool, return true
3764         if the task should have another part scheduled later.  Handle
3765         target nowait.
3766         (gomp_load_plugin_for_device): Initialize async_run.
3767         * task.c (gomp_init_task): Initialize children_queue.
3768         (gomp_clear_parent_in_list): New.
3769         (gomp_clear_parent_in_tree): New.
3770         (gomp_clear_parent): Handle priorities.
3771         (GOMP_task): Likewise.
3772         (priority_queue_move_task_first,
3773         gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
3774         New functions.
3775         (gomp_create_target_task): Use priority queues.  Change return type
3776         to bool, add state argument, return false if for async
3777         {{enter,exit} data,update} constructs no dependencies need to be
3778         waited for, handle target nowait.  Set task->fn to NULL instead of
3779         gomp_target_task_fn.
3780         (verify_children_queue): Remove.
3781         (priority_list_upgrade_task): New.
3782         (priority_queue_upgrade_task): New.
3783         (verify_task_queue): Remove.
3784         (priority_list_downgrade_task): New.
3785         (priority_queue_downgrade_task): New.
3786         (gomp_task_run_pre): Use priority queues.
3787         Abstract code out to priority_queue_downgrade_task.
3788         (gomp_task_run_post_handle_dependers): Use priority queues.
3789         (gomp_task_run_post_remove_parent): Likewise.
3790         (gomp_task_run_post_remove_taskgroup): Likewise.
3791         (gomp_barrier_handle_tasks): Likewise.  Handle target nowait target
3792         tasks specially.
3793         (GOMP_taskwait): Likewise.
3794         (gomp_task_maybe_wait_for_dependencies): Likewise.  Abstract code to
3795         priority-queue_upgrade_task.
3796         (GOMP_taskgroup_start): Use priority queues.
3797         (GOMP_taskgroup_end): Likewise.  Handle target nowait target tasks
3798         specially.  If taskgroup is NULL, and thr->ts.level is 0, act as a
3799         barrier.
3800         * taskloop.c (GOMP_taskloop): Handle priorities.
3801         * team.c (gomp_new_team): Call priority_queue_init.
3802         (free_team): Call priority_queue_free.
3803         (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
3804         team created for target nowait in implicit parallel region.
3805         (gomp_team_start): For nested check, test thr->ts.level instead of
3806         thr->ts.team != NULL.
3807         * testsuite/libgomp.c/doacross-3.c: New test.
3808         * testsuite/libgomp.c/ordered-5.c: New test.
3809         * testsuite/libgomp.c/priority.c: New test.
3810         * testsuite/libgomp.c/target-31.c: New test.
3811         * testsuite/libgomp.c/target-32.c: New test.
3812         * testsuite/libgomp.c/target-33.c: New test.
3813         * testsuite/libgomp.c/target-34.c: New test.
3815 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3817         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
3819         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
3820         loop is sequential.
3822 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3824         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
3825         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
3827 2015-11-12  James Norris  <jnorris@codesourcery.com>
3828             Joseph Myers  <joseph@codesourcery.com>
3830         * libgomp.map (GOACC_2.0.1): Export GOACC_declare.
3831         * oacc-parallel.c (GOACC_declare): New function.
3832         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
3833         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
3834         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
3835         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
3836         * testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
3838 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3840         * testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
3842 2015-11-1  Nathan Sidwell  <nathan@codesourcery.com>
3844         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
3845         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
3847 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3849         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
3850         inadvertent commit.
3852 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3854         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
3855         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
3856         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
3857         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
3858         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
3860 2015-11-06  Thomas Schwinge  <thomas@codesourcery.com>
3862         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
3863         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
3865 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
3866             Ilya Verbin  <ilya.verbin@intel.com>
3868         * libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
3869         GOMP_loop_nonmonotonic_dynamic_start,
3870         GOMP_loop_nonmonotonic_guided_next,
3871         GOMP_loop_nonmonotonic_guided_start,
3872         GOMP_loop_ull_nonmonotonic_dynamic_next,
3873         GOMP_loop_ull_nonmonotonic_dynamic_start,
3874         GOMP_loop_ull_nonmonotonic_guided_next,
3875         GOMP_loop_ull_nonmonotonic_guided_start,
3876         GOMP_parallel_loop_nonmonotonic_dynamic,
3877         GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
3878         (GOMP_target_41): Renamed to ...
3879         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
3880         arguments.
3881         (GOMP_target_data_41): Renamed to ...
3882         (GOMP_target_data_ext): ... this.
3883         (GOMP_target_update_41): Renamed to ...
3884         (GOMP_target_update_ext): ... this.
3885         * libgomp.map (GOMP_4.5): Export GOMP_target_ext,
3886         GOMP_target_data_ext and GOMP_target_update_ext instead of
3887         GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
3888         Export GOMP_loop_nonmonotonic_dynamic_next,
3889         GOMP_loop_nonmonotonic_dynamic_start,
3890         GOMP_loop_nonmonotonic_guided_next,
3891         GOMP_loop_nonmonotonic_guided_start,
3892         GOMP_loop_ull_nonmonotonic_dynamic_next,
3893         GOMP_loop_ull_nonmonotonic_dynamic_start,
3894         GOMP_loop_ull_nonmonotonic_guided_next,
3895         GOMP_loop_ull_nonmonotonic_guided_start,
3896         GOMP_parallel_loop_nonmonotonic_dynamic and
3897         GOMP_parallel_loop_nonmonotonic_guided.
3898         * loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
3899         GOMP_parallel_loop_nonmonotonic_guided,
3900         GOMP_loop_nonmonotonic_dynamic_start,
3901         GOMP_loop_nonmonotonic_guided_start,
3902         GOMP_loop_nonmonotonic_dynamic_next,
3903         GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
3904         * loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
3905         GOMP_loop_ull_nonmonotonic_guided_start,
3906         GOMP_loop_ull_nonmonotonic_dynamic_next,
3907         GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
3908         * target.c (gomp_map_0len_lookup, gomp_map_val): New inline
3909         functions.
3910         (gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
3911         GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
3912         Use gomp_map_val function.
3913         (gomp_target_fallback_firstprivate): New static function.
3914         (GOMP_target_41): Renamed to ...
3915         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
3916         arguments.  Move firstprivate fallback handling into a new
3917         function.
3918         (GOMP_target_data_41): Renamed to ...
3919         (GOMP_target_data_ext): ... this.
3920         (GOMP_target_update_41): Renamed to ...
3921         (GOMP_target_update_ext): ... this.
3922         (gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
3923         gomp_map_0len_lookup instead of gomp_map_lookup.
3924         (omp_target_is_present): Use gomp_map_0len_lookup instead of
3925         gomp_map_lookup.
3926         * testsuite/libgomp.c/target-28.c: Likewise.
3927         * testsuite/libgomp.c/monotonic-1.c: New test.
3928         * testsuite/libgomp.c/monotonic-2.c: New test.
3929         * testsuite/libgomp.c/nonmonotonic-1.c: New test.
3930         * testsuite/libgomp.c/nonmonotonic-2.c: New test.
3931         * testsuite/libgomp.c/pr66199-5.c: New test.
3932         * testsuite/libgomp.c/pr66199-6.c: New test.
3933         * testsuite/libgomp.c/pr66199-7.c: New test.
3934         * testsuite/libgomp.c/pr66199-8.c: New test.
3935         * testsuite/libgomp.c/pr66199-9.c: New test.
3936         * testsuite/libgomp.c/reduction-11.c: New test.
3937         * testsuite/libgomp.c/reduction-12.c: New test.
3938         * testsuite/libgomp.c/reduction-13.c: New test.
3939         * testsuite/libgomp.c/reduction-14.c: New test.
3940         * testsuite/libgomp.c/reduction-15.c: New test.
3941         * testsuite/libgomp.c/target-12.c (main): Adjust for
3942         omp_target_is_present change for one-past-last element.
3943         * testsuite/libgomp.c/target-17.c (foo): Drop tests where
3944         the same var is both mapped and privatized.
3945         * testsuite/libgomp.c/target-19.c (foo): Adjust for different
3946         handling of zero-length array sections.
3947         * testsuite/libgomp.c/target-28.c: New test.
3948         * testsuite/libgomp.c/target-29.c: New test.
3949         * testsuite/libgomp.c/target-30.c: New test.
3950         * testsuite/libgomp.c/target-teams-1.c: New test.
3951         * testsuite/libgomp.c++/member-6.C: New test.
3952         * testsuite/libgomp.c++/member-7.C: New test.
3953         * testsuite/libgomp.c++/monotonic-1.C: New test.
3954         * testsuite/libgomp.c++/monotonic-2.C: New test.
3955         * testsuite/libgomp.c++/nonmonotonic-1.C: New test.
3956         * testsuite/libgomp.c++/nonmonotonic-2.C: New test.
3957         * testsuite/libgomp.c++/pr66199-3.C: New test.
3958         * testsuite/libgomp.c++/pr66199-4.C: New test.
3959         * testsuite/libgomp.c++/pr66199-5.C: New test.
3960         * testsuite/libgomp.c++/pr66199-6.C: New test.
3961         * testsuite/libgomp.c++/pr66199-7.C: New test.
3962         * testsuite/libgomp.c++/pr66199-8.C: New test.
3963         * testsuite/libgomp.c++/pr66199-9.C: New test.
3964         * testsuite/libgomp.c++/reduction-11.C: New test.
3965         * testsuite/libgomp.c++/reduction-12.C: New test.
3966         * testsuite/libgomp.c++/target-13.C: New test.
3967         * testsuite/libgomp.c++/target-14.C: New test.
3968         * testsuite/libgomp.c++/target-15.C: New test.
3969         * testsuite/libgomp.c++/target-16.C: New test.
3970         * testsuite/libgomp.c++/target-17.C: New test.
3971         * testsuite/libgomp.c++/target-18.C: New test.
3972         * testsuite/libgomp.c++/target-19.C: New test.
3974 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3976         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
3977         and reduction copy.
3978         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
3979         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
3980         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
3981         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
3982         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
3983         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3984         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
3985         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
3986         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3987         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
3988         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
3989         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
3990         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
3991         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
3993 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3995         * libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
3996         * libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
3997         * libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
3998         * libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
3999         * libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
4000         * libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
4001         * libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
4002         * libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
4004 2015-11-03  Nathan Sidwell  <nathan@codesourcery.com>
4006         * libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
4007         * plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
4008         (GOMP_OFFLOAD_openacc_parallel): Likewise.
4009         * oacc-host.c (host_openacc_exec): Likewise.
4010         * oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
4012 2015-11-03  Julian Brown  <julian@codesourcery.com>
4013             Thomas Schwinge  <thomas@codesourcery.com>
4015         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
4016         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
4017         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
4018         Likewise.
4019         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
4020         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
4022 2015-11-03  James Norris  <jnorris@codesourcery.com>
4024         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
4025         file.
4026         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
4027         Likewise.
4028         * testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
4029         * testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
4030         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
4031         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
4032         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
4034 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
4036         * openacc.h (enum acc_device_t): Reformat. Ensure layout
4037         compatibility.
4038         (enum acc_async_t): Reformat.
4039         (acc_on_device): Declare compatible with builtin and provide C++
4040         wrapper.
4041         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
4043 2015-10-29  Thomas Schwinge  <thomas@codesourcery.com>
4044             Cesar Philippidis  <cesar@codesourcery.com>
4046         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
4047         * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
4048         ... this.  Add a description of the test at the top of the file.
4049         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
4050         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
4051         ... this.  Add a description of the test at the top of the file.
4053 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4055         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
4056         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
4057         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
4058         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
4059         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
4060         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
4062 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
4064         * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
4065         dimensions.
4067 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
4069         PR testsuite/68063
4070         * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
4072 2015-10-27  James Norris  <jnorris@codesourcery.com>
4074         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
4075         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
4077 2015-10-26  Thomas Schwinge  <thomas@codesourcery.com>
4079         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
4080         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
4082         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
4083         acc_device_nvidia usage.
4084         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
4085         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
4086         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
4088         * oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
4089         * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
4091         PR libgomp/66518
4092         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
4094         PR libgomp/65437
4095         PR libgomp/66518
4096         * oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
4097         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
4099 2015-10-23  Tom de Vries  <tom@codesourcery.com>
4101         PR testsuite/68063
4102         * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
4104 2015-10-20  Nathan Sidwell  <nathan@codesourcery.com>
4106         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
4107         vector_length.
4108         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
4110 2015-10-14  Ilya Verbin  <ilya.verbin@intel.com>
4111             Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
4113         * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
4114         to 0 when mapnum is 0.
4116 2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4118         * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
4119         Cast to int from int32_t.
4121 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
4122             Aldy Hernandez  <aldyh@redhat.com>
4123             Ilya Verbin  <ilya.verbin@intel.com>
4125         * config/linux/affinity.c (omp_get_place_num_procs,
4126         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
4127         * config/linux/doacross.h: New file.
4128         * config/posix/affinity.c (omp_get_place_num_procs,
4129         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
4130         * config/posix/doacross.h: New file.
4131         * env.c: Include gomp-constants.h.
4132         (struct gomp_task_icv): Rename run_sched_modifier to
4133         run_sched_chunk_size.
4134         (gomp_max_task_priority_var): New variable.
4135         (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
4136         (handle_omp_display_env): Change _OPENMP value from 201307 to
4137         201511.  Print OMP_MAX_TASK_PRIORITY.
4138         (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
4139         (omp_set_schedule, omp_get_schedule): Rename modifier argument to
4140         chunk_size and run_sched_modifier to run_sched_chunk_size.
4141         (omp_get_max_task_priority, omp_get_initial_device,
4142         omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
4143         omp_get_partition_place_nums): New functions.
4144         * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
4145         omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
4146         to chunk_size.
4147         (omp_get_num_places_, omp_get_place_num_procs_,
4148         omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
4149         omp_get_place_proc_ids_8_, omp_get_place_num_,
4150         omp_get_partition_num_places_, omp_get_partition_place_nums_,
4151         omp_get_partition_place_nums_8_, omp_get_initial_device_,
4152         omp_get_max_task_priority_): New functions.
4153         * libgomp_g.h (GOMP_loop_doacross_static_start,
4154         GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
4155         GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
4156         GOMP_loop_ull_doacross_dynamic_start,
4157         GOMP_loop_ull_doacross_guided_start,
4158         GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
4159         GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
4160         GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
4161         GOMP_target_data_41, GOMP_target_update_41,
4162         GOMP_target_enter_exit_data): New prototypes.
4163         (GOMP_task): Add prototype argument.
4164         * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
4165         (struct gomp_doacross_work_share): New type.
4166         (struct gomp_work_share): Add doacross field.
4167         (struct gomp_task_icv): Rename run_sched_modifier to
4168         run_sched_chunk_size.
4169         (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
4170         GOMP_TASK_UNDEFERRED.  Add comments.
4171         (struct gomp_task_depend_entry): Add comments.
4172         (struct gomp_task): Likewise.
4173         (struct gomp_taskgroup): Likewise.
4174         (struct gomp_target_task): New type.
4175         (struct gomp_team): Add comment.
4176         (gomp_get_place_proc_ids_8, gomp_doacross_init,
4177         gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
4178         gomp_create_target_task, gomp_target_task_fn): New prototypes.
4179         (struct target_var_desc): New type.
4180         (struct target_mem_desc): Adjust comment.  Use struct
4181         target_var_desc instead of splay_tree_key for list.
4182         (REFCOUNT_INFINITY): Define.
4183         (struct splay_tree_key_s): Remove copy_from field.
4184         (struct gomp_device_descr): Add dev2dev_func field.
4185         (enum gomp_map_vars_kind): New enum.
4186         (gomp_map_vars): Add one argument.
4187         * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
4188         omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
4189         omp_get_place_num_procs, omp_get_place_num_procs_,
4190         omp_get_place_num_procs_8_, omp_get_place_proc_ids,
4191         omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
4192         omp_get_place_num_, omp_get_partition_num_places,
4193         omp_get_partition_num_places_, omp_get_partition_place_nums,
4194         omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
4195         omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
4196         omp_target_free, omp_target_is_present, omp_target_memcpy,
4197         omp_target_memcpy_rect, omp_target_associate_ptr and
4198         omp_target_disassociate_ptr.
4199         (GOMP_4.0.2): Renamed to ...
4200         (GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
4201         GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
4202         GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
4203         GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
4204         GOMP_loop_doacross_static_start, GOMP_doacross_post,
4205         GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
4206         GOMP_loop_ull_doacross_guided_start,
4207         GOMP_loop_ull_doacross_runtime_start,
4208         GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
4209         GOMP_doacross_ull_wait.
4210         * libgomp.texi: Document omp_get_max_task_priority.
4211         Rename modifier argument to chunk_size for omp_set_schedule and
4212         omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
4213         * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
4214         to run_sched_chunk_size renaming.
4215         (GOMP_loop_ordered_runtime_start): Likewise.
4216         (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
4217         gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
4218         GOMP_parallel_loop_runtime_start): New functions.
4219         (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
4220         to run_sched_chunk_size renaming.
4221         (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
4222         GOMP_loop_doacross_guided_start): New functions or aliases.
4223         * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
4224         run_sched_modifier to run_sched_chunk_size renaming.
4225         (GOMP_loop_ull_ordered_runtime_start): Likewise.
4226         (gomp_loop_ull_doacross_static_start,
4227         gomp_loop_ull_doacross_dynamic_start,
4228         gomp_loop_ull_doacross_guided_start,
4229         GOMP_loop_ull_doacross_runtime_start): New functions.
4230         (GOMP_loop_ull_doacross_static_start,
4231         GOMP_loop_ull_doacross_dynamic_start,
4232         GOMP_loop_ull_doacross_guided_start): New functions or aliases.
4233         * oacc-mem.c (acc_map_data, present_create_copy,
4234         gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
4235         to gomp_map_vars.
4236         (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
4237         * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
4238         instead of false to gomp_map_vars.
4239         (GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
4240         * omp.h.in (omp_lock_hint_t): New type.
4241         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4242         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4243         omp_get_place_num, omp_get_partition_num_places,
4244         omp_get_partition_place_nums, omp_get_initial_device,
4245         omp_get_max_task_priority, omp_target_alloc, omp_target_free,
4246         omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
4247         omp_target_associate_ptr, omp_target_disassociate_ptr): New
4248         prototypes.
4249         * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
4250         (omp_lock_hint_none, omp_lock_hint_uncontended,
4251         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
4252         omp_lock_hint_speculative): New parameters.
4253         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4254         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4255         omp_get_place_num, omp_get_partition_num_places,
4256         omp_get_partition_place_nums, omp_get_initial_device,
4257         omp_get_max_task_priority): New interfaces.
4258         (omp_set_schedule, omp_get_schedule): Rename modifier argument
4259         to chunk_size.
4260         * omp_lib.h.in (omp_lock_hint_kind): New parameter.
4261         (omp_lock_hint_none, omp_lock_hint_uncontended,
4262         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
4263         omp_lock_hint_speculative): New parameters.
4264         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4265         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4266         omp_get_place_num, omp_get_partition_num_places,
4267         omp_get_partition_place_nums, omp_get_initial_device,
4268         omp_get_max_task_priority): New functions and subroutines.
4269         * ordered.c: Include stdarg.h and string.h.
4270         (MAX_COLLAPSED_BITS): Define.
4271         (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
4272         gomp_doacross_ull_init, GOMP_doacross_ull_post,
4273         GOMP_doacross_ull_wait): New functions.
4274         * target.c: Include errno.h.
4275         (resolve_device): If device is not initialized, call
4276         gomp_init_device on it.
4277         (gomp_map_lookup): New function.
4278         (gomp_map_vars_existing): Add tgt_var argument, fill it in.
4279         Don't bump refcount if REFCOUNT_INFINITY.  Handle
4280         GOMP_MAP_ALWAYS_TO_P.
4281         (get_kind): Rename is_openacc argument to short_mapkind.
4282         (gomp_map_pointer): Use gomp_map_lookup.
4283         (gomp_map_fields_existing): New function.
4284         (gomp_map_vars): Rename is_openacc argument to short_mapkind
4285         and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
4286         handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
4287         GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
4288         Adjust for tgt->list changed type and copy_from living in there.
4289         (gomp_copy_from_async): Adjust for tgt->list changed type and
4290         copy_from living in there.
4291         (gomp_unmap_vars): Likewise.
4292         (gomp_update): Likewise.  Rename is_openacc argument to
4293         short_mapkind.  Don't fail if object is not mapped.
4294         (gomp_load_image_to_device): Initialize refcount to
4295         REFCOUNT_INFINITY.
4296         (gomp_target_fallback): New function.
4297         (gomp_get_target_fn_addr): Likewise.
4298         (GOMP_target): Adjust gomp_map_vars caller, use
4299         gomp_get_target_fn_addr and gomp_target_fallback.
4300         (GOMP_target_41): New function.
4301         (gomp_target_data_fallback): New function.
4302         (GOMP_target_data): Use it, adjust gomp_map_vars caller.
4303         (GOMP_target_data_41): New function.
4304         (GOMP_target_update): Adjust gomp_update caller.
4305         (GOMP_target_update_41): New function.
4306         (gomp_exit_data, GOMP_target_enter_exit_data,
4307         gomp_target_task_fn, omp_target_alloc, omp_target_free,
4308         omp_target_is_present, omp_target_memcpy,
4309         omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
4310         omp_target_associate_ptr, omp_target_disassociate_ptr,
4311         gomp_load_plugin_for_device): New functions.
4312         * task.c: Include gomp-constants.h.  Include taskloop.c
4313         twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
4314         (gomp_task_handle_depend): New function.
4315         (GOMP_task): Use it.  Add priority argument.  Use
4316         gomp-constant.h constants instead of hardcoded numbers.
4317         Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
4318         (gomp_create_target_task): New function.
4319         (verify_children_queue, verify_taskgroup_queue,
4320         verify_task_queue): New functions.
4321         (gomp_task_run_pre): Call verify_*_queue functions.
4322         If an upcoming tied task is about to leave the sibling or
4323         taskgroup queues in an invalid state, adjust appropriately.
4324         Remove taskgroup argument.  Add comments.
4325         (gomp_task_run_post_handle_dependers): Add comments.
4326         (gomp_task_run_post_remove_parent): Likewise.
4327         (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
4328         (GOMP_taskwait): Likewise.  Add comments.
4329         (gomp_task_maybe_wait_for_dependencies): Fix scheduling
4330         problem such that the first non parent_depends_on task does not
4331         end up at the end of the children queue.
4332         (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
4333         GOMP_TASK_UNDEFERRED.
4334         (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
4335         * taskloop.c: New file.
4336         * testsuite/lib/libgomp.exp
4337         (check_effective_target_offload_device_nonshared_as): New proc.
4338         * testsuite/libgomp.c/affinity-2.c: New test.
4339         * testsuite/libgomp.c/doacross-1.c: New test.
4340         * testsuite/libgomp.c/doacross-2.c: New test.
4341         * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
4342         Add map clause to target.
4343         * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
4344         * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
4345         * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
4346         * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
4347         * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
4348         Likewise.
4349         * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
4350         * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
4351         * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
4352         * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
4353         not defined.  Use those where needed.
4354         * testsuite/libgomp.c/for-4.c: New test.
4355         * testsuite/libgomp.c/for-5.c: New test.
4356         * testsuite/libgomp.c/for-6.c: New test.
4357         * testsuite/libgomp.c/linear-1.c: New test.
4358         * testsuite/libgomp.c/ordered-4.c: New test.
4359         * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
4360         only allowed on the loop iterator.
4361         * testsuite/libgomp.c/pr66199-3.c: New test.
4362         * testsuite/libgomp.c/pr66199-4.c: New test.
4363         * testsuite/libgomp.c/reduction-7.c: New test.
4364         * testsuite/libgomp.c/reduction-8.c: New test.
4365         * testsuite/libgomp.c/reduction-9.c: New test.
4366         * testsuite/libgomp.c/reduction-10.c: New test.
4367         * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
4368         map(tofrom:s).
4369         * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
4370         * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
4371         * testsuite/libgomp.c/target-11.c: New test.
4372         * testsuite/libgomp.c/target-12.c: New test.
4373         * testsuite/libgomp.c/target-13.c: New test.
4374         * testsuite/libgomp.c/target-14.c: New test.
4375         * testsuite/libgomp.c/target-15.c: New test.
4376         * testsuite/libgomp.c/target-16.c: New test.
4377         * testsuite/libgomp.c/target-17.c: New test.
4378         * testsuite/libgomp.c/target-18.c: New test.
4379         * testsuite/libgomp.c/target-19.c: New test.
4380         * testsuite/libgomp.c/target-20.c: New test.
4381         * testsuite/libgomp.c/target-21.c: New test.
4382         * testsuite/libgomp.c/target-22.c: New test.
4383         * testsuite/libgomp.c/target-23.c: New test.
4384         * testsuite/libgomp.c/target-24.c: New test.
4385         * testsuite/libgomp.c/target-25.c: New test.
4386         * testsuite/libgomp.c/target-26.c: New test.
4387         * testsuite/libgomp.c/target-27.c: New test.
4388         * testsuite/libgomp.c/taskloop-1.c: New test.
4389         * testsuite/libgomp.c/taskloop-2.c: New test.
4390         * testsuite/libgomp.c/taskloop-3.c: New test.
4391         * testsuite/libgomp.c/taskloop-4.c: New test.
4392         * testsuite/libgomp.c++/ctor-13.C: New test.
4393         * testsuite/libgomp.c++/doacross-1.C: New test.
4394         * testsuite/libgomp.c++/examples-4/declare_target-2.C:
4395         Replace offload_device with offload_device_nonshared_as.
4396         * testsuite/libgomp.c++/for-12.C: New test.
4397         * testsuite/libgomp.c++/for-13.C: New test.
4398         * testsuite/libgomp.c++/for-14.C: New test.
4399         * testsuite/libgomp.c++/linear-1.C: New test.
4400         * testsuite/libgomp.c++/member-1.C: New test.
4401         * testsuite/libgomp.c++/member-2.C: New test.
4402         * testsuite/libgomp.c++/member-3.C: New test.
4403         * testsuite/libgomp.c++/member-4.C: New test.
4404         * testsuite/libgomp.c++/member-5.C: New test.
4405         * testsuite/libgomp.c++/ordered-1.C: New test.
4406         * testsuite/libgomp.c++/reduction-5.C: New test.
4407         * testsuite/libgomp.c++/reduction-6.C: New test.
4408         * testsuite/libgomp.c++/reduction-7.C: New test.
4409         * testsuite/libgomp.c++/reduction-8.C: New test.
4410         * testsuite/libgomp.c++/reduction-9.C: New test.
4411         * testsuite/libgomp.c++/reduction-10.C: New test.
4412         * testsuite/libgomp.c++/reference-1.C: New test.
4413         * testsuite/libgomp.c++/simd14.C: New test.
4414         * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
4415         * testsuite/libgomp.c++/target-5.C: New test.
4416         * testsuite/libgomp.c++/target-6.C: New test.
4417         * testsuite/libgomp.c++/target-7.C: New test.
4418         * testsuite/libgomp.c++/target-8.C: New test.
4419         * testsuite/libgomp.c++/target-9.C: New test.
4420         * testsuite/libgomp.c++/target-10.C: New test.
4421         * testsuite/libgomp.c++/target-11.C: New test.
4422         * testsuite/libgomp.c++/target-12.C: New test.
4423         * testsuite/libgomp.c++/taskloop-1.C: New test.
4424         * testsuite/libgomp.c++/taskloop-2.C: New test.
4425         * testsuite/libgomp.c++/taskloop-3.C: New test.
4426         * testsuite/libgomp.c++/taskloop-4.C: New test.
4427         * testsuite/libgomp.c++/taskloop-5.C: New test.
4428         * testsuite/libgomp.c++/taskloop-6.C: New test.
4429         * testsuite/libgomp.c++/taskloop-7.C: New test.
4430         * testsuite/libgomp.c++/taskloop-8.C: New test.
4431         * testsuite/libgomp.c++/taskloop-9.C: New test.
4432         * testsuite/libgomp.fortran/affinity1.f90: New test.
4433         * testsuite/libgomp.fortran/affinity2.f90: New test.
4435 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4437         PR tree-optimization/67476
4438         * testsuite/libgomp.c/autopar-3.c: New test.
4439         * testsuite/libgomp.c/autopar-4.c: New test.
4440         * testsuite/libgomp.c/autopar-5.c: New test.
4441         * testsuite/libgomp.c/autopar-6.c: New test.
4442         * testsuite/libgomp.c/autopar-7.c: New test.
4443         * testsuite/libgomp.c/autopar-8.c: New test.
4445 2015-10-12  James Norris  <jnorris@codesourcery.com>
4447         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
4448         initializer.
4450 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
4452         * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
4453         using load_gcc_lib.
4455 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
4457         * oacc-ptx.h: Remove file, moving its content into...
4458         * config/nvptx/fortran.c: ... here...
4459         * config/nvptx/oacc-init.c: ..., here...
4460         * config/nvptx/oacc-parallel.c: ..., and here.
4461         * config/nvptx/openacc.f90: New file.
4462         * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
4463         (link_ptx): Don't link in predefined bits of PTX code.
4465 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
4466             Bernd Schmidt <bernds@codesourcery.com>
4468         * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
4469         (struct targ_ptx_obj): New.
4470         (nvptx_tdata): Move earlier, change data format.
4471         (link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
4472         objects.
4473         (GOMP_OFFLOAD_load_image): Adjust.
4475 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
4477         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
4478         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
4479         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
4480         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
4481         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
4482         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
4483         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
4484         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
4485         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
4486         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
4487         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
4488         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
4489         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
4490         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
4491         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
4492         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
4493         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
4494         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
4495         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
4496         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
4497         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
4498         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
4499         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
4500         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
4501         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
4502         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
4503         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
4504         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
4505         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
4506         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
4507         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
4508         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
4509         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
4510         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
4511         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
4512         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
4513         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
4514         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
4515         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
4516         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
4517         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
4518         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
4519         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
4520         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
4521         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
4522         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
4523         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
4524         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
4525         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
4526         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
4527         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
4528         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
4529         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
4530         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
4531         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
4532         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
4533         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
4534         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
4535         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
4536         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
4537         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
4538         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
4539         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
4541 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4543         * oacc-init.c (acc_on_device): Force optimization level.
4545 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4547         * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
4548         (cuda_errlist): Delete.
4549         (cuda_error): Reimplement.
4551 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
4553         * libgomp.h (acc_dispatch_t): Replace separate geometry args with
4554         array.
4555         * libgomp.map (GOACC_parallel_keyed): New.
4556         * oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
4557         all callers.
4558         (GOACC_parallel_keyed): New interface.  Lose geometry arguments
4559         and take keyed varargs list.  Adjust call to exec_func.
4560         (GOACC_parallel): Force host fallback.
4561         * libgomp_g.h (GOACC_parallel): Remove.
4562         (GOACC_parallel_keyed): Declare.
4563         * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
4564         (stuct targ_gn_descriptor): Replace name field with launch field.
4565         (nvptx_exec): Lose separate geometry args, take array.  Process
4566         dynamic dimensions and adjust.
4567         (struct nvptx_tdata): Replace fn_names field with fn_descs.
4568         (GOMP_OFFLOAD_load_image): Adjust for change in function table
4569         data.
4570         (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
4571         passing.
4572         * oacc-host.c (host_openacc_exec): Adjust for change in dimension
4573         passing.
4575 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4577         PR libgomp/67141
4578         * oacc-int.h (goacc_host_init): Add declaration.
4579         * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
4580         * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
4582 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
4583             Sebastian Pop  <s.pop@samsung.com>
4585         * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
4586         match o/p.
4587         * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
4588         * testsuite/libgomp.graphite/force-parallel-4.c: Same.
4589         * testsuite/libgomp.graphite/force-parallel-5.c: Same.
4590         * testsuite/libgomp.graphite/force-parallel-7.c: Same.
4591         * testsuite/libgomp.graphite/force-parallel-8.c: Same.
4593 2015-09-03  Jakub Jelinek  <jakub@redhat.com>
4595         * configure.tgt: Add missing ;; in between nvptx and rtems
4596         snippets.
4598 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4600         * config/posix/pool.h (gomp_adjust_thread_attr): New.
4601         * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
4602         (gomp_thread_pool_reservoir): Add priority member.
4603         * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
4604         priority.
4605         (parse_thread_pools): Likewise.
4606         * team.c (gomp_team_start): Call configuration provided
4607         gomp_adjust_thread_attr(). Destroy thread attributes if
4608         necessary.
4609         * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
4611 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4613         * config/posix/pool.h: New.
4614         * config/rtems/pool.h: Likewise.
4615         * config/rtems/proc.c: Likewise.
4616         * libgomp.h (gomp_thread_destructor): Declare.
4617         * team.c: Include configuration provided "pool.h".
4618         (gomp_get_thread_pool): Define in configuration.
4619         (gomp_team_end): Call configuration defined
4620         gomp_release_thread_pool().
4622 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4624         * config/rtems/bar.c: New.
4625         * config/rtems/bar.h: Likewise.
4626         * config/rtems/mutex.c: Likewise.
4627         * config/rtems/mutex.h: Likewise.
4628         * config/rtems/sem.c: Likewise.
4629         * config/rtems/sem.h: Likewise.
4630         * configure.ac (*-*-rtems*): Check that Newlib provides a proper
4631         <sys/lock.h> header file.
4632         * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
4633         supported by Newlib.
4634         * configure: Regenerate.
4636 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4638         * team.c (gomp_new_thread_pool): Delete and move content to ...
4639         (gomp_get_thread_pool): ... new function.  Allocate and
4640         initialize thread pool on demand.
4641         (get_last_team): Use gomp_get_thread_pool().
4642         (gomp_team_start): Delete thread pool initialization.
4644 2015-09-03  Tom de Vries  <tom@codesourcery.com>
4646         PR tree-optimization/65637
4647         * testsuite/libgomp.c/autopar-2.c: New test.
4649 2015-08-29  Tom de Vries  <tom@codesourcery.com>
4651         PR tree-optimization/46193
4652         * testsuite/libgomp.c/pr46193.c: New test.
4654 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4656         libgomp/
4657         * libgomp.map: Add 4.0.2 version.
4658         * target.c (offload_image_descr): Add version field.
4659         (gomp_load_image_to_device): Add version argument.  Adjust plugin
4660         call.  Improve load mismatch diagnostic.
4661         (gomp_unload_image_from_device): Add version argument.  Adjust plugin
4662         call.
4663         (GOMP_offload_regster): Make stub function, move bulk to ...
4664         (GOMP_offload_register_ver): ... here.  Process version argument.
4665         (GOMP_offload_unregister): Make stub function, move bulk to ...
4666         (GOMP_offload_unregister_ver): ... here.  Process version argument.
4667         (gomp_init_device): Process version field.
4668         (gomp_unload_device): Process version field.
4669         (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
4670         macros.  Check plugin version.
4671         * libgomp.h (gomp_device_descr): Add version function field.  Adjust
4672         loader and unloader types.
4673         * oacc-host.c: Include gomp-constants.h.
4674         (host_version): New.
4675         (host_load_image, host_unload_image): Adjust.
4676         (host_dispatch): Add host_version.
4677         * plugin/plugin-nvptx.c: Include gomp-constants.h.
4678         (GOMP_OFFLOAD_version): New.
4679         (GOMP_OFFLOAD_load_image): Add version arg and check it.
4680         (GOMP_OFFLOAD_unload_image): Likewise.
4681         * plugin/plugin-host.c: Include gomp-constants.h.
4682         (GOMP_OFFLOAD_version): New.
4683         (GOMP_OFFLOAD_load_image): Add version arg.
4684         (GOMP_OFFLOAD_unload_image): Likewise.
4686 2015-08-24  Tom de Vries  <tom@codesourcery.com>
4688         PR tree-optimization/65468
4689         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
4691 2015-08-24  Tom de Vries  <tom@codesourcery.com>
4693         PR tree-optimization/65468
4694         * testsuite/libgomp.c/static-chunk-size-one.c: New test.
4696 2015-08-24  Joost VandeVondele  <vondele@gnu.gcc.org>
4698         PR libgomp/66761
4699         PR libgomp/67303
4700         * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
4701         (gomp_iter_guided_next): Idem.
4702         * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
4703         (gomp_iter_ull_guided_next): Idem.
4704         * config/linux/wait.h (do_spin): Idem.
4706 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4708         * libgomp-plugin.h (enum offload_target_type): Remove
4709         OFFLOAD_TARGET_TYPE_HOST_NONSHM.
4710         * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
4711         * openacc.h (enum acc_device_t): Likewise.
4712         * openacc_lib.h: Likewise.
4713         * oacc-init.c (name_of_acc_device_t): Don't handle it.
4714         (acc_on_device): Just use __builtin_acc_on_device.
4715         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
4716         of acc_on_device builtin.
4717         * plugin/plugin-host.h: Remove file.
4718         * plugin/plugin-host.c: Likewise, but salvage some content into...
4719         * oacc-host.c: ... this file.
4720         * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
4721         * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
4722         * Makefile.in: Regenerate.
4723         * configure: Likewise.
4724         * testsuite/lib/libgomp.exp
4725         (check_effective_target_openacc_host_nonshm_selected): Remove.
4726         * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
4727         ACC_DEVICE_TYPE=host_nonshm.
4728         * testsuite/libgomp.oacc-c/c.exp: Likewise.
4729         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
4730         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
4731         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
4732         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
4733         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
4735 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4736             Jakub Jelinek  <jakub@redhat.com>
4738         * config/nvptx/affinity.c: New file.
4739         * config/nvptx/alloc.c: Likewise.
4740         * config/nvptx/bar.c: Likewise.
4741         * config/nvptx/barrier.c: Likewise.
4742         * config/nvptx/critical.c: Likewise.
4743         * config/nvptx/env.c: Likewise.
4744         * config/nvptx/error.c: Likewise.
4745         * config/nvptx/fortran.c: Likewise.
4746         * config/nvptx/iter.c: Likewise.
4747         * config/nvptx/iter_ull.c: Likewise.
4748         * config/nvptx/libgomp-plugin.c: Likewise.
4749         * config/nvptx/lock.c: Likewise.
4750         * config/nvptx/loop.c: Likewise.
4751         * config/nvptx/loop_ull.c: Likewise.
4752         * config/nvptx/mutex.c: Likewise.
4753         * config/nvptx/oacc-async.c: Likewise.
4754         * config/nvptx/oacc-cuda.c: Likewise.
4755         * config/nvptx/oacc-host.c: Likewise.
4756         * config/nvptx/oacc-init.c: Likewise.
4757         * config/nvptx/oacc-mem.c: Likewise.
4758         * config/nvptx/oacc-parallel.c: Likewise.
4759         * config/nvptx/oacc-plugin.c: Likewise.
4760         * config/nvptx/omp-lock.h: Likewise.
4761         * config/nvptx/ordered.c: Likewise.
4762         * config/nvptx/parallel.c: Likewise.
4763         * config/nvptx/proc.c: Likewise.
4764         * config/nvptx/ptrlock.c: Likewise.
4765         * config/nvptx/sections.c: Likewise.
4766         * config/nvptx/sem.c: Likewise.
4767         * config/nvptx/single.c: Likewise.
4768         * config/nvptx/splay-tree.c: Likewise.
4769         * config/nvptx/target.c: Likewise.
4770         * config/nvptx/task.c: Likewise.
4771         * config/nvptx/team.c: Likewise.
4772         * config/nvptx/time.c: Likewise.
4773         * config/nvptx/work.c: Likewise.
4774         * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
4775         * configure: Regenerate.
4776         * configure.tgt (config_path): Set to "nvptx" for target
4777         nvptx*-*-*.
4779 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4781         * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
4783 2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>
4785         * plugin/plugin-nvptx.c: Don't include dlfcn.h.
4786         (cuda_errlist): Constify.
4787         (errmsg):  Move into ...
4788         (cuda_error): ... here.  Make smaller.
4789         (_XSTR, _STR): Delete.
4790         (cuda_synames): Delete.
4791         (verify_device_library): Delete.
4792         (nvptx_init): Don't call it.
4794 2015-07-28  Tom de Vries  <tom@codesourcery.com>
4796         * testsuite/libgomp.c/uns-outer-4.c: New test.
4798 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
4800         * testsuite/libgomp.c/pr66714.c: New test.
4802 2015-07-22  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4804         PR libgomp/66950
4805         * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
4806         (fib_ref): New function.
4807         (fib): Correct corner cases in the recursion.
4808         (main): Replace the non-simd loop with fib_ref call.
4809         * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
4810         subroutine.
4811         (fibonacci): Lower the parameter N to 30.  Correct accordingly check
4812         for the last array element value.  Replace the non-simd loop with
4813         fib_ref call.  Remove redundant b_ref array.  Remove the comparison
4814         of the last array element with according Fibonacci sequence element.
4815         (fib): Correct corner cases in the recursion.
4817 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
4819         * target.c (gomp_offload_image_to_device): Rename to ...
4820         (gomp_load_image_to_device): ... here.
4821         (GOMP_offload_register): Adjust call.
4822         (gomp_init_device): Likewise.
4823         (gomp_unload_image_from_device): New.  Broken out of ...
4824         (GOMP_offload_unregister): ... here.  Call it.
4825         (gomp_unload_device): New.
4826         * libgomp.h (gomp_unload_device): Declare.
4827         * oacc-init.c (acc_shutdown_1): Unload from device before deleting
4828         mem maps.
4830 2015-07-20  Nathan Sidwell  <nathan@codesourcery.com>
4832         * oacc-parallel.c (GOACC_parallel): Move variadic handling into
4833         wait=-specific if.
4834         (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
4835         !=0 condition.
4836         (goacc_waits): Move !num_waits handling to ...
4837         (GOACC_wait): ... here, the only caller that might have zero waits.
4839         * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
4840         (struct ptx_image_data): Move earlier, add fns field.
4841         (struct ptx_device): Add images and image_lock fields.
4842         (ptx_images, ptx_image_lock): Delete.
4843         (nvptx_open_device): Initialize images and image_lock fields.
4844         (nvptx_close_device): Destroy image_lock.
4845         (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
4846         (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
4847         fields.
4849 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
4851         * target.c (GOMP_offload_register): Use int for device type arg.
4852         (GOMP_offload_unregister): Likewise.
4854         * target.c (struct_offload_image_descr): Constify host_table.
4855         (gomp_offload_image_to_device): Likewise.
4856         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
4858         * libgomp.h (gomp_device_descr): Constify target data arguments.
4859         * target.c (struct offload_image_descr): Constify target_data.
4860         (gomp_offload_image_to_device): Likewise.
4861         (GOMP_offload_register): Likewise.
4862         (GOMP_offload_unrefister): Likewise.
4863         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
4864         GOMP_OFFLOAD_unload_image): Constify target data.
4865         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
4866         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
4868 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
4870         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
4871         Workaround driver library const error.
4872         (struct nvptx_tdata, nvptx_tdata_t): New.
4873         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
4874         type.
4876 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4878         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
4879         of EPS parameter from integer to real.
4880         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
4881         type of EPS parameter from integer to real.
4883 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4885         * team.c (get_last_team): New.
4886         (gomp_new_team): Recycle last non-nested team if possible.
4887         (gomp_team_end): Move team work share list free lock destruction
4888         to ...
4889         (free_team): ... here.
4891 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4893         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
4894         and ref from int to double.  Replaced their comparison with
4895         an inequality of their difference and EPS.
4896         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
4897         comparison of pri and a reference number with an inequality of their
4898         difference and EPS.
4899         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
4900         the comparison of sum and sum_ref with an inequality of their
4901         difference and EPS.
4902         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
4903         the comparison of pri and a reference number with an inequality of
4904         their difference and EPS.
4906 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4908         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
4909         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
4910         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
4911         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
4912         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
4913         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
4914         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
4915         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
4916         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
4917         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
4918         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
4919         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
4920         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
4921         variables.
4922         (vec_mult): Likewise.  Add #pragma omp taskwait.
4923         (main): Adjust caller.
4924         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
4925         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
4926         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
4927         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
4928         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
4929         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
4930         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
4931         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
4932         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
4933         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
4934         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
4935         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
4936         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
4937         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
4938         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
4939         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
4940         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
4941         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
4942         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
4943         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
4944         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
4945         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
4946         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
4947         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
4948         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
4949         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
4950         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
4951         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
4952         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
4953         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
4954         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
4955         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
4956         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
4957         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
4958         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
4959         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
4960         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
4961         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
4962         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
4963         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
4964         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
4965         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
4966         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
4967         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
4968         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
4969         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
4970         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
4971         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
4972         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
4973         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
4974         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
4975         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
4976         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
4977         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
4978         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
4979         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
4980         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
4981         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
4982         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
4983         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
4984         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
4985         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
4986         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
4987         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
4988         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
4989         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
4990         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
4991         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
4992         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
4993         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
4994         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
4995         (vec_mult): Add !$omp taskwait.
4996         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
4997         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
4998         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
4999         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
5000         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
5001         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
5002         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
5003         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
5004         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
5005         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
5006         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
5007         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
5008         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
5009         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
5010         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
5011         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
5012         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
5013         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
5014         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
5015         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
5016         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
5017         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
5018         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
5019         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
5020         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
5021         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
5022         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
5023         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
5024         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
5025         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
5026         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
5027         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
5028         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
5029         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
5030         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
5031         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
5032         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
5033         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
5034         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
5035         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
5036         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
5037         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
5038         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
5039         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
5040         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
5041         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
5042         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
5043         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
5044         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
5045         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
5046         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
5047         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
5048         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
5049         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
5050         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
5051         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
5052         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
5053         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
5054         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
5055         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
5056         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
5057         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
5058         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
5059         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
5060         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
5061         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
5062         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
5064 2015-07-10  Tom de Vries  <tom@codesourcery.com>
5066         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
5067         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
5069 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
5071         PR libgomp/65099
5072         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
5073         in a 64-bit configuration.
5074         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
5075         offloading testing if no such device is available.
5076         * testsuite/libgomp.oacc-c/c.exp: Likewise.
5077         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
5079 2015-07-08  Tom de Vries  <tom@codesourcery.com>
5081         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
5082         second call to f.
5083         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5085 2015-07-07  Tom de Vries  <tom@codesourcery.com>
5087         PR tree-optimization/66642
5088         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
5089         iteration count case.
5090         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
5091         function, factor out of ...
5092         (main): ... here.  Test low iteration count case.
5094 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5096         * libgomp.h (gomp_thread_pool): Comment last_team field.
5098 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
5100         * testsuite/libgomp.c++/pr66702-1.C: Require
5101         vect_simd_clones effective target.
5102         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
5104 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5106         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
5107         already set.  Use DEFAULT_CFLAGS in dg-runtest.
5108         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
5109         "-O2".
5111 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5113         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
5114         already set.  Use DEFAULT_CFLAGS in dg-runtest.
5115         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
5116         * testsuite/libgomp.c++/pr64824.C: Same.
5117         * testsuite/libgomp.c++/pr64868.C: Same.
5118         * testsuite/libgomp.c++/pr66199-1.C: Same.
5119         * testsuite/libgomp.c++/pr66199-2.C: Same.
5120         * testsuite/libgomp.c++/target-2.C: Same.
5121         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
5122         -std=<standard> option.
5123         * testsuite/libgomp.c++/udr-11.C: Same.
5124         * testsuite/libgomp.c++/udr-12.C: Same.
5125         * testsuite/libgomp.c++/udr-13.C: Same.
5126         * testsuite/libgomp.c++/udr-14.C: Same.
5127         * testsuite/libgomp.c++/udr-15.C: Same.
5128         * testsuite/libgomp.c++/udr-16.C: Same.
5129         * testsuite/libgomp.c++/udr-17.C: Same.
5130         * testsuite/libgomp.c++/udr-18.C: Same.
5131         * testsuite/libgomp.c++/udr-19.C: Same.
5132         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
5133         * testsuite/libgomp.c++/simd-1.C: Same.
5134         * testsuite/libgomp.c++/simd-2.C: Same.
5135         * testsuite/libgomp.c++/simd-3.C: Same.
5136         * testsuite/libgomp.c++/simd-4.C: Same.
5137         * testsuite/libgomp.c++/simd-5.C: Same.
5138         * testsuite/libgomp.c++/simd-6.C: Same.
5139         * testsuite/libgomp.c++/simd-7.C: Same.
5140         * testsuite/libgomp.c++/simd-8.C: Same.
5141         * testsuite/libgomp.c++/simd-9.C: Same.
5142         * testsuite/libgomp.c++/simd10.C: Same.
5143         * testsuite/libgomp.c++/simd11.C: Same.
5144         * testsuite/libgomp.c++/simd12.C: Same.
5145         * testsuite/libgomp.c++/simd13.C: Same.
5147 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
5149         PR middle-end/66702
5150         * testsuite/libgomp.c++/pr66702-1.C: New test.
5151         * testsuite/libgomp.c++/pr66702-2.C: New test.
5153 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5155         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
5156         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
5157         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
5158         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
5160 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5162         PR tree-optimization/66652
5163         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
5164         using restrict pointers.
5165         (main): Add arguments to calls to f.
5166         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5168 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
5170         * configure.ac: Fix check for header <sys/sysctl.h>.
5171         * configure: Regenerate.
5172         * config.h.in: Likewise.
5174 2015-06-23  Tom de Vries  <tom@codesourcery.com>
5176         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
5177         abort.
5178         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
5180 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
5182         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
5183         acc_device_nvidia.
5185         PR libgomp/66518
5186         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
5187         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5189 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5191         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
5192         dg-additional-options for any remaining options.
5193         * testsuite/libgomp.c/atomic-2.c: Same.
5194         * testsuite/libgomp.c/atomic-4.c: Same.
5195         * testsuite/libgomp.c/atomic-5.c: Same.
5196         * testsuite/libgomp.c/atomic-6.c: Same.
5197         * testsuite/libgomp.c/autopar-1.c: Same.
5198         * testsuite/libgomp.c/copyin-1.c: Same.
5199         * testsuite/libgomp.c/copyin-2.c: Same.
5200         * testsuite/libgomp.c/copyin-3.c: Same.
5201         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
5202         * testsuite/libgomp.c/nestedfn-5.c: Same.
5203         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
5204         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
5205         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
5206         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5207         * testsuite/libgomp.c/pr32362-1.c: Same.
5208         * testsuite/libgomp.c/pr32362-2.c: Same.
5209         * testsuite/libgomp.c/pr32362-3.c: Same.
5210         * testsuite/libgomp.c/pr39591-1.c: Same.
5211         * testsuite/libgomp.c/pr39591-2.c: Same.
5212         * testsuite/libgomp.c/pr39591-3.c: Same.
5213         * testsuite/libgomp.c/pr58392.c: Same.
5214         * testsuite/libgomp.c/pr58756.c: Same.
5215         * testsuite/libgomp.c/simd-1.c: Same.
5216         * testsuite/libgomp.c/simd-10.c: Same.
5217         * testsuite/libgomp.c/simd-11.c: Same.
5218         * testsuite/libgomp.c/simd-12.c: Same.
5219         * testsuite/libgomp.c/simd-13.c: Same.
5220         * testsuite/libgomp.c/simd-14.c: Same.
5221         * testsuite/libgomp.c/simd-15.c: Same.
5222         * testsuite/libgomp.c/simd-2.c: Same.
5223         * testsuite/libgomp.c/simd-3.c: Same.
5224         * testsuite/libgomp.c/simd-4.c: Same.
5225         * testsuite/libgomp.c/simd-5.c: Same.
5226         * testsuite/libgomp.c/simd-6.c: Same.
5227         * testsuite/libgomp.c/simd-7.c: Same.
5228         * testsuite/libgomp.c/simd-8.c: Same.
5229         * testsuite/libgomp.c/simd-9.c: Same.
5231 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5233         * testsuite/libgomp.c/pr35625.c: Fix typo.
5235 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5237         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
5238         in dg-options.
5239         * testsuite/libgomp.c/atomic-3.c: Same.
5240         * testsuite/libgomp.c/debug-1.c: Same.
5241         * testsuite/libgomp.c/nqueens-1.c: Same.
5242         * testsuite/libgomp.c/pr26171.c: Same.
5243         * testsuite/libgomp.c/pr48591.c: Same.
5244         * testsuite/libgomp.c/pr64824.c: Same.
5245         * testsuite/libgomp.c/pr64868.c: Same.
5246         * testsuite/libgomp.c/pr66133.c: Same.
5247         * testsuite/libgomp.c/pr66199-1.c: Same.
5248         * testsuite/libgomp.c/pr66199-2.c: Same.
5249         * testsuite/libgomp.c/target-8.c: Same.
5251 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5253         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
5254         -std={gnu99,c99}.
5255         * testsuite/libgomp.c/for-1.c: Same.
5256         * testsuite/libgomp.c/for-2.c: Same.
5257         * testsuite/libgomp.c/for-3.c: Same.
5258         * testsuite/libgomp.c/pr35625.c: Same.
5259         * testsuite/libgomp.c/pr39154.c: Same.
5260         * testsuite/libgomp.c/simd-16.c: Same.
5261         * testsuite/libgomp.c/simd-17.c: Same.
5263 2015-06-13  Tom de Vries  <tom@codesourcery.com>
5265         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
5267 2015-06-13  Tom de Vries  <tom@codesourcery.com>
5269         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
5270         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5271         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
5272         (N): Define.
5273         (main): Use N instead of hardcoded constants.
5275 2015-06-05  Tom de Vries  <tom@codesourcery.com>
5277         merge from gomp4 branch:
5278         2015-05-28  Tom de Vries  <tom@codesourcery.com>
5280         PR tree-optimization/65443
5281         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
5282         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
5283         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
5285 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5287         * testsuite/libgomp.graphite/bounds.c: Adjust for
5288         cleanup-tree-dump removal.
5289         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
5290         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
5291         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
5292         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
5293         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
5294         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
5295         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
5296         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
5297         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
5298         * testsuite/libgomp.graphite/pr41118.c: Likewise.
5300 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
5302         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
5303         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
5304         (futex_wake) [!__x86_64__]: Ditto.
5306 2015-05-28  Julian Brown  <julian@codesourcery.com>
5308         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
5309         function comment. Only call gomp_fatal if new argument is true.
5310         (acc_dev_num_out_of_range): New function.
5311         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
5312         acc_dev_num_out_of_range as appropriate.
5313         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
5314         (acc_get_device_num, acc_set_device_num): Update calls to
5315         resolve_device.
5316         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
5317         output.
5319 2015-05-28  Julian Brown  <julian@codesourcery.com>
5321         PR libgomp/65742
5322         * oacc-init.c (plugin/plugin-host.h): Include.
5323         (acc_on_device): Check whether we're in an offloaded region for
5324         host_nonshm
5325         plugin. Don't use __builtin_acc_on_device.
5326         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
5327         nonshm_exec flag in thread-local data.
5328         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
5329         data for host_nonshm plugin.
5330         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
5331         for host_nonshm plugin.
5332         * plugin/plugin-host.h: New.
5334 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5336         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
5338 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5340         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
5341         Declare as int.
5342         (FUTEX_PRIVATE_FLAG): Remove L suffix.
5343         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
5344         Declare as int.
5346 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5348         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
5350 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
5352         * target.c (gomp_map_pointer): New function abstracting out
5353         GOMP_MAP_POINTER handling.
5354         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
5355         gomp_map_pointer().
5357 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
5359         PR middle-end/66199
5360         * testsuite/libgomp.c/pr66199-1.c: New test.
5361         * testsuite/libgomp.c/pr66199-2.c: New test.
5362         * testsuite/libgomp.c++/pr66199-1.C: New test.
5363         * testsuite/libgomp.c++/pr66199-2.C: New test.
5364         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
5365         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
5367 2015-05-19  Julian Brown  <julian@codesourcery.com>
5369         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
5370         on cuInit failure.
5372 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
5374         PR middle-end/66133
5375         * testsuite/libgomp.c/pr66133.c: New test.
5377 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
5379         * Makefile.in: Regenerated with automake-1.11.6.
5380         * aclocal.m4: Likewise.
5381         * config.h.in: Likewise.
5382         * configure: Likewise.
5383         * testsuite/Makefile.in: Likewise.
5385 2015-05-08  Jason Merrill  <jason@redhat.com>
5387         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
5388         _Complex.
5390         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
5392 2015-05-06  Julian Brown  <julian@codesourcery.com>
5394         * oacc-init.c (acc_device_lock): Add explanatory comment.
5395         (resolve_device): Add comment about locking requirement.
5396         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
5397         gomp_init_device and gomp_fini_device calls.
5398         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
5399         (acc_get_device_num, acc_set_device_num): Add locking around
5400         resolve_device and gomp_init_device calls.
5402 2015-05-06  Julian Brown  <julian@codesourcery.com>
5404         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
5405         goacc_thread_lock on error paths.
5406         * oacc-mem.c (lookup_host): Remove locking from function. Note
5407         locking requirement for caller in function comment.
5408         (lookup_dev): Likewise.
5409         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
5410         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
5411         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
5412         Add locking.
5414 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
5416         PR testsuite/65205
5417         PR libgomp/65993
5418         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
5419         don't expect "0x" prefix for "%p" format specifier, don't expect
5420         "(nil)" for NULL pointer.
5421         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
5422         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
5423         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
5424         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
5425         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
5426         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
5427         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
5428         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
5429         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
5430         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
5431         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
5432         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
5433         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
5434         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
5435         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
5436         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
5437         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
5438         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
5439         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5440         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
5441         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
5442         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
5443         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
5444         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
5445         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
5446         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
5447         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
5448         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
5449         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
5450         accurately specify what we're looking for.
5451         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
5452         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
5453         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
5454         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
5455         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
5457 2015-04-30  James Norris  <jnorris@codesourcery.com>
5459         PR testsuite/65205
5460         * testsuite/lib/libgomp.exp
5461         (check_effective_target_openacc_host_selected)
5462         (check_effective_target_openacc_host_nonshm_selected): New
5463         procedures.
5464         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
5465         dg-shouldfail.
5466         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
5467         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
5468         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
5469         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
5470         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
5471         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
5472         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
5473         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
5474         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
5475         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
5476         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
5477         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
5478         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
5479         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
5480         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
5481         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
5482         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
5483         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
5484         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
5485         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
5486         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
5487         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
5488         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
5489         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5490         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
5491         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
5492         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
5493         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
5494         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
5495         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
5496         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
5497         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
5498         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
5499         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
5500         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
5501         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
5502         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
5503         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
5504         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
5505         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
5506         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
5507         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
5508         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
5510 2015-04-08  Julian Brown  <julian@codesourcery.com>
5512         * libgomp.h (target_mem_desc: Remove mem_map field.
5513         (acc_dispatch_t): Remove open_device_func, close_device_func,
5514         get_device_num_func, set_device_num_func, target_data members.
5515         Change create_thread_data_func argument to device number instead of
5516         generic pointer.
5517         * oacc-async.c (assert.h): Include.
5518         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
5519         (acc_wait_all, acc_wait_all_async): Use current host thread's
5520         active device, not base_dev.
5521         * oacc-cuda.c (acc_get_current_cuda_device)
5522         (acc_get_current_cuda_context, acc_get_cuda_stream)
5523         (acc_set_cuda_stream): Likewise.
5524         * oacc-host.c (host_dispatch): Don't set open_device_func,
5525         close_device_func, get_device_num_func or set_device_num_func.
5526         * oacc-init.c (base_dev, init_key): Remove.
5527         (cached_base_dev): New.
5528         (name_of_acc_device_t): New.
5529         (acc_init_1): Initialise default-numbered device, not zeroth.
5530         (acc_shutdown_1): Close all devices of a given type.
5531         (goacc_destroy_thread): Don't use base_dev.
5532         (lazy_open, lazy_init, lazy_init_and_open): Remove.
5533         (goacc_attach_host_thread_to_device): New.
5534         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
5535         (acc_get_num_devices): Don't use base_dev.
5536         (acc_set_device_type): Reimplement.
5537         (acc_get_device_type): Don't use base_dev.
5538         (acc_get_device_num): Tweak logic.
5539         (acc_set_device_num): Likewise.
5540         (acc_on_device): Use acc_get_device_type.
5541         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
5542         (goacc_lazy_initialize): Reimplement with acc_init and
5543         goacc_attach_host_thread_to_device.
5544         * oacc-int.h (goacc_thread): Add base_dev field.
5545         (base_dev): Remove extern declaration.
5546         (goacc_attach_host_thread_to_device): Add prototype.
5547         * oacc-mem.c (acc_malloc): Use current thread's device instead of
5548         base_dev.
5549         (acc_free): Likewise.
5550         (acc_memcpy_to_device): Likewise.
5551         (acc_memcpy_from_device): Likewise.
5552         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
5553         goacc_lazy_initialize (throughout).
5554         (GOACC_parallel): Use tgt_offset to locate target functions.
5555         * target.c (gomp_map_vars): Don't set tgt->mem_map.
5556         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
5557         (gomp_load_plugin_for_device): Remove open_device, close_device,
5558         get_device_num, set_device_num openacc hook initialisation. Don't set
5559         openacc.target_data.
5560         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
5561         (GOMP_OFFLOAD_openacc_close_device)
5562         (GOMP_OFFLOAD_openacc_get_device_num)
5563         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
5564         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
5565         to int.
5566         * plugin/plugin-nvptx.c (ptx_inited): Remove.
5567         (instantiated_devices, ptx_dev_lock): New.
5568         (struct ptx_image_data): New.
5569         (ptx_devices, ptx_images, ptx_image_lock): New.
5570         (fini_streams_for_device): Reorder cuStreamDestroy call.
5571         (nvptx_get_num_devices): Remove forward declaration.
5572         (nvptx_init): Change return type to bool.
5573         (nvptx_fini): Remove.
5574         (nvptx_attach_host_thread_to_device): New.
5575         (nvptx_open_device): Return struct ptx_device* instead of void*.
5576         (nvptx_close_device): Change argument type to struct ptx_device*,
5577         return type to void.
5578         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
5579         (kernel_target_data, kernel_host_table): Remove static globals.
5580         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
5581         (GOMP_OFFLOAD_init_device): Reimplement.
5582         (GOMP_OFFLOAD_fini_device): Likewise.
5583         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
5584         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
5585         (GOMP_OFFLOAD_host2dev): Use ORD argument.
5586         (GOMP_OFFLOAD_openacc_open_device)
5587         (GOMP_OFFLOAD_openacc_close_device)
5588         (GOMP_OFFLOAD_openacc_set_device_num)
5589         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
5590         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
5591         (device number).
5593         testsuite/
5594         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
5596 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
5598         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
5599         * libgomp.h (struct gomp_memory_mapping): Remove.
5600         (struct target_mem_desc): Change type of mem_map from
5601         gomp_memory_mapping * to splay_tree_s *.
5602         (struct gomp_device_descr): Remove register_image_func, get_table_func.
5603         Add load_image_func, unload_image_func.
5604         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
5605         Remove offload_regions_registered.
5606         (gomp_init_tables): Remove.
5607         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
5608         to splay_tree_s *.
5609         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
5610         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
5611         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
5612         offload_regions_registered.
5613         Initialize load_image_func, unload_image_func, mem_map.root.
5614         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
5615         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
5616         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
5617         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
5618         gomp_memory_mapping *.  Use dev's lock and splay_tree.
5619         (lookup_dev): Use dev's lock.
5620         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
5621         (acc_is_present): Likewise.
5622         (acc_map_data): Likewise.
5623         (acc_unmap_data): Likewise.  Use dev's lock.
5624         (present_create_copy): Likewise.
5625         (delete_copyout): Pass dev to lookup_host instead of mem_map.
5626         (update_dev_host): Likewise.
5627         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
5628         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
5629         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
5630         (GOMP_OFFLOAD_get_table): Remove
5631         (GOMP_OFFLOAD_load_image): New function.
5632         (GOMP_OFFLOAD_unload_image): New function.
5633         * target.c (register_lock): New mutex for offload image registration.
5634         (num_devices): Do not guard with PLUGIN_SUPPORT.
5635         (gomp_realloc_unlock): New static function.
5636         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
5637         before gomp_fatal.
5638         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
5639         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
5640         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
5641         mem_map's.
5642         (gomp_unmap_vars): Likewise.
5643         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
5644         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
5645         (gomp_offload_image_to_device): New static function.
5646         (GOMP_offload_register): Add mutex lock.
5647         Call gomp_offload_image_to_device for all initialized devices.
5648         Replace gomp_realloc with gomp_realloc_unlock.
5649         (GOMP_offload_unregister): New function.
5650         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
5651         get_table_func from the plugin with calls to init_device_func and
5652         gomp_offload_image_to_device.
5653         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
5654         to splay_tree_s *.
5655         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
5656         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
5657         (GOMP_target_data): Do not call gomp_init_tables.
5658         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
5659         (gomp_load_plugin_for_device): Replace register_image and get_table
5660         with load_image and unload_image in DLSYM ().
5661         (gomp_register_images_for_device): Remove function.
5662         (gomp_target_init): Do not initialize current_device.mem_map.*,
5663         current_device.offload_regions_registered.
5664         Remove call to gomp_register_images_for_device.
5665         Do not free offload_images and num_offload_images.
5667 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
5669         PR fortran/65597
5670         * testsuite/libgomp.fortran/pr65597.f90: New test.
5672 2015-03-27  Tom de Vries  <tom@codesourcery.com>
5674         PR testsuite/65594
5675         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
5676         (init, check): New function.
5677         (foo): Change return type to void.
5678         (main): Call init and check.
5680 2015-03-27  Tom de Vries  <tom@codesourcery.com>
5682         PR testsuite/65594
5683         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
5684         (foo): Use M for non-inner loops to scale down test-case.
5686 2015-03-25  Kai Tietz  <ktietz@redhat.com>
5688         PR libgomp/64972
5689         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
5690         (GOACC_data_start): Likewise.
5691         * target.c (gomp_map_vars): Likewise.
5693 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
5695         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
5696         hppa*-*-hpux*.
5698 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
5700         * testsuite/libgomp.c/target-10.c: New test.
5701         * testsuite/libgomp.c++/target-4.C: New test.
5703 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
5705         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
5706         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
5708 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5710         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
5711         * configure.ac (*-*-rtems*): Assume Pthread is supported.
5712         (pthread.h): Check for this header file.
5713         * configure: Regenerate.
5715 2015-02-25  Tom de Vries  <tom@codesourcery.com>
5717         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
5718         (check_reduction_op, check_reduction_macro, max, min):
5719         Declare.
5720         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
5721         function.
5722         (main): Use new functions.
5724 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
5726         * target.c (gomp_load_plugin_for_device): Use const char * instead of
5727         char * for variables holding dlerror return values.
5728         (DLSYM_OPT): Ditto.
5730 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
5732         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
5734 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
5735             Cesar Philippidis  <cesar@codesourcery.com>
5737         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
5738         GOACC_ctaid, and GOACC_nctaid routines.
5740 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
5742         PR c/64824
5743         * testsuite/libgomp.c/atomic-18.c: New test.
5744         * testsuite/libgomp.c++/atomic-16.C: New test.
5746 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
5748         PR c/64824
5749         PR c/64868
5750         * testsuite/libgomp.c/pr64824.c: New test.
5751         * testsuite/libgomp.c/pr64868.c: New test.
5752         * testsuite/libgomp.c++/pr64824.C: New test.
5753         * testsuite/libgomp.c++/pr64868.C: New test.
5755 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
5757         PR libgomp/64635
5758         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
5759         Link with -lpthread.
5760         * config/aix/plugin-suffix.h: Delete.
5762 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
5764         PR libgomp/64635
5765         * configure.tgt (*-*-aix*): Use config_path "aix posix".
5766         (*-*-darwin*): Use config_path "bsd darwin posix".
5767         (*-*-hpux*): Use config_path "hpux posix".
5768         * target.c: Add include of plugin-suffix.h and use
5769         SONAME_SUFFIX macro.
5770         * config/aix/plugin-suffix.h: New file.
5771         * config/darwin/plugin-suffix.h: New file.
5772         * config/hpux/plugin-suffix.h: New file.
5773         * config/posix/plugin-suffix.h: New file.
5775 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
5777         PR middle-end/64734
5778         * libgomp.c/pr64734.c: New test.
5780 2015-01-23  Tom de Vries  <tom@codesourcery.com>
5782         PR libgomp/64672
5783         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
5785 2015-01-23  Tom de Vries  <tom@codesourcery.com>
5787         PR libgomp/64707
5788         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
5789         dg-options.
5791 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
5793         PR libgomp/64625
5794         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
5795         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
5796         formal parameter.  Update all users.
5797         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
5798         Document unused formal parameter.
5800 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
5802         * oacc-parallel.c: Don't include <alloca.h>.
5803         (GOACC_parallel): Use gomp_alloca instead of alloca.
5805 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
5807         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
5809 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
5810             James Norris  <jnorris@codesourcery.com>
5811             Tom de Vries  <tom@codesourcery.com>
5812             Julian Brown  <julian@codesourcery.com>
5813             Cesar Philippidis  <cesar@codesourcery.com>
5814             Nathan Sidwell  <nathan@codesourcery.com>
5815             Tobias Burnus  <burnus@net-b.de>
5817         * Makefile.am (search_path): Add $(top_srcdir)/../include.
5818         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
5819         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
5820         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
5821         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
5822         Include $(top_srcdir)/plugin/Makefrag.am.
5823         (nodist_libsubinclude_HEADERS): Add openacc.h.
5824         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
5825         openacc.f90, openacc.mod, openacc_kinds.mod.
5826         (omp_lib.mod): Generalize into...
5827         (%.mod): ... this new rule.
5828         (openacc_kinds.mod, openacc.mod): New rules.
5829         * plugin/configfrag.ac: New file.
5830         * configure.ac: Move plugin/offloading support into it.  Include
5831         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
5832         * plugin/Makefrag.am: New file.
5833         * testsuite/Makefile.am (OFFLOAD_TARGETS)
5834         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
5835         export.
5836         (libgomp-test-support.exp): New rule.
5837         (all-local): Depend on it.
5838         * Makefile.in: Regenerate.
5839         * testsuite/Makefile.in: Regenerate.
5840         * config.h.in: Likewise.
5841         * configure: Likewise.
5842         * configure.tgt: Harden shell syntax.
5843         * env.c: Include "oacc-int.h".
5844         (parse_acc_device_type): New function.
5845         (gomp_debug_var, goacc_device_type, goacc_device_num): New
5846         variables.
5847         (initialize_env): Initialize those.  Call
5848         goacc_runtime_initialize.
5849         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
5850         (gomp_fatal): Call gomp_vfatal.
5851         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
5852         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
5853         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
5854         (splay_tree_node, splay_tree, splay_tree_key)
5855         (struct target_mem_desc, struct splay_tree_key_s)
5856         (struct gomp_memory_mapping, struct acc_dispatch_t)
5857         (struct gomp_device_descr, gomp_acc_insert_pointer)
5858         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
5859         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
5860         (gomp_free_memmap, gomp_fini_device): New declarations.
5861         (gomp_vdebug, gomp_debug): New macros.
5862         Include "splay-tree.h".
5863         * libgomp.map (OACC_2.0): New symbol version.  Use for
5864         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
5865         acc_set_device_type_h_, acc_get_device_type,
5866         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
5867         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
5868         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
5869         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
5870         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
5871         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
5872         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
5873         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
5874         acc_copyin_array_h_, acc_present_or_copyin,
5875         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
5876         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
5877         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
5878         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
5879         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
5880         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
5881         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
5882         acc_update_device, acc_update_device_32_h_,
5883         acc_update_device_64_h_, acc_update_device_array_h_,
5884         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
5885         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
5886         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
5887         acc_is_present_64_h_, acc_is_present_array_h_,
5888         acc_memcpy_to_device, acc_memcpy_from_device,
5889         acc_get_current_cuda_device, acc_get_current_cuda_context,
5890         acc_get_cuda_stream, acc_set_cuda_stream.
5891         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
5892         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
5893         GOACC_update, GOACC_wait, GOACC_get_thread_num,
5894         GOACC_get_num_threads.
5895         (GOMP_PLUGIN_1.0): New symbol version.  Use for
5896         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
5897         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
5898         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
5899         GOMP_PLUGIN_acc_thread.
5900         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
5901         environment variable.
5902         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
5903         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
5904         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
5905         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
5906         (splay_tree_remove): New declarations.
5907         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
5908         (splay_tree_remove, splay_tree_lookup): Move into...
5909         * splay-tree.c: ... this new file.
5910         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
5911         (splay_tree_node, splay_tree, splay_tree_key)
5912         (struct target_mem_desc, struct splay_tree_key_s)
5913         (struct gomp_device_descr): Don't declare.
5914         (num_devices_openmp): New variable.
5915         (gomp_get_num_devices ): Use it.
5916         (gomp_init_targets_once): New function.
5917         (gomp_get_num_devices ): Use it.
5918         (get_kind, gomp_copy_from_async, gomp_free_memmap)
5919         (gomp_fini_device, gomp_register_image_for_device): New functions.
5920         (gomp_map_vars): Add devaddrs parameter.
5921         (gomp_update): Add mm parameter.
5922         (gomp_init_device): Move most of it into...
5923         (gomp_init_tables): ... this new function.
5924         (gomp_register_images_for_device): Remove function.
5925         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
5926         Make them hidden instead of static.
5927         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
5928         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
5929         (GOMP_target_end_data, GOMP_target_update)
5930         (gomp_load_plugin_for_device, gomp_target_init): Update for
5931         OpenACC changes.
5932         * oacc-async.c: New file.
5933         * oacc-cuda.c: Likewise.
5934         * oacc-host.c: Likewise.
5935         * oacc-init.c: Likewise.
5936         * oacc-int.h: Likewise.
5937         * oacc-mem.c: Likewise.
5938         * oacc-parallel.c: Likewise.
5939         * oacc-plugin.c: Likewise.
5940         * oacc-plugin.h: Likewise.
5941         * oacc-ptx.h: Likewise.
5942         * openacc.f90: Likewise.
5943         * openacc.h: Likewise.
5944         * openacc_lib.h: Likewise.
5945         * plugin/plugin-host.c: Likewise.
5946         * plugin/plugin-nvptx.c: Likewise.
5947         * libgomp-plugin.c: Likewise.
5948         * libgomp-plugin.h: Likewise.
5949         * libgomp_target.h: Remove file after merging content into the
5950         former file.  Update all users.
5951         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
5952         (offload_targets_s, offload_targets_s_openacc): New variables.
5953         (check_effective_target_openacc_nvidia_accel_present)
5954         (check_effective_target_openacc_nvidia_accel_selected): New
5955         procedures.
5956         (libgomp_init): Update for OpenACC changes.
5957         * testsuite/libgomp-test-support.exp.in: New file.
5958         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
5959         * testsuite/libgomp.oacc-c/c.exp: Likewise.
5960         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
5961         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
5962         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
5963         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
5964         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
5965         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
5966         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
5967         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
5968         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
5969         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
5970         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
5971         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
5972         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
5973         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
5974         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
5975         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
5976         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
5977         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
5978         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
5979         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
5980         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
5981         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
5982         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
5983         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
5984         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
5985         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
5986         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
5987         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
5988         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
5989         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
5990         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
5991         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
5992         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
5993         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
5994         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
5995         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
5996         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
5997         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
5998         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
5999         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
6000         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
6001         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
6002         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
6003         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
6004         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
6005         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
6006         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
6007         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
6008         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
6009         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
6010         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
6011         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
6012         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
6013         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
6014         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
6015         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
6016         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
6017         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
6018         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
6019         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
6020         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
6021         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
6022         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
6023         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
6024         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
6025         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
6026         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
6027         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
6028         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
6029         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
6030         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
6031         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
6032         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
6033         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
6034         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
6035         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
6036         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
6037         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
6038         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
6039         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
6040         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
6041         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
6042         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
6043         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
6044         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
6045         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
6046         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
6047         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
6048         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
6049         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
6050         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
6051         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
6052         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
6053         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
6054         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
6055         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
6056         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
6057         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
6058         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
6059         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
6060         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
6061         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
6062         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
6063         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
6064         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
6065         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
6066         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
6067         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
6068         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
6069         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
6070         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
6071         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
6072         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
6073         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
6074         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
6075         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
6076         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
6077         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
6078         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
6079         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
6080         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
6081         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
6082         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
6083         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
6084         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
6085         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
6086         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
6087         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
6088         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
6089         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
6090         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
6091         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
6092         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
6093         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
6094         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
6095         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
6096         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
6097         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
6098         Likewise.
6099         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
6100         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
6101         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
6102         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
6103         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
6104         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
6105         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
6106         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
6107         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
6108         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
6109         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
6110         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
6111         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
6112         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
6113         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
6114         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
6115         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
6116         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
6117         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
6118         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
6119         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
6120         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
6121         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
6122         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
6123         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
6124         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
6125         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
6126         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
6127         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
6128         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
6129         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
6130         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
6131         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
6132         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
6133         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
6134         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
6135         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
6136         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
6137         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
6138         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
6139         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
6140         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
6141         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
6142         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
6143         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
6144         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
6145         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
6146         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
6147         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
6148         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
6149         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
6150         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
6151         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
6152         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
6153         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
6154         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
6155         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
6156         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
6157         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
6158         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
6160 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
6161             Julian Brown  <julian@codesourcery.com>
6162             David Malcolm  <dmalcolm@redhat.com>
6164         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
6165         to "GNU Offloading and Multi Processing Runtime Library".  Change
6166         all users.
6167         * configure: Regenerate.
6168         * libgomp.texi: Update.
6170 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
6172         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
6173         "$tgt_dir/lib32".
6174         * configure: Regenerate.
6176         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
6177         "intelmic" in $offload_targets.
6179 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
6181         Update copyright years.
6183         * libgomp.texi: Bump @copying's copyright year.
6185 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6187         * testsuite/lib/libgomp.exp: Load target-utils.exp.
6188         Move load of target-supportes.exp earlier.
6190 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
6192         * testsuite/libgomp.c/target-9.c: New test.
6194 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
6196         * config.h.in: Regenerate.
6197         * configure: Regenerate.
6198         * configure.ac: Add GCC_CHECK_EMUTLS.
6199         * libgomp.h: Add check for USE_EMUTLS: this case
6200         is equal to HAVE_TLS.
6201         * team.c: Likewise.
6203 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
6205         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
6207 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6208             Ilya Verbin  <ilya.verbin@intel.com>
6210         * testsuite/libgomp.c/target-critical-1.c: New test.
6212 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
6214         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
6215         to dg-options unless expensive testing is on.
6216         (TESTITERS): Define to N if not defined.
6217         (main): Use TESTITERS instead of N.
6218         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
6219         dg-additional-options depending on whether expensive testing is on.
6220         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
6221         Decrease N to 100000 and CHUNKSZ to 10000.
6223 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
6225         PR fortran/63938
6226         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
6227         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
6229 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
6231         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
6233 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
6235         PR bootstrap/63784
6236         * configure: Regenerated.
6238 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
6240         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
6241         vect_simd_clones effective target.
6242         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
6244 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6246         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
6247         of 32 as block_size.
6248         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
6249         instead of 32 as block_size.
6251 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6252             Ilya Verbin  <ilya.verbin@intel.com>
6254         * Makefile.in: Regenerate.
6255         * configure: Regenerate.
6256         * configure.ac: Set up offload_additional_options,
6257         offload_additional_lib_paths and offload_targets.
6258         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
6259         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
6260         * testsuite/Makefile.in: Regenerate.
6261         * testsuite/lib/libgomp.exp (libgomp_init): Append
6262         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
6263         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
6264         build directory to LD_LIBRARY_PATH for intelmic offload targets.
6266 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6267             Ilya Verbin  <ilya.verbin@intel.com>
6268             Kirill Yukhin  <kirill.yukhin@intel.com>
6269             Ilya Tocar  <ilya.tocar@intel.com>
6271         * testsuite/lib/libgomp.exp
6272         (check_effective_target_offload_device): New.
6273         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
6274         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
6275         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
6276         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
6277         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
6278         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
6279         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
6280         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
6281         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
6282         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
6283         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
6284         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
6285         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
6286         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
6287         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
6288         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
6289         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
6290         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
6291         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
6292         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
6293         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
6294         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
6295         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
6296         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
6297         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
6298         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
6299         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
6300         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
6301         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
6302         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
6303         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
6304         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
6305         * testsuite/libgomp.c/target-7.c: Fix test.
6306         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
6307         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
6308         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
6309         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
6310         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
6311         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
6312         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
6313         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
6314         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
6315         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
6316         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
6317         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
6318         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
6319         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
6320         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
6321         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
6322         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
6323         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
6324         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
6325         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
6326         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
6327         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
6328         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
6329         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
6330         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
6331         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
6332         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
6333         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
6334         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
6335         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
6336         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
6338 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
6339             Ilya Verbin  <ilya.verbin@intel.com>
6340             Thomas Schwinge  <thomas@codesourcery.com>
6341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6343         * libgomp.map (GOMP_4.0.1): New symbol version.
6344         Add GOMP_offload_register.
6345         * libgomp_target.h: New file.
6346         * splay-tree.h: New file.
6347         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
6348         (gomp_target_init): New forward declaration.
6349         (gomp_is_initialized): New static variable.
6350         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
6351         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
6352         New structures.
6353         (offload_images, num_offload_images, devices, num_devices): New static
6354         variables.
6355         (splay_compare): New static function.
6356         (struct gomp_device_descr): New structure.
6357         (gomp_get_num_devices): Call gomp_target_init.
6358         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
6359         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
6360         (GOMP_offload_register): New function.
6361         (GOMP_target): Arrange for host callback to be performed in a separate
6362         initial thread and contention group, inheriting ICVs from
6363         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
6364         Add device initialization and lookup for target function in splay tree.
6365         (GOMP_target_data): Add device initialization and call gomp_map_vars.
6366         (GOMP_target_end_data): Call gomp_unmap_vars.
6367         (GOMP_target_update): Add device initialization and call gomp_update.
6368         (gomp_load_plugin_for_device, gomp_register_images_for_device)
6369         (gomp_target_init): New static functions.
6371 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
6372             Thomas Schwinge  <thomas@codesourcery.com>
6373             Ilya Verbin  <ilya.verbin@intel.com>
6374             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6376         * config.h.in: Regenerate.
6377         * configure: Regenerate.
6378         * configure.ac: Check for libdl, required for plugin support.
6379         (PLUGIN_SUPPORT): Define if plugins are supported.
6380         (enable_offload_targets): Support Intel MIC targets.
6381         (OFFLOAD_TARGETS): List of target names suitable for offloading.
6383 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6385         PR target/63610
6386         * configure: Regenerate.
6388 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6390         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
6392 2014-10-06  Marek Polacek  <polacek@redhat.com>
6394         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
6395         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
6396         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
6397         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
6399 2014-10-06  Marek Polacek  <polacek@redhat.com>
6401         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
6402         * testsuite/libgomp.c/nqueens-1.c: Likewise.
6403         * testsuite/libgomp.c/pr26943-3.c: Likewise.
6404         * testsuite/libgomp.c/pr26943-4.c: Likewise.
6405         * testsuite/libgomp.c/pr36802-2.c: Likewise.
6406         * testsuite/libgomp.c/pr36802-3.c: Likewise.
6407         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
6408         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
6409         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
6410         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
6411         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
6412         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
6413         * testsuite/libgomp.c/omp-single-1.c: Likewise.
6414         * testsuite/libgomp.c/omp-single-2.c: Likewise.
6415         * testsuite/libgomp.c/omp_matvec.c: Likewise.
6416         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
6417         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
6418         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
6419         declarations.
6421 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
6423         PR libgomp/61200
6424         * testsuite/libgomp.c/pr61200.c: New test.
6426 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
6428         PR c++/63248
6429         * testsuite/libgomp.c++/pr63248.C: New test.
6431 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
6433         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
6434         is not zero, but taskgroup->children is NULL and there are
6435         any task->children, schedule those instead of waiting.
6436         * testsuite/libgomp.c/depend-6.c: New test.
6437         * testsuite/libgomp.c/depend-7.c: New test.
6438         * testsuite/libgomp.c/depend-8.c: New test.
6439         * testsuite/libgomp.c/depend-9.c: New test.
6440         * testsuite/libgomp.c/depend-10.c: New test.
6442 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
6444         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
6445         (struct gomp_taskwait): New type.
6446         (struct gomp_task): Add taskwait and parent_depends_on, remove
6447         in_taskwait and taskwait_sem fields.
6448         (gomp_finish_task): Don't destroy taskwait_sem.
6449         * task.c (gomp_init_task): Don't init in_taskwait, instead init
6450         taskwait and parent_depends_on.
6451         (GOMP_task): For if (0) tasks with depend clause that depend on
6452         earlier tasks don't defer them, instead call
6453         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
6454         Initialize redundant_out field, for redundant out entries just
6455         move them at the end of linked list instead of removing them
6456         completely, and set redundant_out flag instead of redundant.
6457         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
6458         that task.
6459         (gomp_task_run_post_handle_dependers): If parent is in
6460         gomp_task_maybe_wait_for_dependencies and newly runnable task
6461         is not parent_depends_on, queue it in parent->children linked
6462         list after all runnable tasks with parent_depends_on set.
6463         Adjust for addition of taskwait indirection.
6464         (gomp_task_run_post_remove_parent): If parent is in
6465         gomp_task_maybe_wait_for_dependencies and task to be removed
6466         is parent_depends_on, decrement n_depend and if needed awake
6467         parent.  Adjust for addition of taskwait indirection.
6468         (GOMP_taskwait): Adjust for addition of taskwait indirection.
6469         (gomp_task_maybe_wait_for_dependencies): New function.
6470         * testsuite/libgomp.c/depend-5.c: New test.
6472 2014-07-13  Tobias Burnus  <burnus@net-b.de>
6474         * testsuite/libgomp.fortran/pr34020.f90: Make compile
6475         with TS 18508/Fortran 2015.
6477 2014-07-06  Marek Polacek  <polacek@redhat.com>
6479         PR c/6940
6480         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
6482 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
6484         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
6485         matches regex $lang_source_re, add $lang_include_flags to options.
6486         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
6487         * testsuite/libgomp.c++/c++.exp: Likewise.
6488         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
6489         and lang_include_flags instead of adding -fintrinsic-modules-path= to
6490         ALWAYS_CFLAGS.
6491         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
6493 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
6495         * testsuite/libgomp.fortran/fortran.exp: Explain
6496         gfortran-dg-runtest usage.
6498 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
6500         * testsuite/libgomp.fortran/simd5.f90: New test.
6501         * testsuite/libgomp.fortran/simd6.f90: New test.
6502         * testsuite/libgomp.fortran/simd7.f90: New test.
6504 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
6506         * testsuite/libgomp.c/for-2.c: Define SC to static for
6507         #pragma omp for simd testing.
6508         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
6509         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
6510         SC macro.
6511         * testsuite/libgomp.c/simd-14.c: New test.
6512         * testsuite/libgomp.c/simd-15.c: New test.
6513         * testsuite/libgomp.c/simd-16.c: New test.
6514         * testsuite/libgomp.c/simd-17.c: New test.
6515         * testsuite/libgomp.c++/for-10.C: Define SC to static for
6516         #pragma omp for simd testing.
6517         * testsuite/libgomp.c++/simd10.C: New test.
6518         * testsuite/libgomp.c++/simd11.C: New test.
6519         * testsuite/libgomp.c++/simd12.C: New test.
6520         * testsuite/libgomp.c++/simd13.C: New test.
6522         * testsuite/libgomp.fortran/aligned1.f03: New test.
6523         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
6524         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
6525         tasks with !$omp parallel !$omp single.
6526         * testsuite/libgomp.fortran/target8.f90: New test.
6527         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
6528         not to use trim in the combiner, instead call elemental function.
6529         (fn): New elemental function.
6530         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
6531         Make elemental.
6532         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
6533         omp_in): Likewise.
6534         * testsuite/libgomp.fortran/udr12.f90: New test.
6535         * testsuite/libgomp.fortran/udr13.f90: New test.
6536         * testsuite/libgomp.fortran/udr14.f90: New test.
6537         * testsuite/libgomp.fortran/udr15.f90: New test.
6539 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
6541         * omp_lib.f90.in (openmp_version): Set to 201307.
6542         * omp_lib.h.in (openmp_version): Likewise.
6543         * testsuite/libgomp.c/target-8.c: New test.
6544         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
6545         and inbranch clauses.
6546         * testsuite/libgomp.fortran/depend-3.f90: New test.
6547         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
6548         openmp_version.
6549         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
6550         * testsuite/libgomp.fortran/target1.f90: New test.
6551         * testsuite/libgomp.fortran/target2.f90: New test.
6552         * testsuite/libgomp.fortran/target3.f90: New test.
6553         * testsuite/libgomp.fortran/target4.f90: New test.
6554         * testsuite/libgomp.fortran/target5.f90: New test.
6555         * testsuite/libgomp.fortran/target6.f90: New test.
6556         * testsuite/libgomp.fortran/target7.f90: New test.
6558 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
6560         PR fortran/60928
6561         * testsuite/libgomp.fortran/allocatable9.f90: New test.
6562         * testsuite/libgomp.fortran/allocatable10.f90: New test.
6563         * testsuite/libgomp.fortran/allocatable11.f90: New test.
6564         * testsuite/libgomp.fortran/allocatable12.f90: New test.
6565         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
6566         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
6567         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
6568         * testsuite/libgomp.fortran/associate1.f90: New test.
6569         * testsuite/libgomp.fortran/associate2.f90: New test.
6570         * testsuite/libgomp.fortran/procptr1.f90: New test.
6572 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
6574         * testsuite/libgomp.fortran/simd1.f90: New test.
6575         * testsuite/libgomp.fortran/udr1.f90: New test.
6576         * testsuite/libgomp.fortran/udr2.f90: New test.
6577         * testsuite/libgomp.fortran/udr3.f90: New test.
6578         * testsuite/libgomp.fortran/udr4.f90: New test.
6579         * testsuite/libgomp.fortran/udr5.f90: New test.
6580         * testsuite/libgomp.fortran/udr6.f90: New test.
6581         * testsuite/libgomp.fortran/udr7.f90: New test.
6582         * testsuite/libgomp.fortran/udr8.f90: New test.
6583         * testsuite/libgomp.fortran/udr9.f90: New test.
6584         * testsuite/libgomp.fortran/udr10.f90: New test.
6585         * testsuite/libgomp.fortran/udr11.f90: New test.
6587 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
6589         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
6590         vect_simd_clones effective target.
6591         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
6593 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
6595         PR middle-end/61252
6596         * testsuite/libgomp.c++/simd-9.C: New test.
6598 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
6600         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
6601         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
6602         texts according to their @menu entry positions.
6604 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
6606         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
6607         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
6608         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
6609         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
6610         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
6611         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
6612         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
6613         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
6614         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
6615         * testsuite/libgomp.fortran/depend-1.f90: New test.
6616         * testsuite/libgomp.fortran/depend-2.f90: New test.
6617         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
6618         * testsuite/libgomp.fortran/simd1.f90: New test.
6619         * testsuite/libgomp.fortran/simd2.f90: New test.
6620         * testsuite/libgomp.fortran/simd3.f90: New test.
6621         * testsuite/libgomp.fortran/simd4.f90: New test.
6622         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
6624 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
6626         * testsuite/libgomp.c/simd-10.c: New test.
6627         * testsuite/libgomp.c/simd-11.c: New test.
6628         * testsuite/libgomp.c/simd-12.c: New test.
6629         * testsuite/libgomp.c/simd-13.c: New test.
6631 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
6633         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
6634         atomic type clauses in any order and optional comma in between.
6635         * testsuite/libgomp.c++/atomic-15.C: Likewise.
6636         * testsuite/libgomp.c/atomic-17.c: Likewise.
6638         * testsuite/libgomp.c/simd-7.c: New test.
6639         * testsuite/libgomp.c/simd-8.c: New test.
6640         * testsuite/libgomp.c/simd-9.c: New test.
6641         * testsuite/libgomp.c/loop-16.c: New test.
6643 2014-04-02  Richard Henderson  <rth@redhat.com>
6645         * config/linux/futex.h (futex_wait): Get error value from errno.
6646         (futex_wake): Likewise.
6648 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
6650         PR c++/60331
6651         * testsuite/libgomp.c++/udr-11.C: New test.
6652         * testsuite/libgomp.c++/udr-12.C: New test.
6653         * testsuite/libgomp.c++/udr-13.C: New test.
6654         * testsuite/libgomp.c++/udr-14.C: New test.
6655         * testsuite/libgomp.c++/udr-15.C: New test.
6656         * testsuite/libgomp.c++/udr-16.C: New test.
6657         * testsuite/libgomp.c++/udr-17.C: New test.
6658         * testsuite/libgomp.c++/udr-18.C: New test.
6659         * testsuite/libgomp.c++/udr-19.C: New test.
6661 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6663         Update copyright years
6665 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6667         * hashtab.h: Use the standard form for the copyright notice.
6669 2014-01-02  Tobias Burnus  <burnus@net-b.de>
6671         * libgomp.texi: Bump @copying's copyright year.
6673 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
6675         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
6676         alloca () with __builtin_alloca ().
6677         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
6678         * testsuite/libgomp.c/lock-3.c: Likewise.
6679         * testsuite/libgomp.c/pr48591.c: Likewise.
6681 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
6683         PR testsuite/59534
6684         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
6685         comparisons.
6687 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
6689         PR libgomp/58756
6690         * testsuite/libgomp.c/pr58756.c: New test.
6692 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
6694         PR libgomp/59467
6695         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
6696         !$omp parallel.
6698 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
6700         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
6701         ALWAYS_CFLAGS.
6702         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
6703         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
6704         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
6705         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
6706         Likewise.
6708         * libgomp_g.h: Include <stddef.h> for size_t.
6710         * libgomp.spec.in: Update comment about libgomp's dependencies.
6711         * configure.ac: Likewise.
6712         * configure: Regenerate.
6714 2013-10-16  Tobias Burnus  <burnus@net-b.de>
6716         * libgomp.texi: (Runtime Library Routines): Update references for
6717         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
6718         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
6719         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
6720         (Environment Variables): Update references for OpenMP 4.0. Add
6721         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
6722         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
6723         order.
6725 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
6727         * env.c (parse_bind_var): Initialize value to avoid
6728         (false positive) warning.
6730 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
6732         PR libgomp/58691
6733         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
6734         to check variable.
6735         (gomp_init_num_threads): Move i variable declaration into
6736         #ifdef CPU_ALLOC_SIZE block.
6737         * config/linux/affinity.c (gomp_affinity_init_level): Test
6738         gomp_places_list_len == 0 rather than gomp_places_list == 0
6739         when checking for topology reading error.
6740         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
6741         * env.c (parse_affinity): Add ignore argument, if true, don't populate
6742         gomp_places_list, only parse env var and always return false.
6743         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
6744         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
6745         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
6746         and either of these variables were parsed correctly into a places
6747         list.
6749 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
6750             Jakub Jelinek  <jakub@redhat.com>
6752         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
6753         of 5 loopfn matches.
6754         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
6755         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
6756         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
6757         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
6758         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
6759         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
6760         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
6761         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
6763 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
6765         * Makefile.am (omp_lib.mod): Streamline rule.
6766         * Makefile.in: Regenerate.
6768         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
6769         exceptions.
6771         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
6772         * testsuite/libgomp.fortran/lib1.f90: Likewise.
6773         * testsuite/libgomp.fortran/lib2.f: Likewise.
6774         * testsuite/libgomp.fortran/lib3.f: Likewise.
6776         * configure.ac: Typo fix.
6777         * configure: Regenerate.
6779         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
6780         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
6782         * omp.h.in: Don't touch the user's namespace.
6784 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
6785             Tobias Burnus  <burnus@net-b.de>
6786             Richard Henderson  <rth@redhat.com>
6788         * target.c: New file.
6789         * Makefile.am (libgomp_la_SOURCES): Add target.c.
6790         * Makefile.in: Regenerated.
6791         * libgomp_g.h (GOMP_task): Add depend argument.
6792         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
6793         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
6794         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
6795         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
6796         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
6797         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
6798         GOMP_taskgroup_start, GOMP_taskgroup_end,
6799         GOMP_parallel_sections): New prototypes.
6800         * fortran.c (omp_is_initial_device): Add ialias_redirect.
6801         (omp_is_initial_device_): New function.
6802         (ULP, STR1, STR2, ialias_redirect): Removed.
6803         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
6804         omp_set_default_device_8_, omp_get_default_device_,
6805         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
6806         functions.
6807         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
6808         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
6809         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
6810         @@GOMP_4.0.
6811         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
6812         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
6813         omp_set_default_device, omp_set_default_device_,
6814         omp_set_default_device_8_, omp_get_default_device,
6815         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
6816         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
6817         omp_get_team_num_): Export @@OMP_4.0.
6818         * team.c (struct gomp_thread_start_data): Add place field.
6819         (gomp_thread_start): Clear thr->thread_pool and
6820         thr->task before returning.  Use gomp_team_barrier_wait_final
6821         instead of gomp_team_barrier_wait.  Initialize thr->place.
6822         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
6823         team_cancelled and task_queued_count fields.
6824         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
6825         before calling pthread_exit.
6826         (gomp_free_thread): No longer static.  Use
6827         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
6828         (gomp_team_start): Add flags argument.  Set
6829         thr->thread_pool->threads_busy to nthreads immediately after creating
6830         new pool.  Use gomp_managed_threads_lock instead of
6831         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
6832         (gomp_team_end): Use gomp_managed_threads_lock instead of
6833         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
6834         of gomp_team_barrier_wait.  If team->team_cancelled, call
6835         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
6836         rather than thr->ts.work_share.
6837         (initialize_team): Don't call gomp_sem_init here.
6838         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
6839         caller.
6840         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
6841         * env.c (gomp_global_icv): Add default_device_var, target_data and
6842         bind_var initializers.
6843         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
6844         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
6845         gomp_places_list_len): New variables.
6846         (parse_bind_var, parse_one_place, parse_places_var): New functions.
6847         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
6848         sized places.
6849         (gomp_cancel_var): New global variable.
6850         (parse_int): New function.
6851         (handle_omp_display_env): New function.
6852         (initialize_env): Use it.  Initialize default_device_var.
6853         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
6854         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
6855         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
6856         been successfully parsed (and call gomp_init_affinity in that case).
6857         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6858         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6859         omp_get_team_num, omp_is_initial_device): New functions.
6860         * libgomp.h: Include stdlib.h.
6861         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
6862         Define.
6863         (struct target_mem_desc): Forward declare.
6864         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
6865         and thread_limit_var fields.
6866         (gomp_get_num_devices): New prototype.
6867         (gomp_cancel_var): New extern decl.
6868         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
6869         team_cancelled and task_queued_count fields.  Add comments about
6870         task_{,queued_,running_}count.
6871         (gomp_cancel_kind): New enum.
6872         (gomp_work_share_end_cancel): New prototype.
6873         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
6874         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
6875         and depend fields.
6876         (struct gomp_taskgroup): New type.
6877         (struct gomp_task_depend_entry,
6878         struct gomp_dependers_vec): New types.
6879         (gomp_finish_task): Free depend_hash if non-NULL.
6880         (struct gomp_team_state): Add place_partition_off
6881         and place_partition_len fields.
6882         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
6883         gomp_places_list_len): New extern decls.
6884         (struct gomp_thread): Add place field.
6885         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
6886         (gomp_init_thread_affinity): Add place argument.
6887         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
6888         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
6889         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
6890         gomp_affinity_init_level, gomp_affinity_print_place): New
6891         prototypes.
6892         (gomp_team_start): Add flags argument.
6893         (gomp_thread_limit_var, gomp_remaining_threads_count,
6894         gomp_remaining_threads_lock): Remove.
6895         (gomp_managed_threads_lock): New variable.
6896         (struct gomp_thread_pool): Add threads_busy field.
6897         (gomp_free_thread): New prototype.
6898         * task.c: Include hashtab.h.
6899         (hash_entry_type): New typedef.
6900         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
6901         (gomp_init_task): Clear dependers, depend_hash, depend_count,
6902         copy_ctors_done and taskgroup fields.
6903         (GOMP_task): Add depend argument, handle depend clauses.  If
6904         gomp_team_barrier_cancelled or if it's taskgroup has been
6905         cancelled, don't queue or start new tasks.  Set copy_ctors_done
6906         field if needed.  Initialize taskgroup field.  If copy_ctors_done
6907         and already cancelled, don't discard the task.  If taskgroup is
6908         non-NULL, enqueue the task into taskgroup queue.  Increment
6909         num_children field in taskgroup.  Increment task_queued_count.
6910         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
6911         gomp_task_run_post_remove_taskgroup): New inline functions.
6912         (gomp_task_run_post_handle_depend_hash,
6913         gomp_task_run_post_handle_dependers,
6914         gomp_task_run_post_handle_depend): New functions.
6915         (GOMP_taskwait): Use them.  If more than one new tasks
6916         have been queued, wake other threads if needed.
6917         (gomp_barrier_handle_tasks): Likewise.  If
6918         gomp_team_barrier_cancelled, don't start any new tasks, just free
6919         all tasks.
6920         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
6921         * omp_lib.f90.in
6922         (omp_proc_bind_kind, omp_proc_bind_false,
6923         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
6924         omp_proc_bind_spread): New params.
6925         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6926         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6927         omp_get_team_num, omp_is_initial_device): New interfaces.
6928         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
6929         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
6930         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
6931         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
6932         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
6933         useless use omp_lib_kinds.
6934         * omp.h.in (omp_proc_bind_t): New typedef.
6935         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6936         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6937         omp_get_team_num, omp_is_initial_device): New prototypes.
6938         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
6939         through to gomp_team_start.
6940         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
6941         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
6942         Adjust gomp_parallel_loop_start callers.
6943         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
6944         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
6945         GOMP_loop_end_cancel): New functions.
6946         (GOMP_parallel_end): Add ialias_redirect.
6947         * hashtab.h: New file.
6948         * libgomp.texi (Environment Variables): Minor cleanup,
6949         update section refs to OpenMP 4.0rc2.
6950         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
6951         environment variables.
6952         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
6953         team->work_shares_to_free to thr->ts.work_share before calling
6954         free_work_share.
6955         (gomp_work_share_end_cancel): New function.
6956         * config/linux/proc.c: Include errno.h.
6957         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
6958         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
6959         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
6960         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
6961         gomp_cpuset_size is sizeof (cpu_set_t).
6962         (gomp_init_num_threads): Initialize gomp_cpuset_size,
6963         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
6964         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
6965         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
6966         contain any logical CPUs.
6967         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
6968         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
6969         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
6970         pthread_getaffinity_np.  Check gomp_places_list instead of
6971         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
6972         * config/linux/bar.c (gomp_barrier_wait_end,
6973         gomp_barrier_wait_last): Use BAR_* defines.
6974         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
6975         from state where needed.  Set work_share_cancelled to 0 on last
6976         thread.
6977         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
6978         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
6979         functions.
6980         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
6981         Add cpusetsize argument.
6982         (gomp_cpuset_size, gomp_cpusetp): Declare.
6983         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
6984         (affinity_counter): Remove.
6985         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
6986         if CPU_ALLOC_SIZE isn't defined.
6987         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
6988         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
6989         bind current thread to the first place.
6990         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
6991         pthread_setaffinity_np to gomp_places_list[place].
6992         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
6993         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
6994         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
6995         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
6996         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
6997         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
6998         (gomp_barrier_t): Add awaited_final field.
6999         (gomp_barrier_init): Initialize awaited_final field.
7000         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
7001         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
7002         prototypes.
7003         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
7004         defines.
7005         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
7006         gomp_team_barrier_cancelled): New inline functions.
7007         (gomp_barrier_last_thread,
7008         gomp_team_barrier_set_task_pending,
7009         gomp_team_barrier_clear_task_pending,
7010         gomp_team_barrier_set_waiting_for_tasks,
7011         gomp_team_barrier_waiting_for_tasks,
7012         gomp_team_barrier_done): Use BAR_* defines.
7013         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
7014         (gomp_barrier_wait_end): Use BAR_* defines.
7015         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
7016         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
7017         Use BAR_* defines.
7018         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
7019         gomp_team_barrier_cancel): New functions.
7020         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
7021         argument.
7022         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
7023         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
7024         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
7025         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
7026         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
7027         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
7028         (gomp_barrier_t): Add cancellable field.
7029         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
7030         gomp_team_barrier_cancel): New prototypes.
7031         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
7032         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
7033         gomp_team_barrier_cancelled): New inline functions.
7034         (gomp_barrier_wait_start, gomp_barrier_last_thread,
7035         gomp_team_barrier_set_task_pending,
7036         gomp_team_barrier_clear_task_pending,
7037         gomp_team_barrier_set_waiting_for_tasks,
7038         gomp_team_barrier_waiting_for_tasks,
7039         gomp_team_barrier_done): Use BAR_* defines.
7040         * barrier.c (GOMP_barrier_cancel): New function.
7041         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
7042         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
7043         omp_proc_bind_spread): New params.
7044         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
7045         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
7046         omp_get_team_num, omp_is_initial_device): New externals.
7047         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
7048         New functions.
7049         (gomp_resolve_num_threads): Adjust for thread_limit now being in
7050         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
7051         infinity.  If not nested, just return minimum of max_num_threads
7052         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
7053         to the returned value.  Otherwise, don't update atomically
7054         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
7055         (GOMP_parallel_end): Adjust for thread_limit now being in
7056         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
7057         infinity.  Adjust threads_busy in the pool rather than
7058         gomp_remaining_threads_count.  Remember team->nthreads and call
7059         gomp_team_end before adjusting threads_busy, if not nested
7060         afterwards, just set it to 1 non-atomically.  Add ialias.
7061         (GOMP_parallel_start): Adjust gomp_team_start caller.
7062         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
7063         * testsuite/libgomp.c/affinity-1.c: New test.
7064         * testsuite/libgomp.c/atomic-15.c: New test.
7065         * testsuite/libgomp.c/atomic-16.c: New test.
7066         * testsuite/libgomp.c/atomic-17.c: New test.
7067         * testsuite/libgomp.c/cancel-for-1.c: New test.
7068         * testsuite/libgomp.c/cancel-for-2.c: New test.
7069         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
7070         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
7071         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
7072         * testsuite/libgomp.c/cancel-sections-1.c: New test.
7073         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
7074         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
7075         * testsuite/libgomp.c/depend-1.c: New test.
7076         * testsuite/libgomp.c/depend-2.c: New test.
7077         * testsuite/libgomp.c/depend-3.c: New test.
7078         * testsuite/libgomp.c/depend-4.c: New test.
7079         * testsuite/libgomp.c/for-1.c: New test.
7080         * testsuite/libgomp.c/for-1.h: New file.
7081         * testsuite/libgomp.c/for-2.c: New test.
7082         * testsuite/libgomp.c/for-2.h: New file.
7083         * testsuite/libgomp.c/for-3.c: New test.
7084         * testsuite/libgomp.c/pr58392.c: New test.
7085         * testsuite/libgomp.c/simd-1.c: New test.
7086         * testsuite/libgomp.c/simd-2.c: New test.
7087         * testsuite/libgomp.c/simd-3.c: New test.
7088         * testsuite/libgomp.c/simd-4.c: New test.
7089         * testsuite/libgomp.c/simd-5.c: New test.
7090         * testsuite/libgomp.c/simd-6.c: New test.
7091         * testsuite/libgomp.c/target-1.c: New test.
7092         * testsuite/libgomp.c/target-2.c: New test.
7093         * testsuite/libgomp.c/target-3.c: New test.
7094         * testsuite/libgomp.c/target-4.c: New test.
7095         * testsuite/libgomp.c/target-5.c: New test.
7096         * testsuite/libgomp.c/target-6.c: New test.
7097         * testsuite/libgomp.c/target-7.c: New test.
7098         * testsuite/libgomp.c/taskgroup-1.c: New test.
7099         * testsuite/libgomp.c/thread-limit-1.c: New test.
7100         * testsuite/libgomp.c/thread-limit-2.c: New test.
7101         * testsuite/libgomp.c/thread-limit-3.c: New test.
7102         * testsuite/libgomp.c/udr-1.c: New test.
7103         * testsuite/libgomp.c/udr-2.c: New test.
7104         * testsuite/libgomp.c/udr-3.c: New test.
7105         * testsuite/libgomp.c++/affinity-1.C: New test.
7106         * testsuite/libgomp.c++/atomic-10.C: New test.
7107         * testsuite/libgomp.c++/atomic-11.C: New test.
7108         * testsuite/libgomp.c++/atomic-12.C: New test.
7109         * testsuite/libgomp.c++/atomic-13.C: New test.
7110         * testsuite/libgomp.c++/atomic-14.C: New test.
7111         * testsuite/libgomp.c++/atomic-15.C: New test.
7112         * testsuite/libgomp.c++/cancel-for-1.C: New test.
7113         * testsuite/libgomp.c++/cancel-for-2.C: New test.
7114         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
7115         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
7116         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
7117         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
7118         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
7119         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
7120         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
7121         * testsuite/libgomp.c++/cancel-test.h: New file.
7122         * testsuite/libgomp.c++/for-9.C: New test.
7123         * testsuite/libgomp.c++/for-10.C: New test.
7124         * testsuite/libgomp.c++/for-11.C: New test.
7125         * testsuite/libgomp.c++/simd-1.C: New test.
7126         * testsuite/libgomp.c++/simd-2.C: New test.
7127         * testsuite/libgomp.c++/simd-3.C: New test.
7128         * testsuite/libgomp.c++/simd-4.C: New test.
7129         * testsuite/libgomp.c++/simd-5.C: New test.
7130         * testsuite/libgomp.c++/simd-6.C: New test.
7131         * testsuite/libgomp.c++/simd-7.C: New test.
7132         * testsuite/libgomp.c++/simd-8.C: New test.
7133         * testsuite/libgomp.c++/target-1.C: New test.
7134         * testsuite/libgomp.c++/target-2.C: New test.
7135         * testsuite/libgomp.c++/target-2-aux.cc: New file.
7136         * testsuite/libgomp.c++/target-3.C: New test.
7137         * testsuite/libgomp.c++/taskgroup-1.C: New test.
7138         * testsuite/libgomp.c++/udr-1.C: New test.
7139         * testsuite/libgomp.c++/udr-2.C: New test.
7140         * testsuite/libgomp.c++/udr-3.C: New test.
7141         * testsuite/libgomp.c++/udr-4.C: New test.
7142         * testsuite/libgomp.c++/udr-5.C: New test.
7143         * testsuite/libgomp.c++/udr-6.C: New test.
7144         * testsuite/libgomp.c++/udr-7.C: New test.
7145         * testsuite/libgomp.c++/udr-8.C: New test.
7146         * testsuite/libgomp.c++/udr-9.C: New test.
7148 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
7150         PR testsuite/57605
7151         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
7152         ALWAYS_CFLAGS.
7154 2013-09-20  Alan Modra  <amodra@gmail.com>
7156         * configure: Regenerate.
7158 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
7160         * testsuite/libgomp.c/sections-2.c: New test.
7162 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7164         * testsuite/libgomp.fortran/strassen.f90:
7165         Add dg-skip-if aarch64_tiny.
7167 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
7168             Cesar Philippidis  <cesar@codesourcery.com>
7170         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
7171         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
7172         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
7173         * testsuite/libgomp.fortran/fortran.exp: Likewise.
7174         * testsuite/libgomp.graphite/graphite.exp: Likewise.
7175         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
7176         Use dg-runtest rather than gfortran-dg-runtest.
7178 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
7180         * testsuite/libgomp.c/icv-2.c: Extend current handling of
7181         Linux-based x86 systems to cover all GNU systems.
7182         * testsuite/libgomp.c/lock-3.c: Likewise.
7183         * testsuite/libgomp.c/pr48591.c: Likewise.
7185 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
7187         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
7188         GNU/Hurd, as done for Linux-based systems.
7190         * config/posix/ptrlock.h: Fix comment.
7192 2013-05-27  Tobias Burnus  <burnus@net-b.de>
7194         PR fortran/57423
7195         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
7196         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
7197         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
7198         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
7199         omp_destroy_nest_lock): Correct arguments to match the one in
7200         the OpenMP spec.
7201         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
7202         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
7203         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
7204         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
7206 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
7208         * testsuite/libgomp.c/loop-13.c: New test.
7209         * testsuite/libgomp.c/loop-14.c: New test.
7210         * testsuite/libgomp.c/loop-15.c: New test.
7211         * testsuite/libgomp.c++/loop-13.C: New test.
7212         * testsuite/libgomp.c++/loop-14.C: New test.
7213         * testsuite/libgomp.c++/loop-15.C: New test.
7215 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
7217         PR middle-end/56217
7218         * testsuite/libgomp.c++/pr56217.C: New test.
7220 2013-02-01  Alan Modra  <amodra@gmail.com>
7222         * task.c (GOMP_task, GOMP_taskwait): Comment.
7224 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
7225             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
7227         PR libgomp/55561
7228         * config/linux/wait.h (do_spin): Use atomic load for addr.
7229         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
7230         for intptr and ptrlock.
7231         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
7232         for ptrlock.
7234 2013-01-22  Alan Modra  <amodra@gmail.com>
7236         PR libgomp/51376
7237         PR libgomp/56073
7238         * task.c (GOMP_task): Revert 2011-12-09 change.
7239         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
7240         barrier to read task->children..
7241         (gomp_barrier_handle_tasks): ..and matching atomic store with
7242         release barrier here when setting parent->children to NULL.
7244 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
7245             Tobias Burnus  <burnus@net-b.de>
7247         PR driver/55884
7248         * testsuite/libgomp.fortran/fortran.exp: Use
7249         -fintrinsic-modules-path= instead of
7250         -fintrinsic-modules-path.
7252 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
7254         Update copyright years.
7256 2012-12-19  Tobias Burnus  <burnus@net-b.de>
7258         * testsuite/libgomp.fortran/fortran.exp: Set
7259         -fintrinsic-modules-path.
7261 2012-12-19  Tobias Burnus  <burnus@net-b.de>
7263         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
7264         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
7266 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
7268         PR libgomp/55411
7269         * team.c (gomp_free_thread): Decrease gomp_managed_threads
7270         if pool had any threads_used.
7272 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
7274         * testsuite/libgomp.c++/pr24455.C: Use
7275         -Wl,-undefined,dynamic_lookup on darwin.
7277 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
7279         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
7281 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
7283         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
7285 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
7286             Jim MacArthur  <jim.macarthur@arm.com>
7287             Marcus Shawcroft  <marcus.shawcroft@arm.com>
7288             Nigel Stephens  <nigel.stephens@arm.com>
7289             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7290             Richard Earnshaw  <rearnsha@arm.com>
7291             Sofiane Naci  <sofiane.naci@arm.com>
7292             Stephen Thomas  <stephen.thomas@arm.com>
7293             Tejas Belagod  <tejas.belagod@arm.com>
7294             Yufeng Zhang  <yufeng.zhang@arm.com>
7296         * configure.tgt: Add AArch64.
7298 2012-10-04  Jason Merrill  <jason@redhat.com>
7300         * testsuite/libgomp.c++/tls-init1.C: New.
7302 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
7304         * configure: Regenerated.
7306 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
7308         * config/linux/mips/futex.h (sys_futex0): Change to static
7309         function with noinline, nomips16 attributes under MIPS16. Adjust
7310         asm statement to place 'li v0,SYS_futex' immediately before
7311         syscall insn.
7313 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
7315         * libgomp.texi (Library Index): Renamed from "Index" to prevent
7316         conflict with index.html on case-insensitive file systems.
7318 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
7320         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
7321         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
7323 2012-07-02  Richard Guenther  <rguenther@suse.de>
7324             Michael Matz  <matz@suse.de>
7325             Tobias Grosser <tobias@grosser.es>
7326             Sebastian Pop <sebpop@gmail.com>
7328         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
7329         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
7330         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
7331         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
7333 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
7335         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
7337 2012-06-22  Richard Guenther  <rguenther@suse.de>
7339         Merge from graphite branch
7340         2012-01-13  Tobias Grosser  <tobias@grosser.es>
7342         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7343         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
7345 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
7347         PR middle-end/53580
7348         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
7349         use GOMP_barrier () call instead.
7350         * testsuite/libgomp.c/pr26943-3.c: Likewise.
7351         * testsuite/libgomp.c/pr26943-4.c: Likewise.
7352         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
7353         call GOMP_barrier instead.
7354         * testsuite/libgomp.fortran/vla5.f90: Likewise.
7356 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
7358         PR libgomp/52993
7359         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
7360         argument to memset call.
7362 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
7364         * configure: Regenerated.
7366 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7368         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
7370 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7372         PR bootstrap/52812
7373         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
7375 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
7377         PR middle-end/52547
7378         * testsuite/libgomp.c/pr52547.c: New test.
7380 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7382         * testsuite/lib/libgomp.exp: load fortran-modules.exp
7384 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7386         * configure.tgt (mips-sgi-irix6*): Remove.
7388 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7390         * configure.tgt (alpha*-dec-osf*): Remove.
7392         * config/osf/sem.h: Remove.
7393         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
7395 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7397         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
7399 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7401         PR libstdc++/52188
7402         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
7403         Remove ENABLE_SYMVERS_SOL2.
7404         * configure: Regenerate.
7405         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
7406         (PREPROCESS): New variable.
7407         (libgomp.ver): New target.
7408         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
7409         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
7410         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
7411         Use libgomp.ver.
7412         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
7413         * Makefile.in: Regenerate.
7415 2012-02-14  Walter Lee  <walt@tilera.com>
7417         * configure.tgt: Handle tilegx and tilepro.
7418         * config/linux/tile/futex.h: New file.
7420 2012-02-08  Richard Guenther  <rguenther@suse.de>
7422         PR tree-optimization/46886
7423         * testsuite/libgomp.c/pr46886.c: New testcase.
7425 2012-01-25  Matthias Klose  <doko@ubuntu.com>
7427         * config/linux/arm: Remove empty directory.
7428         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
7430 2011-12-09  Alan Modra  <amodra@gmail.com>
7432         PR libgomp/51376
7433         * task.c (GOMP_taskwait): Don't access task->children outside of
7434         task_lock mutex region.
7435         (GOMP_task): Likewise.
7437 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
7439         PR libgomp/51132
7440         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
7441         to file scope.
7442         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
7443         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
7444         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
7445         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
7446         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
7448 2011-12-02  Alan Modra  <amodra@gmail.com>
7450         * config/linux/affinity.c: Use atomic rather than sync builtin.
7451         * config/linux/lock.c: Likewise.
7452         * config/linux/ptrlock.h: Likewise.
7453         * config/linux/ptrlock.c: Likewise.
7454         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
7455         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
7456         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
7457         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
7458         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
7459         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
7460         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
7461         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
7462         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
7463         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
7465 2011-11-30  Alan Modra  <amodra@gmail.com>
7467         PR libgomp/51298
7468         * config/linux/bar.h: Use atomic rather than sync builtins.
7469         * config/linux/bar.c: Likewise.  Add missing acquire
7470         synchronisation on generation field.
7471         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
7472         double unlock.
7474 2011-11-30  Alan Modra  <amodra@gmail.com>
7476         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
7477         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
7478         * config/linux/mutex.h: Use atomic rather than sync builtins.
7479         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
7480         * config/linux/omp-lock.h: Comment fix.
7481         * config/linux/arm/mutex.h: Delete.
7482         * config/linux/powerpc/mutex.h: Delete.
7483         * config/linux/ia64/mutex.h: Delete.
7484         * config/linux/mips/mutex.h: Delete.
7486 2011-11-30  Alan Modra  <amodra@gmail.com>
7488         PR libgomp/51249
7489         * config/linux/sem.h: Rewrite.
7490         * config/linux/sem.c: Rewrite.
7492 2011-11-28  Richard Henderson  <rth@redhat.com>
7494         * libgomp.h (enum memmodel): New.
7496 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
7498         * configure: Regenerate.
7500 2011-10-10  Matthias Klose  <doko@ubuntu.com>
7502         * config/posix95: Remove empty directory.
7504 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
7506         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
7508 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
7510         PR fortran/49792
7511         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
7512         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
7514 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7516         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
7518 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7520         PR libgomp/49965
7521         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
7523 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
7525         * config/linux/proc.h: New.
7526         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
7527         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
7528         (gomp_init_num_threads): Update call to cpuset_popcount.
7529         (get_num_procs): Ditto.
7530         * config/linux/affinity.c (gomp_init_affinity): Call
7531         gomp_cpuset_popcount.
7533 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7535         PR fortran/42041
7536         PR fortran/46752
7537         * omp.h.in (omp_in_final): New prototype.
7538         * omp_lib.f90.in (omp_in_final): New interface.
7539         (omp_integer_kind, omp_logical_kind): Remove
7540         and replace all its uses in the module with 4.
7541         (openmp_version): Change to 201107.
7542         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
7543         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
7544         kind for the parameters.
7545         (omp_in_final): New external.
7546         (openmp_version): Change to 201107.
7547         * task.c (omp_in_final): New function.
7548         (gomp_init_task): Initialize final_task.
7549         (GOMP_task): Remove unused attribute from flags.  Handle final
7550         tasks.
7551         (GOMP_taskyield): New function.
7552         (omp_in_final): Return true if if (false) or final (true) task
7553         or descendant of final (true).
7554         * fortran.c (omp_in_final_): New function.
7555         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
7556         (GOMP_3.0): Export GOMP_taskyield.
7557         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
7558         variables.
7559         (parse_unsigned_long_list): New function.
7560         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
7561         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
7562         even if parse_affinity returned false.
7563         * config/linux/affinity.c (gomp_init_affinity): Handle
7564         gomp_cpu_affinity_len == 0.
7565         * libgomp_g.h (GOMP_taskyield): New prototype.
7566         * libgomp.h (struct gomp_task): Add final_task field.
7567         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
7568         * team.c (gomp_team_start): Override new task's nthreads_var icv
7569         if list form OMP_NUM_THREADS has been used and it has value for
7570         the new nesting level.
7572         * testsuite/libgomp.c/atomic-11.c: New test.
7573         * testsuite/libgomp.c/atomic-12.c: New test.
7574         * testsuite/libgomp.c/atomic-13.c: New test.
7575         * testsuite/libgomp.c/atomic-14.c: New test.
7576         * testsuite/libgomp.c/reduction-6.c: New test.
7577         * testsuite/libgomp.c/task-5.c: New test.
7578         * testsuite/libgomp.c++/atomic-2.C: New test.
7579         * testsuite/libgomp.c++/atomic-3.C: New test.
7580         * testsuite/libgomp.c++/atomic-4.C: New test.
7581         * testsuite/libgomp.c++/atomic-5.C: New test.
7582         * testsuite/libgomp.c++/atomic-6.C: New test.
7583         * testsuite/libgomp.c++/atomic-7.C: New test.
7584         * testsuite/libgomp.c++/atomic-8.C: New test.
7585         * testsuite/libgomp.c++/atomic-9.C: New test.
7586         * testsuite/libgomp.c++/task-8.C: New test.
7587         * testsuite/libgomp.c++/reduction-4.C: New test.
7588         * testsuite/libgomp.fortran/allocatable7.f90: New test.
7589         * testsuite/libgomp.fortran/allocatable8.f90: New test.
7590         * testsuite/libgomp.fortran/crayptr3.f90: New test.
7591         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
7592         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
7593         * testsuite/libgomp.fortran/pointer1.f90: New test.
7594         * testsuite/libgomp.fortran/pointer2.f90: New test.
7595         * testsuite/libgomp.fortran/task4.f90: New test.
7597 2011-08-02  Tobias Burnus  <burnus@net-b.de>
7599         * libgomp.texi: Update OpenMP spec references to 3.1.
7600         (omp_in_final,OMP_PROC_BIND): New sections.
7601         (OMP_NUM_THREADS): Document that the value can be now a list.
7602         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
7604 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7606         * config/linux/x86/futex.h: Check __x86_64__ instead of
7607         __LP64__.
7609 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7611         PR middle-end/49897
7612         PR middle-end/49898
7613         * testsuite/libgomp.c/pr49897-1.c: New test.
7614         * testsuite/libgomp.c/pr49897-2.c: New test.
7615         * testsuite/libgomp.c/pr49898-1.c: New test.
7616         * testsuite/libgomp.c/pr49898-2.c: New test.
7618 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7620         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
7621         for ia32 instead of ilp32.
7623         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
7624         * testsuite/libgomp.c/atomic-6.c: Likewise.
7626 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
7628         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
7629         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
7631 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7633         PR libgomp/45351
7634         * config/osf/sem.h: New file.
7635         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
7637 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7639         PR target/49541
7640         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
7641         ldflags.
7643 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
7645         * config/linux/wait.h (do_spin): New inline, largely copied
7646         from do_wait, just don't do futex_wait here, instead return true if
7647         it should be done.
7648         (do_wait): Implement using do_spin.
7649         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
7650         to prototype.
7651         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
7652         __sync_bool_compare_and_swap, pass the oldval to
7653         gomp_mutex_lock_slow.
7654         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
7655         If all mutex contenders are just spinning and not sleeping, don't
7656         change state to 2 unnecessarily.  Optimize the loop when state has
7657         already become 2 to use just one atomic operation per loop instead
7658         of two.
7659         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
7660         to prototype.
7661         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
7662         __sync_bool_compare_and_swap, pass the oldval to
7663         gomp_mutex_lock_slow.
7665 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
7667         PR libgomp/49490
7668         * iter.c (gomp_iter_static_next): For chunk size 0
7669         only use n ceil/ nthreads size for the first
7670         n % nthreads threads in the team instead of
7671         all threads except for the last few ones which
7672         get less work or none at all.
7673         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
7674         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
7675         chunk argument, set run_sched_modifier to 0 for static
7676         resp. 1 for other kinds.  If chunk argument is 0
7677         and not static, set value to 1.
7679 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
7681         PR c++/49043
7682         * testsuite/libgomp.c++/pr49043.C: New test.
7684         PR c++/48869
7685         * testsuite/libgomp.c++/pr48869.C: New test.
7687 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
7689         PR fortran/48894
7690         * fortran.c: Include limits.h.
7691         (TO_INT): Define.
7692         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
7693         *set.
7694         (omp_set_num_threads_8_, omp_set_schedule_8_,
7695         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
7696         omp_get_team_size_8_): Use TO_INT macro.
7697         * testsuite/libgomp.fortran/pr48894.f90: New test.
7699 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
7701         PR middle-end/48591
7702         * testsuite/libgomp.c/pr48591.c: New test.
7704 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7706         PR bootstrap/48135
7707         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
7708         * configure: Regenerate.
7710 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
7712         PR fortran/47886
7713         * testsuite/libgomp.fortran/task3.f90: New test.
7715 2011-02-24  Tobias Burnus  <burnus@net-b.de>
7717         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
7719 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
7721         PR libgomp/47854
7722         * libgomp.texi (omp_get_wtime): Don't say time in the past
7723         must be Unix Epoch.
7725 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
7727         PR libgomp/47804
7728         * testsuite/libgomp.fortran/fortran.exp: Check for both
7729         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
7730         but $blddir != "", still append ${blddir}/${lang_library_path}
7731         to ld_library_path.
7733 2011-02-16  Tobias Burnus  <burnus@net-b.de>
7735         PR libgomp/47758
7736         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
7737         of libquadmath.a before adding its libpath to ldflags.
7739 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
7741         PR libgomp/47731
7742         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
7743         to FUTEX_WAIT futex syscall.
7744         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
7746 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7748         * configure: Regenerate.
7750 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
7752         PR libstdc++/36104
7753         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
7755 2011-01-16  Gerald Pfeifer
7757         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
7759 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
7761         PR fortran/46874
7762         * libgomp.fortran/allocatable6.f90: New test.
7764 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7766         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
7767         * configure: Regenerate.
7769 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
7771         PR target/40125
7772         PR lto/46695
7773         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
7774         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
7775         * aclocal.m4: Regenerate.
7776         * configure: Regenerate.
7777         * Makefile.in: Regenerate.
7778         * testsuite/Makefile.in: Regenerate.
7780 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
7782         PR fortran/46753
7783         * libgomp.fortran/pr46753.f90: New test.
7785         PR libgomp/43706
7786         * env.c (initialize_env): Default to spin count 300000
7787         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
7788         is specified.
7790         PR libgomp/45240
7791         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
7792         at the end if sync builtins aren't supported.
7794 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7796         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
7798 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7800         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
7802 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
7804         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
7806 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7807             Tobias Burnus  <burnus@net-b.de>
7809         PR fortran/32049
7810         * configure.ac:
7811         * configure: Regenerate.
7813 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7815         * config/linux/futex.h: New.
7816         * config/linux/arm/mutex.h: New.
7817         * configure.tgt (arm*-*-linux*): Add config path.
7819 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7821         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7823 2010-09-23  Tobias Burnus  <burnus@net-b.de>
7825         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
7826         Change Fortran datatype to LOGICAL.
7827         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
7828         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
7830 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7832         * configure: Regenerate.
7834 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
7836         * libgomp.texi: Add function keyword to a couple of Fortran
7837         interfaces, use integer instead of int for Fortran.
7839 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
7841         * libgomp.texi: Fix spelling and pasto problems throughout.
7842         Adjust prototypes to match code.
7844 2010-07-24  Tobias Burnus  <burnus@net-b.de>
7846         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
7847         silence -fwhole-file warning.
7849 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7851         * configure.tgt (*-*-solaris2.[56]*): Removed.
7853 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7855         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
7856         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
7857         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
7858         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
7859         targetting solaris2*.
7860         * configure: Regenerate.
7861         * config.h.in: Regenerate.
7863         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
7864         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
7865         Add libgomp_version_dep.
7866         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
7867         versioning.
7868         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
7869         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
7870         * Makefile.in: Regenerate.
7872         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
7873         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
7874         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
7875         to common block, protected by
7876         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
7878 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
7880         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
7882 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
7884         PR bootstrap/43170
7885         * configure: Regenerate.
7887 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7889         PR other/43620
7890         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
7891         * configure: Regenerate.
7892         * Makefile.in: Regenerate.
7893         * testsuite/Makefile.in: Regenerate.
7895 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
7897         PR c/43893
7898         * testsuite/libgomp.c/pr43893.c: New test.
7899         * testsuite/libgomp.c++/pr43893.C: New test.
7901 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7903         PR middle-end/43570
7904         * testsuite/libgomp.fortran/vla8.f90: New test.
7906 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7908         PR libgomp/43706
7909         * config/linux/affinity.c (gomp_init_affinity): Decrease
7910         gomp_available_cpus if affinity mask confines the process to fewer
7911         CPUs.
7912         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
7913         non-NULL, just return gomp_available_cpus.
7915         PR libgomp/43569
7916         * sections.c (gomp_sections_init): Initialize ws->mode.
7918 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7920         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
7921         not unused bar variable.
7922         * configure: Regenerate.
7924 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7926         * Makefile.in: Regenerate.
7927         * aclocal.m4: Regenerate.
7928         * testsuite/Makefile.in: Regenerate.
7930 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7932         PR libgomp/42942
7933         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
7934         (initialize_env): Adjust callers.
7935         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
7936         when the argument is 0.
7938         * testsuite/libgomp.c/pr42942.c: New test.
7940 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7942         PR middle-end/42644
7943         PR middle-end/42130
7944         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7945         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
7947 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7949         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
7950         * testsuite/libgomp.c++/task-6.C: Likewise.
7952 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
7954         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
7956 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
7958         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
7959         * configure: Regenerate.
7961 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7963         PR fortran/42866
7964         * testsuite/libgomp.fortran/allocatable5.f90: New test.
7966 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
7968         * configure.ac: Test for executability of GFORTRAN.
7969         * configure: Regenerate.
7971 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7973         * configure: Regenerate.
7975 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7977         PR libgomp/42602
7978         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
7980 2010-01-03  Richard Guenther  <rguenther@suse.de>
7982         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
7984 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
7986         * testsuite/libgomp.graphite/pr4118.c: New.
7988 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7990         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
7991         for darwin, protect the test with require-effective-target tls_runtime.
7992         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
7994 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7996         PR target/41605
7997         * testsuite/lib/libgomp.exp: Provide -B options to allow for
7998         link spec %s substitutions for static libraries.
8000 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
8002         PR testsuite/42135
8003         * libgomp.graphite/force-parallel-2.c: Reduce array size.
8005 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8007         * Makefile.in: Regenerate.
8008         * configure: Regenerate.
8009         * testsuite/Makefile.in: Regenerate.
8011 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
8013         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
8014         settings for LC_ALL and LANG.
8016 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
8018         PR fortran/42162
8019         * testsuite/libgomp.fortran/pr42162.f90: New test.
8021 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
8023         PR middle-end/42029
8024         * testsuite/libgomp.c/pr42029.c: New test.
8026 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
8028         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
8029         *s.  Accept ld version without text in ()s.
8030         * configure: Regenerated.
8032 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
8034         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
8036 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8038         PR libgomp/41418
8039         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
8040         or a hyphen (happens with fortran language disabled).
8041         * configure: Regenerate.
8043 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8045         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
8046         use sed script portable to Solaris /bin/sed for extracting ld
8047         version.
8048         * configure: Regenerate.
8050 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
8052         * testsuite/libgomp.graphite/bounds.c: New test.
8054 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8056         * Makefile.am (libgomp_la_LINK): New.
8057         * Makefile.in: Regenerate.
8059 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8061         * configure.ac (AC_PREREQ): Bump to 2.64.
8063 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8065         * Makefile.am (install-html, install-pdf): Remove.
8066         * Makefile.in: Regenerate.
8068         * Makefile.in: Regenerate.
8069         * aclocal.m4: Regenerate.
8070         * config.h.in: Regenerate.
8071         * configure: Regenerate.
8072         * testsuite/Makefile.in: Regenerate.
8074 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8076         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
8077         * Makefile.in: Regenerate.
8079 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
8081         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
8082         * Makefile.in: Regenerate.
8084 2009-08-19  Tobias Burnus  <burnus@net-b.de>
8086         PR fortran/41102
8087         omp_lib.h.in: Fix -std=f95 errors.
8089 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
8091         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
8092         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
8093         * testsuite/libgomp.graphite/graphite.exp: New.
8095 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
8097         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
8098         only build.
8100 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
8102         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
8103         needed memory barrier semantics.
8104         * config/linux/mips/mutex.h: New file.
8106 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8108         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
8110 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
8112         * configure: Regenerate.
8114 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
8116         PR testsuite/40699
8117         PR testsuite/40707
8118         PR testsuite/40709
8119         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
8120         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
8121         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
8123 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
8125         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
8126         options when choosing a multilib.
8128 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
8130         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
8131         ld_library_path.  Use add_path.  Add just find_libgcc_s to
8132         ld_library_path, not every libgcc multilib directory.
8133         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
8134         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
8135         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
8136         Use add_path.
8137         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
8139 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
8141         * Makefile.am (LTLDFLAGS): Define.
8142         (LINK): Define.
8143         * Makefile.in: Regenerate.
8145 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
8147         PR fortran/39718
8148         * testsuite/libgomp.fortran/fortran.exp: Don't link with
8149         libgfortranbegin, check existence of libgfortran.a instead of
8150         libgfortranbegin.a.
8152 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
8154         PR libgomp/40174
8155         * team.c (gomp_thread_start): Destroy thr->release semaphore.
8156         (gomp_free_pool_helper): Likewise.
8158 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
8159             Jakub Jelinek  <jakub@redhat.com>
8161         PR fortran/35423
8162         * testsuite/libgomp.fortran/workshare2.f90: New test.
8164 2009-04-09  Nick Clifton  <nickc@redhat.com>
8166         * iter.c: Change copyright header to refer to version 3 of the
8167         GNU General Public License with version 3.1 of the GCC Runtime
8168         Library Exception and to point readers at the COPYING3 and
8169         COPYING3.RUNTIME files and the FSF's license web page.
8170         * alloc.c: Likewise.
8171         * barrier.c: Likewise.
8172         * config/bsd/proc.c: Likewise.
8173         * config/linux/affinity.c: Likewise.
8174         * config/linux/alpha/futex.h: Likewise.
8175         * config/linux/bar.c: Likewise.
8176         * config/linux/bar.h: Likewise.
8177         * config/linux/ia64/futex.h: Likewise.
8178         * config/linux/ia64/mutex.h: Likewise.
8179         * config/linux/lock.c: Likewise.
8180         * config/linux/mips/futex.h: Likewise.
8181         * config/linux/mutex.c: Likewise.
8182         * config/linux/mutex.h: Likewise.
8183         * config/linux/powerpc/futex.h: Likewise.
8184         * config/linux/proc.c: Likewise.
8185         * config/linux/ptrlock.c: Likewise.
8186         * config/linux/ptrlock.h: Likewise.
8187         * config/linux/s390/futex.h: Likewise.
8188         * config/linux/sem.c: Likewise.
8189         * config/linux/sem.h: Likewise.
8190         * config/linux/sparc/futex.h: Likewise.
8191         * config/linux/wait.h: Likewise.
8192         * config/linux/x86/futex.h: Likewise.
8193         * config/mingw32/proc.c: Likewise.
8194         * config/mingw32/time.c: Likewise.
8195         * config/posix/affinity.c: Likewise.
8196         * config/posix/bar.c: Likewise.
8197         * config/posix/bar.h: Likewise.
8198         * config/posix/lock.c: Likewise.
8199         * config/posix/mutex.h: Likewise.
8200         * config/posix/proc.c: Likewise.
8201         * config/posix/ptrlock.h: Likewise.
8202         * config/posix/sem.c: Likewise.
8203         * config/posix/sem.h: Likewise.
8204         * config/posix/time.c: Likewise.
8205         * config/posix95/lock.c: Likewise.
8206         * critical.c: Likewise.
8207         * env.c: Likewise.
8208         * error.c: Likewise.
8209         * fortran.c: Likewise.
8210         * iter_ull.c: Likewise.
8211         * libgomp.h: Likewise.
8212         * libgomp_f.h.in: Likewise.
8213         * libgomp_g.h: Likewise.
8214         * loop.c: Likewise.
8215         * loop_ull.c: Likewise.
8216         * omp.h.in: Likewise.
8217         * omp_lib.f90.in: Likewise.
8218         * omp_lib.h.in: Likewise.
8219         * ordered.c: Likewise.
8220         * parallel.c: Likewise.
8221         * sections.c: Likewise.
8222         * single.c: Likewise.
8223         * task.c: Likewise.
8224         * team.c: Likewise.
8225         * work.c: Likewise.
8227 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
8229         * testsuite/config/default.exp: Change copyright header to refer to
8230         version 3 of the GNU General Public License and to point readers
8231         at the COPYING3 file and the FSF's license web page.
8233 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
8235         PR middle-end/39573
8236         * libgomp.c++/pr39573.C: New test.
8238 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
8240         PR other/39591
8241         * testsuite/libgomp.c/pr39591-1.c: New test.
8242         * testsuite/libgomp.c/pr39591-2.c: New test.
8243         * testsuite/libgomp.c/pr39591-3.c: New test.
8245 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
8247         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
8248         * testsuite/libgomp.c/atomic-6.c: Ditto.
8250 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8252         PR c/39495
8253         * testsuite/libgomp.c/loop-12.c: New test.
8254         * testsuite/libgomp.c/loop-11.c: New test.
8255         * testsuite/libgomp.c++/loop-11.C: New test.
8256         * testsuite/libgomp.c++/loop-12.C: New test.
8257         * testsuite/libgomp.c++/for-8.C: New test.
8259 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8261         * configure: Regenerate.
8263 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8265         PR middle-end/39154
8266         * testsuite/libgomp.c/pr39154.c: New test.
8268 2009-01-30  Ian Lance Taylor  <iant@google.com>
8270         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
8271         libgomp_ld_is_gold.  Get gold version number.
8272         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
8273         * configure: Rebuild.
8275 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
8277         * testsuite/lib/libgomp.exp: Add -B option for targets that
8278         use libgfortran.a%s in their specs.
8280 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
8282         PR libgomp/38086
8283         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
8284         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
8285         HAVE_AS_SYMVER_DIRECTIVE is not defined.
8286         * configure: Regenerated.
8287         * config.h.in: Likewise.
8289 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
8291         PR c++/38650
8292         * testsuite/libgomp.c/pr38650.c: New test.
8293         * testsuite/libgomp.c++/pr38650.C: New test.
8295 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
8297         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
8299 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
8301         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
8303 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8305         * configure: Regenerate.
8307 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
8309         PR middle-end/36802
8310         * testsuite/libgomp.c/pr36802-1.c: New test.
8311         * testsuite/libgomp.c/pr36802-2.c: New test.
8312         * testsuite/libgomp.c/pr36802-3.c: New test.
8314 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
8316         PR libgomp/38270
8317         * config/linux/powerpc/mutex.h: New.
8319 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
8321         PR c++/38257
8322         * testsuite/libgomp.c++/for-7.C: New test.
8324         PR c++/38348
8325         * testsuite/libgomp.c++/for-6.C: New test.
8327 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
8329         PR testsuite/28870
8330         * testsuite/lib/libgomp.exp: Include new timeout library files.
8331         (libgomp_target_compile): Set timeout value from new proc.
8333 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
8335         PR libgomp/37938
8336         * config/linux/ia64/mutex.h: New.
8338 2008-11-04  Tobias Burnus  <burnus@net-b.de>
8340         PR libgomp/37935
8341         * libgomp.texi (Runtime library routines, environment variables):
8342         Update for OpenMP version 3.0.
8344 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
8345             Steve Ellcey  <sje@cup.hp.com>
8347         * configure: Regenerate for new libtool.
8348         * Makefile.in: Ditto.
8349         * testsuite/Makefile.in: Ditto.
8351 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
8352             Andreas Tobler  <a.tobler@schweiz.org>
8354         * config/bsd/proc.c: New file.
8355         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
8356         * configure.ac: Check for header <sys/sysctl.h>
8357         * configure: Regenerate.
8358         * config.h.in: Likewise.
8360 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
8362         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
8364 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8366         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
8367         * Makefile.in: Regenerated.
8368         * testsuite/Makefile.in: Regenerated.
8370 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
8372         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
8373         depend on blddir if blddir exists.
8374         (libgomp_target_compile): Likewise.
8375         * testsuite/libgomp.c++/c++.exp: Likewise.
8376         * testsuite/libgomp.fortran/fortran.exp: Likewise.
8378 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8380         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
8381         Do not list GPL as Invariant Section.
8383 2008-07-28  Ilie Garbacea  <ilie@mips.com>
8384             Chao-ying Fu  <fu@mips.com>
8386         * configure.tgt: Enable futex for MIPS.
8387         * config/linux/mips/futex.h: New file.
8389 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
8391         * team.c (gomp_team_end): Free team immediately if it has
8392         just one thread.
8394 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
8396         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
8397         * testsuite/libgomp.fortran/fortran.exp: Same.
8398         * testsuite/libgomp.c/c.exp: Same.
8399         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
8400         directory to library path first.
8402 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
8404         * env.c (parse_stacksize): Add cast to avoid warning.
8405         (parse_spincount): Likewise.
8407 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
8409         * testsuite/libgomp.c/loop-10.c: New test.
8410         * libgomp.c/loop-3.c (main): Add lastprivate clause.
8411         * libgomp.c++/loop-6.C (main): Likewise.
8413         PR debug/36617
8414         * testsuite/libgomp.c/debug-1.c: New test.
8416 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
8418         * testsuite/libgomp.c/nqueens-1.c: New test.
8420         PR c++/36523
8421         * testsuite/libgomp.c++/task-7.C: New function.
8423 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8425         * configure: Regenerate.
8427 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8429         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
8430         mutex when HAVE_SYNC_BUILTINS isn't defined.
8432 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8434         * libgomp.texi (omp_test_lock): Fix typo.
8436 2008-06-12  Tobias Burnus  <burnus@net-b.de>
8438         * omp_lib.f90.in: Add "implicit none".
8440 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8442         PR middle-end/36506
8443         * testsuite/libgomp.c/reduction-5.c: New test.
8445 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
8447         * libgomp.h (struct gomp_task): Add in_tied_task field.
8448         * task.c (gomp_init_task): Initialize it.
8449         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
8450         unconditionally.  Don't call gomp_team_barrier_wake if
8451         current task is implicit or if(0) from implicit and number of
8452         running tasks is equal to nthreads - 1.
8454         PR libgomp/36471
8455         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
8456         omp_get_team_size_8): Fix pastos.
8458         PR libgomp/36469
8459         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
8460         * configure: Regenerated.
8461         * config.h.in: Regenerated.
8462         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
8463         defined.
8465 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
8467         PR bootstrap/36452
8468         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
8469         (GOMP_loop_ull_dynamic_start): Likewise.
8470         (GOMP_loop_ull_guided_start): Likewise.
8471         (GOMP_loop_ull_ordered_static_start): Likewise.
8472         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
8473         (GOMP_loop_ull_ordered_guided_start): Likewise.
8475 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8476             Richard Henderson  <rth@redhat.com>
8477             Ulrich Drepper  <drepper@redhat.com>
8478             Jakob Blomer  <jakob.blomer@ira.uka.de>
8480         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
8481         Substitute also OMP_*LOCK_25*.
8482         * configure: Regenerated.
8483         * config.h.in: Regenerated.
8484         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
8485         ptrlock.c and task.c.
8486         * Makefile.in: Regenerated.
8487         * testsuite/Makefile.in: Regenerated.
8488         * task.c: New file.
8489         * loop_ull.c: New file.
8490         * iter_ull.c: New file.
8491         * libgomp.h: Include ptrlock.h.
8492         (enum gomp_task_kind): New type.
8493         (struct gomp_team): Add task_lock, task_queue, task_count,
8494         task_running_count, single_count fields.  Add
8495         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
8496         Remove work_share_lock, generation_mask,
8497         oldest_live_gen, num_live_gen and init_work_shares fields, add
8498         work work_share_list_alloc, work_share_list_free and work_share_chunk
8499         fields.  Change work_shares from pointer to pointers into an array.
8500         Change ordered_release field into gomp_sem_t ** from flexible array
8501         member.  Add implicit_task and initial_work_shares fields.
8502         Move close to the end of the struct.
8503         (struct gomp_team_state): Add single_count, last_work_share,
8504         active_level and level fields, remove work_share_generation.
8505         (gomp_barrier_handle_tasks): New prototype.
8506         (gomp_finish_task): New inline function.
8507         (struct gomp_work_share): Move chunk_size, end, incr into
8508         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
8509         next_ll fields.  Reshuffle fields.  Add next_alloc,
8510         next_ws, next_free and inline_ordered_team_ids fields, change
8511         ordered_team_ids into pointer from flexible array member.
8512         Add mode field.  Put lock and next into a different cache line
8513         from most of the write-once fields.
8514         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
8515         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
8516         gomp_iter_ull_guided_next): New prototypes.
8517         (gomp_new_icv): New prototype.
8518         (struct gomp_thread): Add thread_pool and task fields.
8519         (struct gomp_thread_pool): New type.
8520         (gomp_new_team): New prototype.
8521         (gomp_team_start): Change type of last argument.
8522         (gomp_new_work_share): Removed.
8523         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
8524         (gomp_work_share_init_done): New static inline.
8525         (gomp_throttled_spin_count_var, gomp_available_cpus,
8526         gomp_managed_threads): New extern decls.
8527         (gomp_init_task): New prototype.
8528         (gomp_spin_count_var): New extern var decl.
8529         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
8530         or no alias support, or if not PIC.
8531         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
8532         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
8533         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
8534         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
8535         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
8536         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
8537         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
8538         gomp_test_nest_lock_25): New prototypes.
8539         (omp_lock_symver, strong_alias): Define.
8540         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
8541         decls.
8542         (gomp_end_task): New.
8543         (struct gomp_task_icv, gomp_global_icv): New.
8544         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
8545         (struct gomp_task): New.
8546         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
8547         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
8548         (gomp_icv): New.
8549         (gomp_schedule_type): Reorder enum to match
8550         omp_sched_t.
8551         * team.c (struct gomp_thread_start_data): Add thread_pool and task
8552         fields.
8553         (gomp_thread_start): Add gomp_team_barrier_wait call.
8554         For non-nested case remove clearing of docked thread thr fields.
8555         Use pool fields instead of global gomp_* variables.  Use
8556         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
8557         Create tasks for each member thread.
8558         (free_team): Only destroy team barrier, task_lock here and free it.
8559         (gomp_free_thread): Free last_team if non-NULL.
8560         (gomp_team_end): Call gomp_team_barrier_wait instead of
8561         gomp_barrier_wait.  For nested case call one extra
8562         gomp_barrier_wait.  Move here some destruction from free_team.
8563         Call free_team on pool->last_team if any, rather than freeing
8564         current team.  Destroy work_share_list_free_lock ifndef
8565         HAVE_SYNC_BUILTINS.
8566         (gomp_new_icv): New function.
8567         (gomp_threads, gomp_threads_size, gomp_threads_used,
8568         gomp_threads_dock): Removed.
8569         (gomp_thread_destructor): New variable.
8570         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
8571         functions.
8572         (gomp_team_start): Create new pool if current thread doesn't have
8573         one.  Use pool fields instead of global gomp_* variables.
8574         Initialize thread_pool field for new threads.  Clear single_count.
8575         Change last argument from ws to team, don't create
8576         new team, set ts.work_share to &team->work_shares[0] and clear
8577         ts.last_work_share.  Don't clear ts.work_share_generation.
8578         If number of threads changed, adjust atomically gomp_managed_threads.
8579         Use gomp_init_task instead of gomp_new_task,
8580         set thr->task to the corresponding implicit_task array entry.
8581         Create tasks for each member thread.  Initialize ts.level.
8582         (initialize_team): Call pthread_key_create on
8583         gomp_thread_destructor.
8584         (team_destructor): New function.
8585         (new_team): Removed.
8586         (gomp_new_team): New function.
8587         (free_team): Free gomp_work_share blocks chained through next_alloc,
8588         instead of freeing work_shares and destroying work_share_lock.
8589         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
8590         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
8591         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
8592         of gomp_barrier_wait.
8593         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
8594         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
8595         if gomp_work_share_start returned true.  Don't unlock ws->lock.
8596         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
8597         of gomp_barrier_wait.
8598         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
8599         gomp_work_share_init_done if gomp_work_share_start returned true.
8600         Don't unlock ws->lock.
8601         * work.c: Include stddef.h.
8602         (free_work_share): Use work_share_list_free_lock instead
8603         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
8604         Call gomp_fini_work_share and then either free ws if orphaned, or
8605         put it into work_share_list_free list of the current team.
8606         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
8607         functions.
8608         (gomp_work_share_start, gomp_work_share_end,
8609         gomp_work_share_end_nowait): Rewritten.
8610         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
8611         (openmp_version): Set to 200805.
8612         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
8613         omp_sched_guided, omp_sched_auto): New parameters.
8614         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8615         omp_set_max_active_levels, omp_get_max_active_levels,
8616         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8617         omp_get_active_level): New interfaces.
8618         * omp_lib.h.in (openmp_version): Set to 200805.
8619         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
8620         omp_sched_guided, omp_sched_auto): New parameters.
8621         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8622         omp_set_max_active_levels, omp_get_max_active_levels,
8623         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8624         omp_get_active_level): New externals.
8625         * loop.c: Include limits.h.
8626         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
8627         GFS_AUTO.
8628         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
8629         Likewise.  Use gomp_icv.
8630         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
8631         ts.static_trip here.
8632         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
8633         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
8634         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
8635         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
8636         don't unlock ws->lock, otherwise lock it.
8637         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
8638         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
8639         (gomp_parallel_loop_start): Call gomp_new_team instead of
8640         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
8641         Adjust gomp_team_start caller.  Pass 0 as second argument to
8642         gomp_resolve_num_threads.
8643         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
8644         If adding ws->chunk_size nthreads + 1 times after end won't
8645         overflow, set ws->mode to 1.
8646         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
8647         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
8648         GOMP_loop_ull_ordered_static_start,
8649         GOMP_loop_ull_ordered_dynamic_start,
8650         GOMP_loop_ull_ordered_guided_start,
8651         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
8652         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
8653         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
8654         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
8655         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
8656         prototypes.
8657         * libgomp.map: Export lock routines also @@OMP_2.0.
8658         (GOMP_loop_ordered_dynamic_first,
8659         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
8660         GOMP_loop_ordered_static_first): Remove.
8661         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
8662         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
8663         GOMP_loop_ull_ordered_dynamic_next,
8664         GOMP_loop_ull_ordered_dynamic_start,
8665         GOMP_loop_ull_ordered_guided_next,
8666         GOMP_loop_ull_ordered_guided_start,
8667         GOMP_loop_ull_ordered_runtime_next,
8668         GOMP_loop_ull_ordered_runtime_start,
8669         GOMP_loop_ull_ordered_static_next,
8670         GOMP_loop_ull_ordered_static_start,
8671         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
8672         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
8673         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
8674         (omp_set_schedule, omp_get_schedule,
8675         omp_get_thread_limit, omp_set_max_active_levels,
8676         omp_get_max_active_levels, omp_get_level,
8677         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
8678         omp_set_schedule_, omp_set_schedule_8_,
8679         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
8680         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
8681         omp_get_max_active_levels_, omp_get_level_,
8682         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
8683         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
8684         New exports @@OMP_3.0.
8685         * omp.h.in (omp_sched_t): New type.
8686         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8687         omp_set_max_active_levels, omp_get_max_active_levels,
8688         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8689         omp_get_active_level): New prototypes.
8690         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
8691         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
8692         gomp_thread_limit_var, gomp_remaining_threads_count,
8693         gomp_remaining_threads_lock): New variables.
8694         (parse_spincount): New function.
8695         (initialize_env): Call gomp_init_num_threads unconditionally.
8696         Initialize gomp_available_cpus.  Call parse_spincount,
8697         initialize gomp_{,throttled_}spin_count_var
8698         depending on presence and value of OMP_WAIT_POLICY and
8699         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
8700         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
8701         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
8702         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
8703         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
8704         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
8705         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
8706         (gomp_global_icv): New.
8707         (parse_schedule): Use it.  Parse "auto".
8708         (omp_set_num_threads): Use gomp_icv.
8709         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
8710         Likewise.
8711         (omp_get_max_threads): Move from parallel.c.
8712         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8713         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
8714         add ialias.
8715         (parse_stacksize, parse_wait_policy): New functions.
8716         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
8717         both wrappers for compatibility and new locks.
8718         (omp_set_schedule, omp_get_schedule,
8719         omp_get_thread_limit, omp_set_max_active_levels,
8720         omp_get_max_active_levels, omp_get_level,
8721         omp_get_ancestor_thread_num, omp_get_team_size,
8722         omp_get_active_level): New ialias_redirect.
8723         (omp_set_schedule_, omp_set_schedule_8_,
8724         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
8725         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
8726         omp_get_max_active_levels_, omp_get_level_,
8727         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
8728         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
8729         New functions.
8730         * parallel.c: Include limits.h.
8731         (gomp_resolve_num_threads): Add count argument.  Rewritten.
8732         (GOMP_parallel_start): Call gomp_new_team and pass that as last
8733         argument to gomp_team_start.  Pass 0 as second argument to
8734         gomp_resolve_num_threads.
8735         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
8736         if gomp_thread_limit_var != ULONG_MAX.
8737         (omp_in_parallel): Implement using ts.active_level.
8738         (omp_get_max_threads): Move to env.c.
8739         (omp_get_level, omp_get_ancestor_thread_num,
8740         omp_get_team_size, omp_get_active_level): New functions,
8741         add ialias.
8742         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
8743         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
8744         gomp_iter_dynamic_next instead of the _locked variant and don't take
8745         lock around it, otherwise acquire it before calling
8746         gomp_iter_dynamic_next_locked.
8747         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
8748         gomp_iter_dynamic_next instead of the _locked variant and don't take
8749         lock around it.
8750         (GOMP_parallel_sections_start): Call gomp_new_team instead of
8751         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
8752         Adjust gomp_team_start caller.  Pass count as second argument to
8753         gomp_resolve_num_threads, don't adjust num_threads after the call.
8754         Use gomp_icv.
8755         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
8756         ws->chunk_size by incr.
8757         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
8758         code.
8759         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
8760         types.
8761         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
8762         (omp_check_defines): Check even the compat defines.
8763         * config/linux/ptrlock.c: New file.
8764         * config/linux/ptrlock.h: New file.
8765         * config/linux/wait.h: New file.
8766         * config/posix/ptrlock.c: New file.
8767         * config/posix/ptrlock.h: New file.
8768         * config/linux/bar.h (gomp_team_barrier_wait,
8769         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
8770         (gomp_team_barrier_set_task_pending,
8771         gomp_team_barrier_clear_task_pending,
8772         gomp_team_barrier_set_waiting_for_tasks,
8773         gomp_team_barrier_waiting_for_tasks,
8774         gomp_team_barrier_done): New inlines.
8775         (gomp_barrier_t): Rewritten.
8776         (gomp_barrier_state_t): New typedef.
8777         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
8778         gomp_barrier_wait_start): Rewritten.
8779         (gomp_barrier_wait_end): Change second argument to
8780         gomp_barrier_state_t.
8781         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
8782         inlines.
8783         * config/linux/bar.c: Include wait.h instead of libgomp.h and
8784         futex.h.
8785         (gomp_barrier_wait_end): Rewritten.
8786         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
8787         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
8788         * config/posix/bar.h (gomp_barrier_t): Add generation field.
8789         (gomp_barrier_state_t): New typedef.
8790         (gomp_team_barrier_wait,
8791         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
8792         (gomp_barrier_wait_start): Or all but low 2 bits from generation
8793         into the return value.  Return gomp_barrier_state_t.
8794         (gomp_team_barrier_set_task_pending,
8795         gomp_team_barrier_clear_task_pending,
8796         gomp_team_barrier_set_waiting_for_tasks,
8797         gomp_team_barrier_waiting_for_tasks,
8798         gomp_team_barrier_done): New inlines.
8799         (gomp_barrier_wait_end): Change second argument to
8800         gomp_barrier_state_t.
8801         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
8802         inlines.
8803         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
8804         (gomp_barrier_wait_end): Change second argument to
8805         gomp_barrier_state_t.
8806         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
8807         gomp_team_barrier_wake): New functions.
8808         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
8809         futex.h.
8810         (gomp_futex_wake, gomp_futex_wait): New variables.
8811         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
8812         * config/linux/lock.c: Rewrite to make locks task owned,
8813         for backwards compatibility provide the old entrypoints
8814         if symbol versioning.  Include wait.h instead of libgomp.h and
8815         futex.h.
8816         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
8817         * config/posix95/lock.c: Rewrite to make locks task owned,
8818         for backwards compatibility provide the old entrypoints
8819         if symbol versioning.
8820         * config/posix/lock.c: Rewrite to make locks task owned,
8821         for backwards compatibility provide the old entrypoints
8822         if symbol versioning.
8823         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
8824         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
8825         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
8826         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8827         (sys_futex0): Return error code.
8828         (futex_wake, futex_wait): If ENOSYS was returned, clear
8829         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8830         (cpu_relax, atomic_write_barrier): New static inlines.
8831         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8832         (futex_wake, futex_wait): If ENOSYS was returned, clear
8833         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8834         (cpu_relax, atomic_write_barrier): New static inlines.
8835         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8836         (sys_futex0): Return error code.
8837         (futex_wake, futex_wait): If ENOSYS was returned, clear
8838         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8839         (cpu_relax, atomic_write_barrier): New static inlines.
8840         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8841         (sys_futex0): Return error code.
8842         (futex_wake, futex_wait): If ENOSYS was returned, clear
8843         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8844         (cpu_relax, atomic_write_barrier): New static inlines.
8845         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8846         (sys_futex0): Return error code.
8847         (futex_wake, futex_wait): If ENOSYS was returned, clear
8848         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8849         (cpu_relax, atomic_write_barrier): New static inlines.
8850         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8851         (sys_futex0): Return error code.
8852         (futex_wake, futex_wait): If ENOSYS was returned, clear
8853         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8854         (cpu_relax, atomic_write_barrier): New static inlines.
8855         * config/linux/sem.c: Include wait.h instead of libgomp.h and
8856         futex.h.
8857         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
8858         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
8859         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
8860         types.
8861         (omp_nest_lock_t): Change owner into void *, add lock field.
8862         * config/posix95/omp-lock.h: Include semaphore.h.
8863         (omp_lock_25_t, omp_nest_lock_25_t): New types.
8864         (omp_lock_t): Use sem_t instead of mutex if semaphores
8865         aren't broken.
8866         (omp_nest_lock_t): Likewise.  Change owner to void *.
8867         * config/posix/omp-lock.h: Include semaphore.h.
8868         (omp_lock_25_t, omp_nest_lock_25_t): New types.
8869         (omp_lock_t): Use sem_t instead of mutex if semaphores
8870         aren't broken.
8871         (omp_nest_lock_t): Likewise.  Add owner field.
8873 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8875         * testsuite/libgomp.c/collapse-1.c: New test.
8876         * testsuite/libgomp.c/collapse-2.c: New test.
8877         * testsuite/libgomp.c/collapse-3.c: New test.
8878         * testsuite/libgomp.c/icv-1.c: New test.
8879         * testsuite/libgomp.c/icv-2.c: New test.
8880         * testsuite/libgomp.c/lib-2.c: New test.
8881         * testsuite/libgomp.c/lock-1.c: New test.
8882         * testsuite/libgomp.c/lock-2.c: New test.
8883         * testsuite/libgomp.c/lock-3.c: New test.
8884         * testsuite/libgomp.c/loop-4.c: New test.
8885         * testsuite/libgomp.c/loop-5.c: New test.
8886         * testsuite/libgomp.c/loop-6.c: New test.
8887         * testsuite/libgomp.c/loop-7.c: New test.
8888         * testsuite/libgomp.c/loop-8.c: New test.
8889         * testsuite/libgomp.c/loop-9.c: New test.
8890         * testsuite/libgomp.c/nested-3.c: New test.
8891         * testsuite/libgomp.c/nestedfn-6.c: New test.
8892         * testsuite/libgomp.c/sort-1.c: New test.
8893         * testsuite/libgomp.c/task-1.c: New test.
8894         * testsuite/libgomp.c/task-2.c: New test.
8895         * testsuite/libgomp.c/task-3.c: New test.
8896         * testsuite/libgomp.c/task-4.c: New test.
8897         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
8898         to C++ testsuite default compiler options.
8899         * testsuite/libgomp.c++/collapse-1.C: New test.
8900         * testsuite/libgomp.c++/collapse-2.C: New test.
8901         * testsuite/libgomp.c++/ctor-10.C: New test.
8902         * testsuite/libgomp.c++/for-1.C: New test.
8903         * testsuite/libgomp.c++/for-2.C: New test.
8904         * testsuite/libgomp.c++/for-3.C: New test.
8905         * testsuite/libgomp.c++/for-4.C: New test.
8906         * testsuite/libgomp.c++/for-5.C: New test.
8907         * testsuite/libgomp.c++/loop-8.C: New test.
8908         * testsuite/libgomp.c++/loop-9.C: New test.
8909         * testsuite/libgomp.c++/loop-10.C: New test.
8910         * testsuite/libgomp.c++/task-1.C: New test.
8911         * testsuite/libgomp.c++/task-2.C: New test.
8912         * testsuite/libgomp.c++/task-3.C: New test.
8913         * testsuite/libgomp.c++/task-4.C: New test.
8914         * testsuite/libgomp.c++/task-5.C: New test.
8915         * testsuite/libgomp.c++/task-6.C: New test.
8916         * testsuite/libgomp.fortran/allocatable1.f90: New test.
8917         * testsuite/libgomp.fortran/allocatable2.f90: New test.
8918         * testsuite/libgomp.fortran/allocatable3.f90: New test.
8919         * testsuite/libgomp.fortran/allocatable4.f90: New test.
8920         * testsuite/libgomp.fortran/collapse1.f90: New test.
8921         * testsuite/libgomp.fortran/collapse2.f90: New test.
8922         * testsuite/libgomp.fortran/collapse3.f90: New test.
8923         * testsuite/libgomp.fortran/collapse4.f90: New test.
8924         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
8925         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
8926         * testsuite/libgomp.fortran/lib4.f90: New test.
8927         * testsuite/libgomp.fortran/lock-1.f90: New test.
8928         * testsuite/libgomp.fortran/lock-2.f90: New test.
8929         * testsuite/libgomp.fortran/nested1.f90: New test.
8930         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
8931         * testsuite/libgomp.fortran/strassen.f90: New test.
8932         * testsuite/libgomp.fortran/tabs1.f90: New test.
8933         * testsuite/libgomp.fortran/tabs2.f: New test.
8934         * testsuite/libgomp.fortran/task1.f90: New test.
8935         * testsuite/libgomp.fortran/task2.f90: New test.
8936         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
8937         * testsuite/libgomp.fortran/vla5.f90: Likewise.
8938         * testsuite/libgomp.c/pr26943-2.c: Likewise.
8939         * testsuite/libgomp.c/pr26943-3.c: Likewise.
8940         * testsuite/libgomp.c/pr26943-4.c: Likewise.
8942 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
8944         PR c++/36308
8945         * testsuite/libgomp.c++/ctor-11.C: New test.
8946         * testsuite/libgomp.c++/ctor-12.C: New test.
8948 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
8950         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
8952 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
8954         PR middle-end/36106
8955         * testsuite/libgomp.c/atomic-5.c: New test.
8956         * testsuite/libgomp.c/atomic-6.c: New test.
8957         * testsuite/libgomp.c/autopar-1.c: New test.
8959 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8961         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
8962         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
8963         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
8964         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
8965         * configure: Regenerate.
8966         * Makefile.in, testsuite/Makefile.in: Likewise.
8968 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
8970         PR bootstrap/35457
8971         * aclocal.m4: Regenerate.
8972         * configure: Regenerate.
8974 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8976         PR middle-end/35611
8977         * testsuite/libgomp.c/atomic-4.c: New test.
8979         PR libgomp/35625
8980         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
8981         (gomp_iter_guided_next): Likewise.
8982         * testsuite/libgomp.c/pr35625.c: New test.
8984 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8986         * aclocal.m4: Regenerate.
8987         * configure: Likewise.
8988         * Makefile.in: Likewise.
8989         * testsuite/Makefile.in: Likewise.
8991 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8993         PR middle-end/35185
8994         * testsuite/libgomp.c++/pr35185.C: New test.
8996 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8998         PR middle-end/35549
8999         * testsuite/libgomp.c/pr35549.c: New test.
9001 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9003         * testsuite/libgomp.c/atomic-3.c: New test.
9005 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9007         PR fortran/33197
9008         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
9009         .F08 file suffixes.
9011 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
9013         PR libgomp/33131
9014         * configure.ac: Add ACX_HEADER_STRING.
9015         * env.c: Include strings.h.
9016         * aclocal.m4: Regenerate.
9017         * config.h.in: Regenerate.
9018         * configure: Regenerate.
9019         * Makefile.in: Regenerate.
9020         * testsuite/Makefile.in: Regenerate.
9022 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9024         PR middle-end/35196
9025         * testsuite/libgomp.c/pr35196.c: New test.
9027         PR middle-end/35130
9028         * testsuite/libgomp.fortran/pr35130.f90: New test.
9029         * testsuite/libgomp.c/pr35130.c: New test.
9031 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9033         PR middle-end/33880
9034         * testsuite/libgomp.c/pr33880.c: New test.
9035         * testsuite/libgomp.fortran/pr33880.f90: New test.
9037 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
9039         * configure: Regenerate.
9041 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9043         * configure.ac: Move futex checking into ../config/futex.m4.
9044         * configure: Rebuilt.
9045         * aclocal.m4: Rebuilt.
9046         * Makefile.in: Rebuilt.
9048         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
9049         2007-10-15 ../config/tls.m4 change.
9051 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
9053         PR c++/34513
9054         * testsuite/libgomp.c/pr34513.c: New test.
9055         * testsuite/libgomp.c++/pr34513.C: New test.
9057 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
9059         PR target/32765
9060         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
9062 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
9064         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
9066 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
9068         * testsuite/libgomp.c/private-1.c: New test.
9070 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
9071             Paolo Bonzini  <bonzini@gnu.org>
9073         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
9074         instead of 'VPATH ='.
9075         * Makefile.in: Regenerate.
9077 2007-11-23  Matthias Klose  <doko@ubuntu.com>
9079         * configure.ac: Adjust makeinfo version check.
9080         * configure: Regenerate.
9082 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
9084         PR fortran/34020
9085         * testsuite/libgomp.fortran/pr34020.f90: New test.
9087 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
9089         PR c++/33894
9090         * testsuite/libgomp.c++/atomic-1.C: New test.
9092 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
9094         PR libgomp/33275
9095         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
9096         Make x and y integers rather than (implicit) reals.  Add private (j)
9097         clause to the last omp parallel.
9099 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
9101         * configure: Regenerate following changes to ../config/tls.m4.
9103 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
9105         * testsuite/libgomp.fortran/stack.f90: New test.
9107 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
9109         * config/mingw32/proc.c: New file.
9111 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
9113         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
9114         (main): Use __get_cpuid to get i386 target fetaures.
9115         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
9116         (main): Use __get_cpuid to get x86_64 target fetaures.
9118 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
9120         PR target/32765
9121         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
9122         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
9124 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
9126         PR fortran/32550
9127         * testsuite/libgomp.fortran/pr32550.f90: New test.
9128         * testsuite/libgomp.fortran/crayptr2.f90: New test.
9130 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
9132         * aclocal.m4: Regenerated.
9134 2007-07-05  Tobias Burnus  <burnus@net-b.de>
9136         PR fortran/32359
9137         * testsuite/libgomp.fortran/pr32359.f90: New.
9139 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
9141         PR libgomp/32468
9142         * sections.c (GOMP_parallel_sections_start): Only decrease
9143         number of threads to COUNT if dyn_var is true.
9144         * testsuite/libgomp.c/pr32468.c: New test.
9146 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9148         PR libgomp/26308
9149         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
9151 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
9153         PR middle-end/32362
9154         * testsuite/libgomp.c/pr32362-1.c: New test.
9155         * testsuite/libgomp.c/pr32362-2.c: New test.
9156         * testsuite/libgomp.c/pr32362-3.c: New test.
9158 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
9160         * team.c (gomp_team_start): Fix setting up thread_attr
9161         stack size.
9163 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
9165         * configure: Regenerate.
9167 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
9169         * Makefile.in: Regenerate.
9170         * configure: Regenerate.
9171         * aclocal.m4: Regenerate.
9172         * testsuite/Makefile.in: Regenerate.
9174 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
9176         * config/linux/proc.c: New file.
9178         PR libgomp/28482
9179         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
9181 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
9183         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
9185 2007-04-16  Matthias Klose  <doko@debian.org>
9187         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
9188         flags if not building with -m64.
9189         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
9190         flag for i?86-*-* targets, if current target matches -m64.
9192 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
9194         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
9195         * Makefile.in: Regenerate.
9197 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9199         PR testsuite/31369
9200         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
9201         ld_library_path.
9202         * testsuite/libgomp.fortran/fortran.exp: Likewise.
9204 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
9206         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
9207         decls.
9208         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
9209         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
9210         (parse_affinity): New function.
9211         (initialize_env): Call it and gomp_init_affinity.
9212         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
9213         create new pthread_attr_t and call gomp_init_thread_affinity
9214         on it for each thread before passing the attribute to pthread_create.
9215         * config/linux/affinity.c: New file.
9216         * config/posix/affinity.c: New file.
9217         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
9218         * configure: Rebuilt.
9219         * config.h.in: Rebuilt.
9220         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
9221         * Makefile.in: Rebuilt.
9223 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
9225         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
9226         *-*-darwin*.
9227         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
9228         and use it if found.
9230 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
9232         * testsuite/config/default.exp: New file.
9233         * testsuite/lib/libgomp.exp: New file.
9234         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
9235         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
9236         load_lib *, load_gcc_lib *): Move to libgomp.exp.
9237         (libgomp_load): Remove.
9238         * testsuite/lib/libgomp.exp (libgomp_init): Compute
9239         always_ld_library_path, not ld_library_path.  Set additional_flags
9240         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
9241         (target_compile): Do not call libgomp_init.  Append lang_library_path
9242         and lang_link_flags to options.
9243         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
9244         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
9245         here.
9246         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
9247         always_ld_library_path.  Set LD_LIBRARY_PATH here.
9248         * testsuite/libgomp.fortran/fortran.exp: Ditto.
9249         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
9250         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
9251         CX8 flag.
9252         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
9253         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
9254         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
9255         * testsuite/libgomp.c/pr29947-1.c: Ditto.
9256         * testsuite/libgomp.c/atomic-10.c: Ditto.
9258 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
9260         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
9261         dg-final cleanup-modules line.
9262         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
9263         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
9264         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
9265         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
9266         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
9267         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
9268         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
9270 2007-03-18  Andreas Schwab  <schwab@suse.de>
9272         * acinclude.m4: Adjust regular expression for ld version
9273         extraction.
9274         * configure: Regenerate.
9276 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9278         * Makefile.am: Add install-pdf target as copied from
9279         automake v1.10 rules.
9280         * Makefile.in: Regenerate
9282 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
9284         PR libgomp/28486
9285         * configure: Regenerate.
9287         PR c++/30703
9288         * testsuite/libgomp.c++/pr30703.C: New test.
9290 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
9292         Revert:
9293         2006-07-05  Eric Christopher  <echristo@apple.com>
9294         * configure.ac: Depend addition of -pthread on host OS.
9295         * configure: Regenerate.
9297 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9299         * libgomp.texi: Fix spacing after abbreviations.
9301 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
9303         PR libgomp/30546
9304         * configure.ac: Add check for makeinfo
9305         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
9306         if an appropiate version of makeinfo is found.
9307         * aclocal.m4: Regenerated.
9308         * configure: Regenerated.
9309         * Makefile.in: Regenerated.
9310         * testsuite/Makefile.in: Regenerated.
9312 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
9314         PR libgomp/30540
9315         * libgomp.texi: More about implementation-dependent settings.
9317 2007-01-26  Tobias Burnus  <burnus@net-b.de>
9319         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
9321 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
9323         PR middle-end/30494
9324         * testsuite/libgomp.c/pr30494.c: New test.
9326 2007-01-15  Tom Tromey  <tromey@redhat.com>
9328         * configure: Rebuilt.
9329         * configure.ac: Fixed comment.
9331 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
9333         * libgomp.texi: Document implementation specific default values of
9334         environment variables.
9336 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
9338         PR libgomp/28209
9339         * libgomp.texi: New file.
9340         * configure.ac: Add --enable-generated-files-in-srcdir option.
9341         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
9342         files to srcdir.
9343         * Makefile.in: Regenerated.
9344         * config.h.in: Regenerated.
9345         * testsuite/Makefile.in: Regenerated.
9346         * NOTES: Removed.
9348 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
9350         PR libgomp/29949
9351         * env.c (omp_set_num_threads): Set illegal thread count to 1.
9353 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9355         * configure: Regenerate.
9357 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
9359         PR libgomp/29947
9360         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
9361         start if there shouldn't be any loop iterations.
9362         (gomp_loop_ordered_static_start): Remove start == end test.
9363         * testsuite/libgomp.c/pr29947-1.c: New test.
9364         * testsuite/libgomp.c/pr29947-2.c: New test.
9366 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9368         * configure.tgt: Force initial-exec TLS model on Linux only.
9370 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
9372         * configure: Regenerated.
9374 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
9376         * env.c (parse_schedule): Reject out of range values.
9377         (parse_unsigned_long): Reject out of range, negative or zero values.
9379 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
9381         PR fortran/29629
9382         * testsuite/libgomp.fortran/pr29629.f90: New test.
9384 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9386         PR libgomp/29494
9387         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
9388         * config/posix95: New directory.
9389         * config/posix95/omp-lock.h: New file.
9390         * config/posix95/lock.c: Likewise.
9392 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
9394         * aclocal.m4: Regenerate.
9395         * configure: Regenerate.
9397 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
9399         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
9400         '<' to '<='.
9402 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
9404         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
9405         test.
9406         * configure: Regenerate.
9407         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
9409 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
9411         PR middle-end/25261
9412         PR middle-end/28790
9413         * testsuite/libgomp.c/nestedfn-4.c: New test.
9414         * testsuite/libgomp.c/nestedfn-5.c: New test.
9415         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
9417         PR fortran/29097
9418         * testsuite/libgomp.fortran/condinc1.f: New test.
9419         * testsuite/libgomp.fortran/condinc2.f: New test.
9420         * testsuite/libgomp.fortran/condinc3.f90: New test.
9421         * testsuite/libgomp.fortran/condinc4.f90: New test.
9422         * testsuite/libgomp.fortran/condinc1.inc: New file.
9424 2006-09-18  Tom Tromey  <tromey@redhat.com>
9426         * configure: Rebuilt.
9428 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
9430         PR c/28768
9431         PR preprocessor/14634
9432         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
9433         to AC_DEFINE.
9434         * configure: Regenerate.
9436 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
9438         * testsuite/libgomp.fortran/reduction3.f90: Change
9439         -2147483648 to -huge(i)-1 to avoid overflow.
9440         * testsuite/libgomp.fortran/reduction4.f90: Change
9441         Z'ffffffff' to not(0) to avoid overflow.
9443 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
9445         PR libgomp/25938
9446         * Makefile.am (libsubincludedir): New.
9447         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
9448         * Makefile.in: Regenerate.
9450 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
9452         PR libgomp/28725
9453         * env.c: Include ctype.h.
9454         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
9455         leading and/or trailing whitespace and compare strings case
9456         insensitively.
9458 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
9460         PR fortran/28390
9461         * testsuite/libgomp.fortran/pr28390.f: New test.
9463 2006-07-05  Eric Christopher  <echristo@apple.com>
9465         * configure.ac: Depend addition of -pthread on host OS.
9466         * configure: Regenerate.
9468 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
9470         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
9471         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
9472         defined.
9474 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
9476         PR libgomp/26175
9477         PR libgomp/26477
9478         * configure.ac: If neither --enable-linux-futex nor
9479         --disable-linux-futex is passed, determine the default by checking
9480         for compiling and/or running against NPTL.  With --enable-linux-futex,
9481         check if SYS_gettid and SYS_futex are defined.
9482         * configure: Rebuilt.
9484 2006-06-14  Richard Henderson  <rth@redhat.com>
9486         PR libgomp/28008
9487         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
9488         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
9490 2006-06-09  Richard Henderson  <rth@redhat.com>
9492         * env.c (gomp_nthreads_var): Change to unsigned long.
9493         (gomp_run_sched_chunk): Likewise.
9494         (parse_unsigned_long): Rename from parse_num_threads and generalize.
9495         (initialize_env): Initialize gomp_thread_attr.
9496         * libgomp.h (gomp_nthreads_var): Update decl.
9497         (gomp_run_sched_chunk): Likewise.
9498         (gomp_thread_attr): Declare.
9499         * team.c (gomp_thread_attr): Export.
9500         (initialize_team): Don't initialize it.
9502 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
9504         PR fortran/27916
9505         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
9506         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
9508 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9510         * config/mingw32/time.c: New file.
9511         * configure.tgt: Use it.
9513 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
9515         * Makefile.am: Add install-html target. Add install-html to .PHONY
9516         * Makefile.in: Regenerate.
9518 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9520         PR libgomp/27612
9521         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
9522         * testsuite/libgomp.c/critical-1.c: Likewise.
9523         * testsuite/libgomp.c/loop-1.c: Likewise.
9524         * testsuite/libgomp.c/loop-2.c: Likewise.
9525         * testsuite/libgomp.c/single-1.c: Likewise.
9526         * testsuite/libgomp.c/ordered-1.c: Likewise.
9527         * testsuite/libgomp.c/ordered-2.c: Likewise.
9529 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
9531         PR middle-end/27416
9532         * libgomp.fortran/pr27416-1.f90: New test.
9534 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
9536         PR fortran/27395
9537         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
9538         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
9540 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
9542         PR c++/26943
9543         * testsuite/libgomp.c/pr26943-1.c: New test.
9544         * testsuite/libgomp.c/pr26943-2.c: New test.
9545         * testsuite/libgomp.c/pr26943-3.c: New test.
9546         * testsuite/libgomp.c/pr26943-4.c: New test.
9547         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
9548         * testsuite/libgomp.c++/pr26943.C: New test.
9550 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
9552         PR middle-end/27337
9553         * testsuite/libgomp.c++/pr27337.C: New test.
9555 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
9557         PR c/26171
9558         * testsuite/libgomp.c/pr26171.c: New test.
9560 2006-04-25  Richard Henderson  <rth@redhat.com>
9562         PR libgomp/25865
9563         * configure.ac: Use GCC_CHECK_TLS.
9564         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
9565         * Makefile.in, aclocal.m4, configure: Regenerate.
9567 2006-04-10  Matthias Klose  <doko@debian.org>
9569         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
9570         directory names containing underscores.
9572 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
9574         PR c++/26691
9575         * testsuite/libgomp.c++/pr26691.C: New test.
9577 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
9579         * testsuite/libgomp.fortran/retval2.f90: New test.
9581 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
9583         * testsuite/libgomp.c++: New directory.
9585 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
9587         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
9588         * config/posix/sem.c: Implement the above.
9590 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
9592         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
9593         define HAVE_BROKEN_POSIX_SEMAPHORES.
9594         * configure: Rebuilt.
9595         * config.h.in: Rebuilt.
9597 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9599         PR bootstrap/26161
9600         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
9601         for the other pthread check.
9602         * configure: Regenerate.
9603         * config.h.in: Regenerate.
9605 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
9607         PR libgomp/25938
9608         PR libgomp/25984
9609         * Makefile.am (fincludedir): New variable.
9610         (nodist_include_HEADERS): Remove Fortran files.
9611         (nodist_finclude_HEADERS): New variable.
9612         * Makefile.in: Regenerated.
9614 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
9616         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
9617         Remove tests for returning assumed character length arrays.
9619 2006-02-12  Roger Sayle  <roger@eyesopen.com>
9620             John David Anglin  <dave@hiauly1.hia.nrc.ca>
9622         PR libgomp/25936
9623         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
9625 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
9627         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
9629 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9631         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
9632         part of LD_LIBRARY_PATH manually.
9634 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
9636         PR libgomp/25852
9637         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
9638         libgomp_init.
9640 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
9642         PR libgomp/25884
9643         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
9644         * configure.ac (PERL): Don't set.
9645         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
9646         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
9647         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
9648         * omp.h.in: Wrap the new configure substitutions with @ characters.
9649         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
9650         * aclocal.m4, configure, Makefile.in: Regenerate.
9651         * mkomp_h.pl: Delete.
9653 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
9655         PR libgomp/25259
9656         * configure.ac: Use GCC_HEADER_STDINT.
9657         * libgomp.h: Include gstdint.h.
9658         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
9659         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
9661 2006-01-24  Richard Henderson  <rth@redhat.com>
9663         PR libgomp/25942
9664         * configure.ac: Add AM_MAINTAINER_MODE.
9665         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
9667 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
9669         * Makefile.in: Regenerate.
9670         * testsuite/Makefile.in: Regenerate.
9671         * aclocal.m4: Regenerate.
9673 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
9675         * config/posix/proc.c: Conditional include of sys/loadavg.h for
9676         Solaris.
9677         * configure.ac: Add check for loadavg.h.
9678         (link_gomp): Adjust comment.
9679         * configure: Regenerate.
9680         * config.h.in: Regenerate.
9682 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
9684         PR libgomp/25877
9685         * configure.ac: Remove check for alloca.h.
9686         * configure: Regenerate.
9687         * config.h.in: Regenerate.
9688         * libgomp.h: define gomp_alloca to be __builtin_alloca.
9689         * team.c: Remove use of alloca.h.
9690         Call gomp_alloca instead of alloca.
9692 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
9694         PR libgomp/25877
9695         * team.c: Add include of alloca.h.
9696         * configure.ac: Add check for alloca.h.
9697         * configure: Regenerate.
9698         * config.h.in: Regenerate.
9700 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
9702         PR fortran/25219
9703         * testsuite/libgomp.fortran/pr25219.f90: New test.
9705 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
9707         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
9708         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
9709         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
9710         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
9711         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
9712         testsuite/libgomp.fortran/threadprivate1.f90,
9713         testsuite/libgomp.fortran/threadprivate2.f90,
9714         testsuite/libgomp.fortran/threadprivate3.f90,
9715         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
9716         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
9717         testsuite/libgomp.fortran/omp_parse3.f90: Change required
9718         effective-target to TLS runtime.
9720         * testsuite/libgomp.fortran/pr25162.f: Require
9721         effective-target TLS runtime.
9723 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
9725         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
9726         * testsuite/libgomp.c/nestedfn-3.c: New test.
9728 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
9730         PR fortran/25162
9731         * testsuite/libgomp.fortran/pr25162.f: New test.
9733 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
9735         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
9736         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
9738 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
9740         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
9741         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
9742         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
9743         single.c, team.c, work.c, config/linux/alpha/futex.h,
9744         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
9745         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
9746         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
9747         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
9748         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
9749         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
9750         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
9751         FSF address.
9753 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
9755         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
9756         to nodist_noinst_HEADERS.
9757         * Makefile.in: Rebuilt.
9759         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
9760         add integer count field.
9761         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
9762         omp_nest_lock_t type change.
9763         (omp_init_nest_lock): Likewise.  Initialize count to 0.
9764         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
9765         Increment count.
9766         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
9767         Decrement count.
9768         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
9769         Increment count if successful and return the new nesting level.
9770         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
9771         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
9772         * testsuite/libgomp.c/lib-1.c: New test.
9773         * testsuite/libgomp.fortran/lib1.f90: New test.
9774         * testsuite/libgomp.fortran/lib2.f: New test.
9775         * testsuite/libgomp.fortran/lib3.f: New test.
9777 2005-11-17  Richard Henderson  <rth@redhat.com>
9779         PR 24845
9780         * Makefile.am (nodist_toolexeclib_HEADERS): New.
9781         * configure.ac (link_gomp): New.  Substitute it.
9782         (AC_CONFIG_FILES): Add libgomp.spec.
9783         * libgomp.spec.in: New file.
9784         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
9785         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
9787 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
9789         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
9790         reduction(-:var) behaving the same as reduction(+:var).
9791         * testsuite/libgomp.c/reduction-4.c: New test.
9793 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
9795         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
9796         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
9797         testsuite/libgomp.c/copyin-3.c,
9798         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
9799         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
9800         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
9801         testsuite/libgomp.c++/pr24455.C,
9802         testsuite/libgomp.fortran/threadprivate1.f90,
9803         testsuite/libgomp.fortran/threadprivate2.f90,
9804         testsuite/libgomp.fortran/threadprivate3.f90,
9805         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
9806         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
9807         testsuite/libgomp.fortran/omp_parse3.f90: Require
9808         effective-target TLS.
9810 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
9812         * HEADER: Remove.
9814 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
9816         PR libgomp/24797
9817         * team.c (initialize_team): Pass NULL rather than free as
9818         pthread_key_create destructor.  Initialize thread specific data
9819         pointer in initial thread to a static local variable rather than
9820         malloced memory.
9822 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
9824         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
9825         its location to ld_library_path.
9827 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
9829         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
9831 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
9833         * testsuite/libgomp.c: Rename from libgomp.dg.
9835 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
9837         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
9838         threadprivate variable 'i'.
9840 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
9842         * config/linux/s390/futex.h: New file.
9843         * configure.tgt: Use it.
9845         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
9846         before the parallel.
9848 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
9850         PR c++/24734
9851         * testsuite/libgomp.c++/master-1.C: New test.
9853 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
9855         * testsuite/libgomp.dg/copyin-3.c: New test.
9857 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
9859         * testsuite/libgomp.fortran/retval1.f90: New test.
9860         * testsuite/libgomp.fortran/vla7.f90: New test.
9862 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
9864         * testsuite/libgomp.fortran/vla2.f90: New test.
9865         * testsuite/libgomp.fortran/vla3.f90: New test.
9866         * testsuite/libgomp.fortran/vla4.f90: New test.
9867         * testsuite/libgomp.fortran/vla5.f90: New test.
9868         * testsuite/libgomp.fortran/vla6.f90: New test.
9870 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
9872         * config/linux/sparc/futex.h: New file.
9873         * configure.tgt: Use it.
9874         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
9876         * critical.c: Include stdlib.h.
9877         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
9878         ignoring return value.
9879         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
9880         LIBGOMP_CHECK_SYNC_BUILTINS check.
9881         * configure: Rebuilt.
9883 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
9885         * testsuite/libgomp.fortran/vla1.f90: New test.
9887 2005-10-31  Richard Henderson  <rth@redhat.com>
9889         * testsuite/libgomp.fortran/character2.f90: Fix race condition
9890         setting 's' in different threads.
9892 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
9894         * libgomp.h (attribute_hidden, ialias): Define.
9895         * config/posix/proc.c (omp_get_num_procs): Add ialias.
9896         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
9897         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
9898         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
9899         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
9900         omp_test_lock, omp_test_nest_lock): Likewise.
9901         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
9902         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
9903         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
9904         omp_test_lock, omp_test_nest_lock): Likewise.
9905         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
9906         omp_get_dynamic, omp_get_nested): Likewise.
9907         * parallel.c (omp_get_num_threads, omp_get_max_threads,
9908         omp_get_thread_num, omp_in_parallel): Likewise.
9909         * fortran.c (ialias_redirect): Define.
9910         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
9911         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
9912         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
9913         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
9914         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
9915         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
9916         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
9917         omp_get_wtime): Add ialias_redirect.
9919 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
9921         * fortran.c: Include stdlib.h.
9923 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
9925         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
9926         * Makefile.in: Regenerated.
9928 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
9930         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
9931         * libgomp_f.h.in (omp_check_defines): New function.
9932         * env.c: Include libgomp_f.h.
9933         (initialize_env): Call omp_check_defines.
9935         * testsuite/libgomp.dg/copyin-2.c: New test.
9936         * testsuite/libgomp.c++/copyin-2.C: New test.
9937         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
9939         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
9940         * testsuite/libgomp.fortran/sharing2.f90: New test.
9942         * testsuite/libgomp.dg/copyin-1.c: New test.
9943         * testsuite/libgomp.c++/copyin-1.C: New test.
9945 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
9947         * testsuite/libgomp.fortran/crayptr1.f90: New test.
9949         * testsuite/libgomp.fortran/workshare1.f90: New test.
9951         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
9952         only test.
9953         * libgomp.fortran/sharing1.f90: New test.
9955 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
9957         PR c++/24502
9958         * testsuite/libgomp.c++/loop-7.C: New test.
9960         * testsuite/libgomp.dg/nestedfn-2.c: New test.
9962         * testsuite/libgomp.dg/nestedfn-1.c: New test.
9963         * testsuite/libgomp.fortran/reduction6.f90: New test.
9964         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
9966 2005-10-23  Richard Henderson  <rth@redhat.com>
9968         * testsuite/libgomp.c++/ctor-1.C: New.
9969         * testsuite/libgomp.c++/ctor-2.C: New.
9970         * testsuite/libgomp.c++/ctor-3.C: New.
9971         * testsuite/libgomp.c++/ctor-4.C: New.
9972         * testsuite/libgomp.c++/ctor-5.C: New.
9973         * testsuite/libgomp.c++/ctor-6.C: New.
9974         * testsuite/libgomp.c++/ctor-7.C: New.
9975         * testsuite/libgomp.c++/ctor-8.C: New.
9976         * testsuite/libgomp.c++/ctor-9.C: New.
9978 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
9980         PR 24455
9981         * testsuite/libgomp.c++/pr24455-1.C: New test.
9982         * testsuite/libgomp.c++/pr24455.C: New test.
9983         * testsuite/libgomp.dg/pr24455-1.c: New test.
9984         * testsuite/libgomp.dg/pr24455.c: New test.
9986 2005-10-20  Richard Henderson  <rth@redhat.com>
9988         * testsuite/libgomp.c++/loop-6.C: New.
9989         * testsuite/libgomp.dg/loop-3.c: New.
9991 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
9993         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
9994         explicitly private.
9995         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
9996         explicitly shared.
9998 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
10000         * testsuite/libgomp.fortran/jacobi.f: New test.
10002 2005-10-19  Richard Henderson  <rth@redhat.com>
10004         * configure.tgt (i?86-linux): Default to with_arch instead of
10005         CFLAGS.  Add -mtune to match target_cpu.
10006         (x86_64-linux): Tune to i686.
10008         * fortran.c (omp_test_nest_lock_): Fix typo.
10010 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
10012         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
10013         gomp_ordered_sync): Do nothing if team->nthreads == 1.
10014         * testsuite/libgomp.dg/ordered-3.c: New test.
10016         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
10017         Remove volatile keyword.
10019         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
10020         in COMMON block to avoid warnings on 64-bit targets.
10022 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
10024         * testsuite/libgomp.dg/shared-3.c: New test.
10026 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
10028         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
10029         * testsuite/libgomp.fortran/reduction5.f90: New test.
10031 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
10033         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
10034         dg-options.
10035         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
10036         flush loop now that __sync_synchronize has proper memory barrier.
10037         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
10038         Add -ffixed-form to dg-options.
10040 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
10042         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
10043         from subdirectories.
10044         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
10045         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
10046         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
10047         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
10048         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
10049         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
10050         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
10051         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
10052         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
10053         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
10054         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
10055         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
10056         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
10057         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
10058         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
10059         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
10060         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
10061         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
10062         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
10063         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
10064         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
10065         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
10066         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
10067         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
10068         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
10070 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
10072         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
10073         lang_library_path exists.  Use find instead of glob to gather tests.
10074         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
10076 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
10078         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
10079         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
10080         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
10081         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
10082         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
10083         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
10084         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
10085         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
10086         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
10087         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
10088         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
10089         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
10090         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
10092 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
10094         * testsuite/libgomp.dg/vla-1.c: New test.
10096         * testsuite/libgomp.fortran/reference2.f90: New test.
10098         * testsuite/libgomp.fortran/character2.f90: Remove explicit
10099         declaration of omp_get_thread_num.
10100         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
10101         use omp_lib.
10103         * testsuite/libgomp.fortran/reduction1.f90: New test.
10104         * testsuite/libgomp.fortran/reduction2.f90: New test.
10105         * testsuite/libgomp.fortran/reduction3.f90: New test.
10106         * testsuite/libgomp.fortran/reduction4.f90: New test.
10108 2005-10-13  Richard Henderson  <rth@redhat.com>
10110         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
10111         * Makefile.in: Regenerate.
10112         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
10113         * libgomp.h: Include bar.h.
10114         (struct gomp_barrier): Remove.
10115         (struct gomp_team): Add barrier.  Replace master_barrier with
10116         master_release.  Replace threads with ordered_release.
10117         (struct gomp_thread): Replace barrier with release.
10118         * ordered.c (gomp_ordered_first): Update for ordered_release change.
10119         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
10120         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
10121         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
10122         (GOMP_single_copy_end): Likewise.
10123         * team.c (gomp_threads_dock): New.
10124         (gomp_barrier_init, gomp_barrier_destroy): Remove.
10125         (gomp_thread_start): Use gomp_barrier_wait.
10126         (new_team, free_team): Update for gomp_team changes.
10127         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
10128         (gomp_team_end): Use gomp_barrier_wait.
10129         (initialize_team): Update for gomp_thread changes.
10130         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
10131         (gomp_work_share_end_nowait): Use atomic ops when available.
10132         * config/linux/bar.c, config/linux/bar.h: New files.
10133         * config/posix/bar.c, config/posix/bar.h: New files.
10135 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
10137         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
10138         * testsuite/libgomp.dg/single-2.c: New test.
10140         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
10141         lang_link_flags): Unset, so that they aren't inherited from previously
10142         sourced *.exp.
10144         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
10146 2005-10-12  Richard Henderson  <rth@redhat.com>
10148         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
10149         (libgomp_init): Use lang_test_file, lang_library_path, and
10150         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
10152         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
10153         (lang_test_file, lang_link_flags): New.
10154         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
10156         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
10157         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
10158         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
10159         testsuite/libgomp.c++/parallel-1.C,
10160         testsuite/libgomp.c++/reduction-1.C,
10161         testsuite/libgomp.c++/reduction-2.C,
10162         testsuite/libgomp.c++/reduction-3.C,
10163         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
10164         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
10165         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
10166         New files, largely cribbed from the C testsuite.
10168 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
10170         * testsuite/libgomp.fortran/character1.f90: New test.
10171         * testsuite/libgomp.fortran/character2.f90: New test.
10173         * testsuite/libgomp.dg/nested-1.c: New test.
10174         * testsuite/libgomp.dg/nested-2.c: New test.
10175         * testsuite/libgomp.fortran/do1.f90: New test.
10176         * testsuite/libgomp.fortran/do2.f90: New test.
10178         * testsuite/libgomp.fortran/reference1.f90: New test.
10180 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
10182         * testsuite/libgomp.dg/reduction-1.c: New test.
10183         * testsuite/libgomp.dg/reduction-2.c: New test.
10184         * testsuite/libgomp.dg/reduction-3.c: New test.
10186 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
10188         * testsuite/libgomp.dg/atomic-1.c: New test.
10189         * testsuite/libgomp.dg/atomic-2.c: New test.
10191 2005-10-09  Richard Henderson  <rth@redhat.com>
10193         * critical.c (atomic_lock): New.
10194         (initialize_critical): Initialize it.
10195         (GOMP_atomic_start, GOMP_atomic_end): New.
10196         * libgomp.map: Export them.
10197         * libgomp_g.h: Declare them.
10199         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
10201 2005-10-02  Richard Henderson  <rth@redhat.com>
10203         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
10204         to XCFLAGS instead of CFLAGS.
10206 2005-09-30  Richard Henderson  <rth@redhat.com>
10208         * configure.ac: Determine whether -pthread or -lpthread is needed.
10209         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
10210         * Makefine.in, configure: Rebuild.
10212 2005-09-28  Richard Henderson  <rth@redhat.com>
10214         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
10215         * testsuite/libgomp.dg/omp-single-3.c: New test.
10217 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
10219         * testsuite/libgomp.dg/omp-single-2.c: New test.
10220         * testsuite/libgomp.dg/shared-2.c: Fix return code.
10222 2005-09-27  Richard Henderson  <rth@redhat.com>
10224         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
10225         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
10227 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
10229         * testsuite/libgomp.dg/omp-loop03.c: New test.
10231 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
10233         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
10235 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
10237         * testsuite/libgomp.dg/omp-single-1.c: New test.
10238         * testsuite/libgomp.dg/shared-1.c: Return 0.
10239         Add prototype for abort.
10240         * testsuite/libgomp.dg/shared-2.c: Likewise.
10242 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
10244         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
10245         constructs.
10247 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
10249         * testsuite/libgomp.dg/shared-1.c: New test.
10250         * testsuite/libgomp.dg/shared-2.c: New test.
10252 2005-09-24  Richard Henderson  <rth@redhat.com>
10254         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
10256 2005-09-24  Richard Henderson  <rth@redhat.com>
10258         * iter.c (gomp_iter_static_next): Round up when computing number
10259         of iterations.  Don't bother distributing a remainder equally.
10261         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
10262         Don't call srand.  Zero b before testing.
10263         (main): New.
10265 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
10267         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
10268         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
10270 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
10272         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
10273         without !$omp end do, followed immediately by subroutine end.
10275 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
10277         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
10279 2005-09-22  Richard Henderson  <rth@redhat.com>
10281         * critical.c (GOMP_critical_name_start): Change argument to void**.
10282         Reuse the pointer space if the mutex fits.
10283         (GOMP_critical_name_end): Likewise.
10284         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
10285         * libgomp_g.h (GOMP_critical_name_start): Update decl.
10286         (GOMP_critical_name_end): Likewise.
10287         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
10288         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
10290 2005-09-20  Richard Henderson  <rth@redhat.com>
10292         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
10293         (create_lock_lock): New.
10294         (initialize_critical): Initialize it.
10295         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
10296         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
10298 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
10300         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
10302 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
10304         * testsuite/libgomp.dg/omp-loop01.c: New test.
10305         * testsuite/libgomp.dg/omp-loop02.c: New test.
10307 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
10309         * configure.ac (AC_PROG_FC): Add.
10310         (USE_FORTRAN): New automake conditional.
10311         * configure: Rebuilt.
10312         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
10313         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
10314         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
10315         Add rules to build them.
10316         * Makefile.in: Rebuilt.
10317         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
10318         OMP_NEST_LOCK_KIND.
10319         * libgomp.map: Add Fortran wrappers.
10320         * libgomp_f.h.in: New file.
10321         * omp_lib.h.in: New file.
10322         * omp_lib.f90.in: New file.
10323         * fortran.c: New file.
10324         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
10325         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
10326         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
10327         libgfortran has been built.
10328         * testsuite/libgomp.fortran/fortran.exp: New file.
10329         * testsuite/libgomp.fortran/omp_cond1.f: New test.
10330         * testsuite/libgomp.fortran/omp_cond2.f: New test.
10331         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
10332         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
10333         * testsuite/libgomp.fortran/omp_hello.f: New test.
10334         * testsuite/libgomp.fortran/omp_orphan.f: New test.
10335         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
10336         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
10337         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
10338         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
10339         * testsuite/libgomp.fortran/omp_reduction.f: New test.
10340         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
10341         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
10343 2005-08-30  Richard Henderson  <rth@redhat.com>
10345         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
10346         function for when aliases are not usable.
10347         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
10348         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
10349         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
10350         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
10351         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
10352         GOMP_loop_ordered_guided_next): Likewise.
10353         * ordered.c (GOMP_ordered_start): Likewise.
10355 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
10357         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
10358         * testsuite/libgomp.dg/omp_hello.c: Fix return code
10359         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
10360         * testsuite/libgomp.dg/omp_orphan.c: Likewise
10361         * testsuite/libgomp.dg/omp_reduction.c: Likewise
10362         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
10363         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
10364         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
10365         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
10367 2005-07-07  Eric Christopher  <echristo@redhat.com>
10368             Diego Novillo  <dnovillo@redhat.com>
10370         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
10371         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
10372         up code.
10373         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
10374         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
10375         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
10376         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
10377         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
10378         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
10379         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
10381 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
10383         * TOPLEVEL.patch: Remove.
10385 2005-05-16  Richard Henderson  <rth@redhat.com>
10387         * configure.ac: Test for clock_gettime.
10388         * config.h.in, configure: Rebuild.
10389         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
10390         (omp_get_wtime): Use clock_gettime if available.
10391         (omp_get_wtick): Use clock_getres if available.
10393 2005-05-11  Richard Henderson  <rth@redhat.com>
10395         * config/linux/ia64/futex.h: New file.
10396         * configure.tgt: Use it.
10398         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
10400 2005-05-07  Richard Henderson  <rth@redhat.com>
10402         * config/linux/powerpc/futex.h: New file.
10403         * configure.tgt: Use it.
10405         * config/linux/i486/futex.h: Merge ...
10406         * config/linux/x86_64/futex.h: ... into ...
10407         * config/linux/x86/futex.h: ... here.
10408         * configure.tgt: Update to match.
10410 2005-05-06  Richard Henderson  <rth@redhat.com>
10412         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
10413         * config/linux/i486/futex.h: Likewise.
10414         * config/linux/x86_64/futex.h: Likewise.
10416         * config/linux/lock.c: New file.
10417         * config/linux/omp-lock.h: New file.
10419         * critical.c, env.h: Don't include omp.h
10420         * config/posix/lock.c: Include libgomp.h instead of omp.h.
10421         * config/posix/time.c: Likewise.
10422         * config/posix/omp-lock.h: New file.
10423         * libgomp.h: Include omp-lock.h and omp.h.
10424         * Makefile.am (nodist_include_HEADERS): New.
10425         (omp.h): New rule.
10426         * configure.ac (PERL): New.
10427         * mkomp_h.pl: New file.
10428         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
10429         with templates.
10430         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
10432         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
10433         build directory.  Re-add -march=i486 hack.
10435         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
10436         (libgomp_link_flags): Remove.
10437         (libgomp_initialized): Remove.
10438         (libgomp_init): Don't protect from reinitialization.  Copy code
10439         from libstdc++ for getting the multilib set correctly.
10441 2005-05-05  Richard Henderson  <rth@redhat.com>
10443         * config/linux/alpha/futex.h: New file.
10444         * configure.tgt (alpha*-*-linux*): Use it.
10446         * config/posix/mutex.c: New file.
10447         * config/posix/sem.c: Use libgomp.h.
10449         * configure.tgt (x86_64-linux): Also test CC for -m32.
10450         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
10452         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
10453         after $gccpath.
10455         * Makefile.am (SUBDIRS): New.
10456         (libgomp_la_LDFLAGS): Add -lpthread.
10457         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
10458         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
10460         * libgomp_g.h: New file.
10461         * libgomp.h: Split out all public declarations to libgomp_g.h.
10462         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
10463         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
10464         * config/linux/sem.h: Likewise.
10465         * config/posix/sem.h: Likewise.
10467         * Makefile.am (AM_LDFLAGS): New.
10468         (libgomp_version_script): Split out from ...
10469         (libgomp_la_LDFLAGS): ... here.
10470         (libgomp_version_info): New.
10471         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
10472         (LIBGOMP_ENABLE): New.
10473         (LIBGOMP_CHECK_LINKER_FEATURES): New.
10474         (LIBGOMP_ENABLE_SYMVERS): New.
10475         * configure.ac (AC_INIT): Version 1.0.
10476         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
10477         (enable-linux-futex): Likewise.  Rename from enable-futex.
10478         (libtool_VERSION): New.
10479         (LIBGOMP_ENABLE_SYMVERS): Use it.
10480         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
10481         * Makefile.in, aclocal.m4, configure: Rebuild.
10483         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
10484         (gomp_mutex_unlock_slow): Fix typo.
10485         * config/linux/sem.c: Similarly.
10486         (gomp_sem_post_slow): Fix typo.
10487         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
10488         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
10489         [__PIC__] (sys_futex0): Don't use tmp output in asm.
10491         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
10492         (libgomp_la_LDFLAGS): Add top_srcdir to path.
10493         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
10494         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
10495         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
10496         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
10497         LDFLAGS.  Pull enable_futex check to top-level.
10498         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
10499         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
10501         First attempt at real configury.
10502         * Makefile, config.h: Remove file.
10503         * Makefile.am, Makefile.in: New file.
10504         * acinclude.m4 aclocal.m4: New file.
10505         * configure.ac, configure.tgt, configure: New file.
10507         * config/posix/lock.c: Rename from sys-lock.c.
10508         * config/posix/mutex.h: Rename from sys-mutex.h.
10509         * config/posix/sem.c: Rename from sys-sem.c.
10510         * config/posix/sem.h: Rename from sys-sem.h.
10511         * config/posix/proc.c: Rename from sys-proc.c.
10512         * config/posix/time.c: Rename from sys-proc.c.
10514         * config/linux/mutex.c: New file.
10515         * config/linux/mutex.h: New file.
10516         * config/linux/sem.c: New file.
10517         * config/linux/sem.h: New file.
10518         * config/linux/i486/futex.h: New file.
10519         * config/linux/x86_64/futex.h: New file.
10521 2005-05-04  Richard Henderson  <rth@redhat.com>
10523         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
10524         * libgomp.h: Declare them.
10525         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
10526         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
10528 2005-05-04  Richard Henderson  <rth@redhat.com>
10530         * libgomp-1 code drop
10532 2005-05-04  Richard Henderson  <rth@redhat.com>
10534         * iter.c (gomp_iter_static_next): Return tri-state on 0.
10535         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
10536         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
10537         (gomp_iter_static_next): Update.
10538         (gomp_ordered_static_next): Update.
10539         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
10540         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
10541         totally empty range.
10542         (gomp_loop_ordered_static_next): Refine test for calling
10543         gomp_ordered_static_next.
10544         * testsuite/ordered-1.c: Add case for more threads than iterations.
10546         * iter.c (gomp_iter_runtime_next_locked): Remove.
10547         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
10548         gomp_loop_guided_start, gomp_loop_ordered_static_start,
10549         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
10550         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
10551         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
10552         gomp_loop_ordered_guided_next): Downcase name, make static, add
10553         an external alias with the old name.
10554         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
10555         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
10556         switch and call one of the above static functions.
10557         * libgomp.h: Update.
10559         * work.c (gomp_work_share_start): Lock the mutex for !first too.
10560         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
10561         GOMP_loop_guided_start, GOMP_loop_runtime_start,
10562         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
10563         GOMP_loop_ordered_guided_start): Update to match.
10564         * sections.c (GOMP_sections_start): Likewise.
10565         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
10567         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
10568         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
10569         Use bounds check instead of modulus.
10570         (gomp_ordered_sync): Split out of GOMP_ordered_start.
10571         (gomp_ordered_last): Don't sync with ordered_owner here.
10572         (gomp_ordered_next): Likewise.
10573         (gomp_ordered_static_loop_next): Likewise.
10574         * loop.c, libgomp.h: Update to match.
10576         * libgomp.h (GOMP_barrier): Declare.
10578         * testsuite/barrier-1.c: New file.
10579         * testsuite/critical-1.c: New file.
10580         * testsuite/ordered-2.c: New file.
10581         * testsuite/ordered-1.c: New file.
10582         * testsuite/sections-1.c: New file.
10583         * testsuite/single-1.c: New file.
10584         * testsuite/Makefile (TESTS): Add them.
10586 2005-05-04  Richard Henderson  <rth@redhat.com>
10588         * libgomp.h (struct gomp_work_share): Add ordered_owner.
10589         * loop.c (GOMP_loop_static_start): If not the startup thread,
10590         acquire the mutex to wait for initialization complete.
10591         (GOMP_loop_ordered_static_start): Likewise.
10592         (GOMP_loop_ordered_runtime_start): Likewise.
10593         (GOMP_loop_ordered_static_first): Remove.
10594         (GOMP_loop_ordered_dynamic_first): Remove.
10595         (GOMP_loop_ordered_guided_first): Remove.
10596         (GOMP_loop_ordered_runtime_first): Remove.
10597         * ordered.c (gomp_ordered_loop_first): Post to own release when
10598         we're the first thread.
10599         (gomp_ordered_loop_last): Wait on release if not owner.
10600         (gomp_ordered_loop_next): Likewise.
10601         (gomp_ordered_static_loop_init): New.
10602         (gomp_ordered_static_loop_next): Use ordered_owner.
10603         (GOMP_ordered_start): Likewise.
10604         * work.c (gomp_new_work_share): Initialize ordered_owner.
10606 2005-05-03  Richard Henderson  <rth@redhat.com>
10608         * Makefile (OPT): New.
10609         (CFLAGS): Use it.
10611         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
10612         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
10613         * libgomp.h, libgomp.map, NOTES: Update to match.
10615         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
10616         Add initialized and thr members.
10617         (gomp_thread_start): Pause when initially spawned to wait for
10618         the whole team to be created.
10619         (gomp_team_start): Release team members at the end.
10621         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
10622         (f_foo_1): Use GOMP_loop_end.
10623         (f_foo_2): Use GOMP_loop_end_nowait.
10625         * testsuite/loop-2.c: New file.
10626         * testsuite/Makefile (TESTS): Add it.
10628 2005-05-03  Richard Henderson  <rth@redhat.com>
10630         * iter.c (gomp_iter_static_next): Fix overflow check typo.
10631         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
10632         * team.c (new_team): Initialize oldest_live_gen to 1 if no
10633         initial work_share.
10635         * testsuite/Makefile: New file.
10636         * testsuite/loop-1.c: New file.
10638 2005-05-03  Richard Henderson  <rth@redhat.com>
10640         Initial implementation and checkin.
10642 Copyright (C) 2005-2018 Free Software Foundation, Inc.
10644 Copying and distribution of this file, with or without modification,
10645 are permitted in any medium without royalty provided the copyright
10646 notice and this notice are preserved.