2018-11-11 Richard Biener <rguenther@suse.de>
[official-gcc.git] / libgomp / ChangeLog
blob0b5d2e30d058ce6823157a6660a9e9c67b65c25d
1 2018-11-09  Jakub Jelinek  <jakub@redhat.com>
3         * affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H.
4         (gomp_display_affinity): Use __builtin_choose_expr to handle
5         properly handle argument having integral, or pointer or some other
6         type.  If inttypes.h is available and PRIx64 is defined, use PRIx64
7         with uint64_t type instead of %llx and unsigned long long.
9         * testsuite/libgomp.c-c++-common/task-reduction-13.c: New test.
10         * testsuite/libgomp.c-c++-common/task-reduction-14.c: New test.
12 2018-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14         * affinity.c: Include <string.h>, <stdio.h>.
15         (gomp_display_affinity_place): Remove cpusetp.
16         * teams.c: Include <limits.h>.
18 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
20         * testsuite/libgomp.c-c++-common/task-reduction-8.c (bar): Add
21         in_reduction clause for s[0].
23         * affinity.c (gomp_display_affinity_place): New function.
24         * affinity-fmt.c: New file.
25         * alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
26         * config/linux/affinity.c (gomp_display_affinity_place): New function.
27         * config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
28         Move these functions to ...
29         * config/nvptx/teams.c: ... here.  New file.
30         * config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
31         New functions.
32         * config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
33         functions.
34         * configure.ac: Check for aligned_alloc, posix_memalign, memalign
35         and _aligned_malloc.
36         (HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
37         * configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
38         * env.c (gomp_display_affinity_var, gomp_affinity_format_var,
39         gomp_affinity_format_len): New variables.
40         (parse_schedule): Parse monotonic and nonmonotonic modifiers in
41         OMP_SCHEDULE variable.  Set GFS_MONOTONIC for monotonic schedules.
42         (handle_omp_display_env): Display monotonic/nonmonotonic schedule
43         modifiers.  Display (non-default) chunk sizes.  Print
44         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
45         (initialize_env): Don't call pthread_attr_setdetachstate.  Handle
46         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
47         * fortran.c: Include stdio.h and string.h.
48         (omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
49         (omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
50         (omp_set_affinity_format_, omp_get_affinity_format_,
51         omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
52         omp_pause_resource_all_): New functions.
53         * icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
54         switch.
55         * icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
56         functions to ...
57         * teams.c: ... here.  New file.
58         * libgomp_g.h: Include gstdint.h.
59         (GOMP_loop_nonmonotonic_runtime_start,
60         GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
61         GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
62         GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
63         GOMP_parallel_loop_nonmonotonic_runtime,
64         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
65         GOMP_loop_ull_nonmonotonic_runtime_start,
66         GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
67         GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
68         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
69         GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
70         GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
71         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
72         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
73         GOMP_teams_reg): Declare.
74         * libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
75         gomp_aligned_alloc uses fallback implementation.
76         (gomp_aligned_alloc, gomp_aligned_free): Declare.
77         (enum gomp_schedule_type): Add GFS_MONOTONIC.
78         (struct gomp_doacross_work_share): Add extra field.
79         (struct gomp_work_share): Add task_reductions field.
80         (struct gomp_taskgroup): Add workshare and reductions fields.
81         (GOMP_NEEDS_THREAD_HANDLE): Define if needed.
82         (gomp_thread_handle): New typedef.
83         (gomp_display_affinity_place, gomp_set_affinity_format,
84         gomp_display_string, gomp_display_affinity,
85         gomp_display_affinity_thread): Declare.
86         (gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
87         (gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
88         gomp_workshare_task_reduction_register): Declare.
89         (gomp_team_start): Add taskgroup argument.
90         (gomp_pause_host): Declare.
91         (gomp_init_work_share, gomp_work_share_start): Change bool argument
92         to size_t.
93         (gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
94         * libgomp.map (GOMP_5.0): Export GOMP_loop_start,
95         GOMP_loop_ordered_start, GOMP_loop_doacross_start,
96         GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
97         GOMP_loop_ull_doacross_start,
98         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
99         GOMP_loop_maybe_nonmonotonic_runtime_next,
100         GOMP_loop_maybe_nonmonotonic_runtime_start,
101         GOMP_loop_nonmonotonic_runtime_next,
102         GOMP_loop_nonmonotonic_runtime_start,
103         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
104         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
105         GOMP_loop_ull_nonmonotonic_runtime_next,
106         GOMP_loop_ull_nonmonotonic_runtime_start,
107         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
108         GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
109         GOMP_taskgroup_reduction_register,
110         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
111         GOMP_teams_reg and GOMP_taskwait_depend.
112         (OMP_5.0): Export omp_pause_resource{,_all}{,_},
113         omp_{capture,display}_affinity{,_}, and
114         omp_[gs]et_affinity_format{,_}.
115         * loop.c: Include string.h.
116         (GOMP_loop_runtime_next): Add ialias.
117         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
118         (gomp_loop_static_start, gomp_loop_dynamic_start,
119         gomp_loop_guided_start, gomp_loop_ordered_static_start,
120         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
121         gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
122         gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
123         or gomp_doacross_init callers.
124         (gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
125         GOMP_loop_doacross_start): New functions.
126         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
127         GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
128         Mask off GFS_MONOTONIC bit.
129         (GOMP_loop_maybe_nonmonotonic_runtime_next,
130         GOMP_loop_maybe_nonmonotonic_runtime_start,
131         GOMP_loop_nonmonotonic_runtime_next,
132         GOMP_loop_nonmonotonic_runtime_start,
133         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
134         GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
135         functions.
136         (gomp_parallel_loop_start): Pass NULL as taskgroup to
137         gomp_team_start.
138         * loop_ull.c: Include string.h.
139         (GOMP_loop_ull_runtime_next): Add ialias.
140         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
141         (gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
142         gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
143         gomp_loop_ull_ordered_dynamic_start,
144         gomp_loop_ull_ordered_guided_start,
145         gomp_loop_ull_doacross_static_start,
146         gomp_loop_ull_doacross_dynamic_start,
147         gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
148         and gomp_doacross_ull_init callers.
149         (gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
150         GOMP_loop_ull_doacross_start): New functions.
151         (GOMP_loop_ull_runtime_start,
152         GOMP_loop_ull_ordered_runtime_start,
153         GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
154         (GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
155         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
156         GOMP_loop_ull_nonmonotonic_runtime_next,
157         GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
158         * Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
159         * omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
160         (omp_pause_resource_t, omp_depend_t): New typedefs.
161         (enum omp_lock_hint_t): Renamed to ...
162         (enum omp_sync_hint_t): ... this.  Define omp_sync_hint_*
163         enumerators using numbers and omp_lock_hint_* as their aliases.
164         (omp_lock_hint_t): New typedef.  Rename to ...
165         (omp_sync_hint_t): ... this.
166         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
167         omp_sync_hint_t instead of omp_lock_hint_t.
168         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
169         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
170         Declare.
171         (omp_target_is_present, omp_target_disassociate_ptr):
172         Change first argument from void * to const void *.
173         (omp_target_memcpy, omp_target_memcpy_rect): Change second argument
174         from void * to const void *.
175         (omp_target_associate_ptr): Change first and second arguments from
176         void * to const void *.
177         * omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
178         omp_pause_hard): New parameters.
179         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
180         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
181         New interfaces.
182         * omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
183         omp_pause_hard): New parameters.
184         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
185         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
186         New externals.
187         * ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
188         EXTRA argument.  If not needed to prepare array, if extra is 0,
189         clear ws->doacross, otherwise allocate just doacross structure and
190         extra payload.  If array is needed, allocate also extra payload.
191         (GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
192         GOMP_doacross_ull_wait): Handle doacross->array == NULL like
193         doacross == NULL.
194         * parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
195         gomp_team_start.
196         (GOMP_parallel): Likewise.  Formatting fix.
197         (GOMP_parallel_reductions): New function.
198         (GOMP_cancellation_point): If taskgroup has workshare
199         flag set, check cancelled of prev taskgroup if any.
200         (GOMP_cancel): If taskgroup has workshare flag set, set cancelled
201         on prev taskgroup if any.
202         * sections.c: Include string.h.
203         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
204         (GOMP_sections_start): Adjust gomp_work_share_start caller.
205         (GOMP_sections2_start): New function.
206         (GOMP_parallel_sections_start, GOMP_parallel_sections):
207         Pass NULL as taskgroup to gomp_team_start.
208         * single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
209         gomp_work_share_start callers.
210         * target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
211         If taskgroup has workshare flag set, check cancelled on prev
212         taskgroup if any.  Guard all cancellation tests with
213         gomp_cancel_var test.
214         (omp_target_is_present, omp_target_disassociate_ptr):
215         Change ptr argument from void * to const void *.
216         (omp_target_memcpy): Change src argument from void * to const void *.
217         (omp_target_memcpy_rect): Likewise.
218         (omp_target_memcpy_rect_worker): Likewise.  Use const char * casts
219         instead of char * where needed.
220         (omp_target_associate_ptr): Change host_ptr and device_ptr arguments
221         from void * to const void *.
222         (omp_pause_resource, omp_pause_resource_all): New functions.
223         * task.c (gomp_task_handle_depend): Handle new depend array format
224         in addition to the old.  Handle mutexinoutset kinds the same as
225         inout for now, handle unspecified kinds.
226         (gomp_create_target_task): If taskgroup has workshare flag set, check
227         cancelled on prev taskgroup if any.  Guard all cancellation tests with
228         gomp_cancel_var test.  Handle new depend array format count in
229         addition to the old.
230         (GOMP_task): Likewise.  Adjust function comment.
231         (gomp_task_run_pre): If taskgroup has workshare flag set, check
232         cancelled on prev taskgroup if any.  Guard all cancellation tests with
233         gomp_cancel_var test.
234         (GOMP_taskwait_depend): New function.
235         (gomp_task_maybe_wait_for_dependencies): Handle new depend array
236         format in addition to the old.  Handle mutexinoutset kinds the same as
237         inout for now, handle unspecified kinds.  Fix a function comment typo.
238         (gomp_taskgroup_init): New function.
239         (GOMP_taskgroup_start): Use it.
240         (gomp_reduction_register, gomp_create_artificial_team,
241         GOMP_taskgroup_reduction_register,
242         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
243         gomp_parallel_reduction_register,
244         gomp_workshare_task_reduction_register,
245         gomp_workshare_taskgroup_start,
246         GOMP_workshare_task_reduction_unregister): New functions.
247         * taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
248         check cancelled on prev taskgroup if any.  Guard all cancellation
249         tests with gomp_cancel_var test.  Handle GOMP_TASK_FLAG_REDUCTION flag
250         by calling GOMP_taskgroup_reduction_register.
251         * team.c (gomp_thread_attr): Remove comment.
252         (struct gomp_thread_start_data): Add handle field.
253         (gomp_thread_start): Call pthread_detach.
254         (gomp_new_team): Adjust gomp_init_work_share caller.
255         (gomp_free_pool_helper): Call pthread_detach.
256         (gomp_team_start): Add taskgroup argument, initialize implicit
257         tasks' taskgroup field to that.  Don't call
258         pthread_attr_setdetachstate.  Handle OMP_DISPLAY_AFFINITY env var.
259         (gomp_team_end): Determine nesting by thr->ts.level != 0
260         rather than thr->ts.team != NULL.
261         (gomp_pause_pool_helper, gomp_pause_host): New functions.
262         * work.c (alloc_work_share): Use gomp_aligned_alloc instead of
263         gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
264         (gomp_init_work_share): Change ORDERED argument from bool to size_t,
265         if more than 1 allocate also extra payload at the end of array.  Never
266         keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
267         (gomp_work_share_start): Change ORDERED argument from bool to size_t,
268         return true instead of ws.
269         * Makefile.in: Regenerated.
270         * configure: Regenerated.
271         * config.h.in: Regenerated.
272         * testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
273         in some cases.
274         * testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
275         * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
276         * testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
277         * testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
278         * testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
279         * testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
280         * testsuite/libgomp.c-c++-common/depobj-1.c: New test.
281         * testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
282         * testsuite/libgomp.c-c++-common/for-10.c: New test.
283         * testsuite/libgomp.c-c++-common/for-11.c: New test.
284         * testsuite/libgomp.c-c++-common/for-12.c: New test.
285         * testsuite/libgomp.c-c++-common/for-13.c: New test.
286         * testsuite/libgomp.c-c++-common/for-14.c: New test.
287         * testsuite/libgomp.c-c++-common/for-15.c: New test.
288         * testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
289         define a different N(test), don't define N(f0) to N(f14), but instead
290         define N(f20) to N(f34) using != comparisons.
291         * testsuite/libgomp.c-c++-common/for-7.c: New test.
292         * testsuite/libgomp.c-c++-common/for-8.c: New test.
293         * testsuite/libgomp.c-c++-common/for-9.c: New test.
294         * testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
295         * testsuite/libgomp.c-c++-common/pause-1.c: New test.
296         * testsuite/libgomp.c-c++-common/pause-2.c: New test.
297         * testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
298         * testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
299         * testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
300         * testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
301         * testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
302         * testsuite/libgomp.c-c++-common/simd-1.c: New test.
303         * testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
304         * testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
305         * testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
306         * testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
307         * testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
308         * testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
309         * testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
310         * testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
311         * testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
312         * testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
313         * testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
314         * testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
315         * testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
316         * testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
317         * testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
318         * testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
319         * testsuite/libgomp.c++/depend-1.C: New test.
320         * testsuite/libgomp.c++/depend-iterator-1.C: New test.
321         * testsuite/libgomp.c++/depobj-1.C: New test.
322         * testsuite/libgomp.c++/for-16.C: New test.
323         * testsuite/libgomp.c++/for-21.C: New test.
324         * testsuite/libgomp.c++/for-22.C: New test.
325         * testsuite/libgomp.c++/for-23.C: New test.
326         * testsuite/libgomp.c++/for-24.C: New test.
327         * testsuite/libgomp.c++/for-25.C: New test.
328         * testsuite/libgomp.c++/for-26.C: New test.
329         * testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
330         * testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
331         * testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
332         * testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
333         * testsuite/libgomp.c++/task-reduction-10.C: New test.
334         * testsuite/libgomp.c++/task-reduction-11.C: New test.
335         * testsuite/libgomp.c++/task-reduction-12.C: New test.
336         * testsuite/libgomp.c++/task-reduction-13.C: New test.
337         * testsuite/libgomp.c++/task-reduction-14.C: New test.
338         * testsuite/libgomp.c++/task-reduction-15.C: New test.
339         * testsuite/libgomp.c++/task-reduction-16.C: New test.
340         * testsuite/libgomp.c++/task-reduction-17.C: New test.
341         * testsuite/libgomp.c++/task-reduction-18.C: New test.
342         * testsuite/libgomp.c++/task-reduction-19.C: New test.
343         * testsuite/libgomp.c/task-reduction-1.c: New test.
344         * testsuite/libgomp.c++/task-reduction-1.C: New test.
345         * testsuite/libgomp.c/task-reduction-2.c: New test.
346         * testsuite/libgomp.c++/task-reduction-2.C: New test.
347         * testsuite/libgomp.c++/task-reduction-3.C: New test.
348         * testsuite/libgomp.c++/task-reduction-4.C: New test.
349         * testsuite/libgomp.c++/task-reduction-5.C: New test.
350         * testsuite/libgomp.c++/task-reduction-6.C: New test.
351         * testsuite/libgomp.c++/task-reduction-7.C: New test.
352         * testsuite/libgomp.c++/task-reduction-8.C: New test.
353         * testsuite/libgomp.c++/task-reduction-9.C: New test.
354         * testsuite/libgomp.c/teams-1.c: New test.
355         * testsuite/libgomp.c/teams-2.c: New test.
356         * testsuite/libgomp.c/thread-limit-4.c: New test.
357         * testsuite/libgomp.c/thread-limit-5.c: New test.
358         * testsuite/libgomp.fortran/display-affinity-1.f90: New test.
360 2018-11-06  Chung-Lin Tang <cltang@codesourcery.com>
362         * oacc-mem.c (memcpy_tofrom_device): New function, combined from
363         acc_memcpy_to/from_device functions, now with async parameter.
364         (acc_memcpy_to_device): Modify to use memcpy_tofrom_device.
365         (acc_memcpy_from_device): Likewise.
366         (acc_memcpy_to_device_async): New API function.
367         (acc_memcpy_from_device_async): Likewise.
368         (present_create_copy): Add async parameter and async setting/unsetting.
369         (acc_create): Adjust present_create_copy call.
370         (acc_copyin): Likewise.
371         (acc_present_or_create): Likewise.
372         (acc_present_or_copyin): Likewise.
373         (acc_create_async): New API function.
374         (acc_copyin_async): New API function.
375         (delete_copyout): Add async parameter and async setting/unsetting.
376         (acc_delete): Adjust delete_copyout call.
377         (acc_copyout): Likewise.
378         (acc_delete_async): New API function.
379         (acc_copyout_async): Likewise.
380         (update_dev_host): Add async parameter and async setting/unsetting.
381         (acc_update_device): Adjust update_dev_host call.
382         (acc_update_self): Likewise.
383         (acc_update_device_async): New API function.
384         (acc_update_self_async): Likewise.
385         * openacc.h (acc_copyin_async): Declare new API function.
386         (acc_create_async): Likewise.
387         (acc_copyout_async): Likewise.
388         (acc_delete_async): Likewise.
389         (acc_update_device_async): Likewise.
390         (acc_update_self_async): Likewise.
391         (acc_memcpy_to_device_async): Likewise.
392         (acc_memcpy_from_device_async): Likewise.
393         * openacc_lib.h (acc_copyin_async_32_h): New subroutine.
394         (acc_copyin_async_64_h): New subroutine.
395         (acc_copyin_async_array_h): New subroutine.
396         (acc_create_async_32_h): New subroutine.
397         (acc_create_async_64_h): New subroutine.
398         (acc_create_async_array_h): New subroutine.
399         (acc_copyout_async_32_h): New subroutine.
400         (acc_copyout_async_64_h): New subroutine.
401         (acc_copyout_async_array_h): New subroutine.
402         (acc_delete_async_32_h): New subroutine.
403         (acc_delete_async_64_h): New subroutine.
404         (acc_delete_async_array_h): New subroutine.
405         (acc_update_device_async_32_h): New subroutine.
406         (acc_update_device_async_64_h): New subroutine.
407         (acc_update_device_async_array_h): New subroutine.
408         (acc_update_self_async_32_h): New subroutine.
409         (acc_update_self_async_64_h): New subroutine.
410         (acc_update_self_async_array_h): New subroutine.
411         * openacc.f90 (acc_copyin_async_32_h): New subroutine.
412         (acc_copyin_async_64_h): New subroutine.
413         (acc_copyin_async_array_h): New subroutine.
414         (acc_create_async_32_h): New subroutine.
415         (acc_create_async_64_h): New subroutine.
416         (acc_create_async_array_h): New subroutine.
417         (acc_copyout_async_32_h): New subroutine.
418         (acc_copyout_async_64_h): New subroutine.
419         (acc_copyout_async_array_h): New subroutine.
420         (acc_delete_async_32_h): New subroutine.
421         (acc_delete_async_64_h): New subroutine.
422         (acc_delete_async_array_h): New subroutine.
423         (acc_update_device_async_32_h): New subroutine.
424         (acc_update_device_async_64_h): New subroutine.
425         (acc_update_device_async_array_h): New subroutine.
426         (acc_update_self_async_32_h): New subroutine.
427         (acc_update_self_async_64_h): New subroutine.
428         (acc_update_self_async_array_h): New subroutine.
429         * libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*,
430         acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*,
431         acc_delete_finalize_async*, acc_memcpy_from_device_async*,
432         acc_memcpy_to_device_async*, acc_update_device_async*, and
433         acc_update_self_async* entries.
434         * testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test.
435         * testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test.
436         * testsuite/libgomp.oacc-fortran/lib-16.f90: New test.
438 2018-10-31  Joseph Myers  <joseph@codesourcery.com>
440         PR bootstrap/82856
441         * Makefile.am: Include multilib.am
442         (AUTOMAKE_OPTIONS): Add info-in-builddir.
443         (CLEANFILES): Remove libgomp.info.
444         * configure.ac: Remove AC_PREREQ.
445         * testsuite/Makefile.am (RUNTEST): Remove quotes.
446         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
447         Regenerate.
449 2018-10-29  Joseph Myers  <joseph@codesourcery.com>
450             Julian Brown  <julian@codesourcery.com>
452         * testsuite/libgomp.oacc-c++/this.C: New.
454 2018-09-18  Cesar Philippidis  <cesar@codesourcery.com>
456         * plugin/plugin-nvptx.c (struct cuda_map): New.
457         (struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
458         h_tail with (cuda_map *) map.
459         (cuda_map_create): New function.
460         (cuda_map_destroy): New function.
461         (map_init): Update to use a linked list of cuda_map objects.
462         (map_fini): Likewise.
463         (map_pop): Likewise.
464         (map_push): Likewise.  Return CUdeviceptr instead of void.
465         (init_streams_for_device): Remove stales references to ptx_stream
466         members.
467         (select_stream_for_async): Likewise.
468         (nvptx_exec): Update call to map_init.
470 2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
471             Julian Brown  <julian@codesourcery.com>
473         PR middle-end/86336
474         * testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.
476 2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
477         Thomas Koenig <tkoenig@gcc.gnu.org>
479         PR fortran/25829
480         * testsuite/libgomp.fortran/async_io_1.f90: New test.
481         * testsuite/libgomp.fortran/async_io_2.f90: New test.
482         * testsuite/libgomp.fortran/async_io_3.f90: New test.
483         * testsuite/libgomp.fortran/async_io_4.f90: New test.
484         * testsuite/libgomp.fortran/async_io_5.f90: New test.
485         * testsuite/libgomp.fortran/async_io_6.f90: New test.
486         * testsuite/libgomp.fortran/async_io_7.f90: New test.
488 2018-08-13  Cesar Philippidis  <cesar@codesourcery.com>
489             Tom de Vries  <tdevries@suse.de>
491         PR target/85590
492         * plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef.
493         (cuOccupancyMaxPotentialBlockSize): Declare.
494         * plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New
495         CUDA_ONE_CALL_MAYBE_NULL.
496         * plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define
497         CUoccupancyB2DSize and declare
498         cuOccupancyMaxPotentialBlockSize.
499         (nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the
500         default num_gangs and num_workers when the driver supports it.
502 2018-08-08  Tom de Vries  <tdevries@suse.de>
504         * plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using
505         CUDA_ONE_CALL_MAYBE_NULL.
506         * plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare.
507         (cuLinkAddData_v2, cuLinkCreate_v2): Declare.
508         (link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions
509         are not found.
511 2018-08-08  Tom de Vries  <tdevries@suse.de>
513         * plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL.
514         * plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not
515         present.
517 2018-08-08  Tom de Vries  <tdevries@suse.de>
519         * plugin/plugin-nvptx.c
520         (CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define.
521         (nvptx_open_device): Use
522         CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR.
524 2018-08-08  Tom de Vries  <tdevries@suse.de>
526         * plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ...
527         (cuGetErrorString): ... here.  Guard with CUDA_VERSION < 6000.
529 2018-08-07  Tom de Vries  <tdevries@suse.de>
531         * plugin/plugin-nvptx.c (DO_PRAGMA): Define.
532         (struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL.
533         (init_cuda_lib): Add new param to CUDA_ONE_CALL_1.  Add arg to
534         corresponding call in CUDA_ONE_CALL.  Add def/undef of
535         CUDA_ONE_CALL_MAYBE_NULL.
536         (CUDA_CALL_EXISTS): Define.
538 2018-08-07  Tom de Vries  <tdevries@suse.de>
540         * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put
541         CUDA_ONE_CALL defines right before the cuda-lib.def include, and the
542         corresponding undefs right after.
544 2018-08-04  Tom de Vries  <tdevries@suse.de>
546         * plugin/configfrag.ac: For --without-cuda-driver, set
547         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB to no.  Handle
548         CUDA_DRIVER_INCLUDE == no and CUDA_DRIVER_LIB == no.
549         * configure: Regenerate.
551 2018-08-02  Tom de Vries  <tdevries@suse.de>
553         PR target/86660
554         * testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
555         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
556         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
557         Same.
558         * testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
559         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
560         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
562 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
563             Thomas Schwinge <thomas@codesourcery.com>
565         * config/nvptx/oacc-parallel.c: Truncate.
567 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
568             James Norris <jnorris@codesourcery.com>
570         * plugin/plugin-nvptx.c (struct map): Removed.
571         (map_init, map_pop): Remove use of struct map.
572         (map_push): Likewise and change argument list.
573         * testsuite/libgomp.oacc-c-c++-common/mapping-1.c: New
575 2018-08-01  Tom de Vries  <tdevries@suse.de>
577         * plugin/cuda-lib.def: New file.  Factor out of ...
578         * plugin/plugin-nvptx.c (CUDA_CALLS): ... here.
579         (struct cuda_lib_s, init_cuda_lib): Include cuda-lib.def instead of
580         using CUDA_CALLS.
582 2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
584         Revert 'AsyncI/O patch committed'.
585         2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
586                 Thomas Koenig <tkoenig@gcc.gnu.org>
588         PR fortran/25829
589         * testsuite/libgomp.fortran/async_io_1.f90: New test.
590         * testsuite/libgomp.fortran/async_io_2.f90: New test.
591         * testsuite/libgomp.fortran/async_io_3.f90: New test.
592         * testsuite/libgomp.fortran/async_io_4.f90: New test.
593         * testsuite/libgomp.fortran/async_io_5.f90: New test.
594         * testsuite/libgomp.fortran/async_io_6.f90: New test.
595         * testsuite/libgomp.fortran/async_io_7.f90: New test.
597 2018-07-30  Tom de Vries  <tdevries@suse.de>
599         * plugin/plugin-nvptx.c (MIN, MAX): Redefine.
600         (nvptx_exec): Ensure worker and vector default dims don't exceed
601         targ_fn->max_threads_per_block.
603 2018-07-30  Tom de Vries  <tdevries@suse.de>
605         * plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field.
606         (nvptx_open_device): Init default_dims for device.
607         (nvptx_exec): Use default_dims from device.
609 2018-07-26  Jakub Jelinek  <jakub@redhat.com>
611         PR testsuite/86660
612         * testsuite/libgomp.c++/for-15.C (results): Include it in
613         omp declare target region.
614         (main): Use map (always, tofrom: results) instead of
615         map (tofrom: results).
617         PR middle-end/86660
618         * testsuite/libgomp.c/pr86660.c: New test.
620 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
621             Tom de Vries  <tdevries@suse.de>
623         * plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have
624         sufficient resources to launch a kernel, and give a hint on how to fix
625         it.
627 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
628             Tom de Vries  <tdevries@suse.de>
630         * plugin/plugin-nvptx.c (struct ptx_device): Add warp_size,
631         max_threads_per_block and max_threads_per_multiprocessor fields.
632         (nvptx_open_device): Initialize new fields.
633         (nvptx_exec): Use num_sms, and new fields.
635 2018-07-26  Tom de Vries  <tdevries@suse.de>
637         * testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls
638         to correct locations.  Remove xfail.
640 2018-07-26  Tom de Vries  <tdevries@suse.de>
642         * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
643         acc_wait.  Move acc_async_test calls to correct locations.  Remove
644         xfail.
646 2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
647         Thomas Koenig <tkoenig@gcc.gnu.org>
649         PR fortran/25829
650         * testsuite/libgomp.fortran/async_io_1.f90: New test.
651         * testsuite/libgomp.fortran/async_io_2.f90: New test.
652         * testsuite/libgomp.fortran/async_io_3.f90: New test.
653         * testsuite/libgomp.fortran/async_io_4.f90: New test.
654         * testsuite/libgomp.fortran/async_io_5.f90: New test.
655         * testsuite/libgomp.fortran/async_io_6.f90: New test.
656         * testsuite/libgomp.fortran/async_io_7.f90: New test.
658 2018-07-17  Jakub Jelinek  <jakub@redhat.com>
660         PR middle-end/86542
661         * testsuite/libgomp.c++/pr86542.C: New test.
663         PR middle-end/86539
664         * testsuite/libgomp.c++/pr86539.C: New test.
666 2018-07-11  Jakub Jelinek  <jakub@redhat.com>
668         PR c++/86443
669         * testsuite/libgomp.c++/for-15.C (a): Remove unused variable.
670         (results): Make sure the variable is not inside declare target region.
671         (qux): Remove unused function.
673 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
675         PR c++/86443
676         * testsuite/libgomp.c++/for-15.C: New test.
678 2018-06-26  Jakub Jelinek  <jakub@redhat.com>
680         PR c++/86291
681         * testsuite/libgomp.c++/pr86291.C: New test.
683 2018-06-24  Gerald Pfeifer  <gerald@pfeifer.com>
685         * libgomp.texi (Top): Move www.openmp.org to https.
686         (Enabling OpenMP): Ditto.
687         (omp_get_active_level): Ditto.
688         (omp_get_ancestor_thread_num): Ditto.
689         (omp_get_cancellation): Ditto.
690         (omp_get_default_device): Ditto.
691         (omp_get_dynamic): Ditto.
692         (omp_get_level): Ditto.
693         (omp_get_max_active_levels): Ditto.
694         (omp_get_max_task_priority): Ditto.
695         (omp_get_max_threads): Ditto.
696         (omp_get_nested): Ditto.
697         (omp_get_num_devices): Ditto.
698         (omp_get_num_procs): Ditto.
699         (omp_get_num_teams): Ditto.
700         (omp_get_num_threads): Ditto.
701         (omp_get_proc_bind): Ditto.
702         (omp_get_schedule): Ditto.
703         (omp_get_team_num): Ditto.
704         (omp_get_team_size): Ditto.
705         (omp_get_thread_limit): Ditto.
706         (omp_get_thread_num): Ditto.
707         (omp_in_parallel): Ditto.
708         (omp_in_final): Ditto.
709         (omp_is_initial_device): Ditto.
710         (omp_set_default_device): Ditto.
711         (omp_set_dynamic): Ditto.
712         (omp_set_max_active_levels): Ditto.
713         (omp_set_nested): Ditto.
714         (omp_set_num_threads): Ditto.
715         (omp_set_schedule): Ditto.
716         (omp_init_lock): Ditto.
717         (omp_set_lock): Ditto.
718         (omp_test_lock): Ditto.
719         (omp_unset_lock): Ditto.
720         (omp_destroy_lock): Ditto.
721         (omp_init_nest_lock): Ditto.
722         (omp_set_nest_lock): Ditto.
723         (omp_test_nest_lock): Ditto.
724         (omp_unset_nest_lock): Ditto.
725         (omp_destroy_nest_lock): Ditto.
726         (omp_get_wtick): Ditto.
727         (omp_get_wtime): Ditto.
728         (OMP_CANCELLATION): Ditto.
729         (OMP_DISPLAY_ENV): Ditto.
730         (OMP_DEFAULT_DEVICE): Ditto.
731         (OMP_DYNAMIC): Ditto.
732         (OMP_MAX_ACTIVE_LEVELS): Ditto.
733         (OMP_MAX_TASK_PRIORITY): Ditto.
734         (OMP_NESTED): Ditto.
735         (OMP_NUM_THREADS): Ditto.
736         (OMP_PROC_BIND): Ditto.
737         (OMP_PLACES): Ditto.
738         (OMP_STACKSIZE): Ditto.
739         (OMP_SCHEDULE): Ditto.
740         (OMP_THREAD_LIMIT): Ditto.
741         (OMP_WAIT_POLICY): Ditto.
743 2018-06-22  Cesar Philippidis  <cesar@codesourcery.com>
744             James Norris  <jnorris@codesourcery.com>
745             Julian Brown  <julian@codesourcery.com>
746             Thomas Schwinge  <thomas@codesourcery.com>
747             Tom de Vries  <tom@codesourcery.com>
749         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
750         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
751         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
752         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
753         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
754         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
755         * testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
756         * testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
757         * testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
758         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
759         Likewise.
760         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
761         Likewise.
762         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
763         Likewise.
764         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
765         Likewise.
766         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
767         Likewise.
768         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
769         Likewise.
770         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
771         Likewise.
772         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
773         Likewise.
774         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
775         Likewise.
776         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
777         Likewise.
778         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
779         Likewise.
780         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
781         Likewise.
782         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
783         Likewise.
784         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
785         Likewise.
786         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
787         Likewise.
788         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
789         Likewise.
790         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
791         Likewise.
792         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
793         Likewise.
794         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
795         Likewise.
796         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
797         Likewise.
798         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
799         Likewise.
800         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
801         Likewise.
802         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
803         Likewise.
804         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
805         Likewise.
806         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
807         Likewise.
808         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
809         Likewise.
810         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
811         Likewise.
812         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
813         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
814         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
815         * testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
816         * testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
817         * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
818         * testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
819         * testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
820         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
821         Likewise.
822         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
823         Likewise.
824         * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
825         * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
826         * testsuite/libgomp.oacc-fortran/kernels-independent.f90:
827         Likewise.
828         * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
829         * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
830         * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
831         Likewise.
832         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
833         Likewise.
834         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
835         Likewise.
836         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
837         Likewise.
838         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
839         Likewise.
840         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
841         Likewise.
842         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
843         Likewise.
844         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
845         Likewise.
846         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
847         Likewise.
848         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
849         Likewise.
850         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
851         Likewise.
852         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
853         Likewise.
854         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
855         Likewise.
856         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
857         Likewise.
858         * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
859         Likewise.
860         * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
861         * testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
862         * testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
863         * testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
864         * testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
865         * testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
866         * testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.
868 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
869             Thomas Schwinge <thomas@codesourcery.com>
870             Cesar Philippidis  <cesar@codesourcery.com>
872         * libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member.
873         (gomp_acc_remove_pointer): Update declaration.
874         (gomp_acc_declare_allocate): Declare.
875         (gomp_remove_var): Declare.
876         * libgomp.map (OACC_2.5): Define.
877         * oacc-mem.c (acc_map_data): Update refcount.
878         (acc_unmap_data): Likewise.
879         (present_create_copy): Likewise.
880         (acc_create): Add FLAG_PRESENT when calling present_create_copy.
881         (acc_copyin): Likewise.
882         (FLAG_FINALIZE): Define.
883         (delete_copyout): Update dynamic refcounts, add support for FINALIZE.
884         (acc_delete_finalize): New function.
885         (acc_delete_finalize_async): New function.
886         (acc_copyout_finalize): New function.
887         (acc_copyout_finalize_async): New function.
888         (gomp_acc_insert_pointer): Update refcounts.
889         (gomp_acc_remove_pointer): Return if data is not present on the
890         accelerator.
891         * oacc-parallel.c (find_pset): Rename to find_pointer.
892         (find_pointer): Add support for GOMP_MAP_POINTER.
893         (handle_ftn_pointers): New function.
894         (GOACC_parallel_keyed): Update refcounts of variables.
895         (GOACC_enter_exit_data): Add support for finalized data mappings.
896         Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling
897         of fortran arrays.
898         (GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}.
899         (GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support
900         for GOMP_MAP_FORCE_FROM.
901         * openacc.f90 (module openacc_internal): Add
902         acc_copyout_finalize_{32_h,64_h,array_h,_l}, and
903         acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for
904         acc_copyout_finalize and acc_delete_finalize.
905         (acc_copyout_finalize_32_h): New subroutine.
906         (acc_copyout_finalize_64_h): New subroutine.
907         (acc_copyout_finalize_array_h): New subroutine.
908         (acc_delete_finalize_32_h): New subroutine.
909         (acc_delete_finalize_64_h): New subroutine.
910         (acc_delete_finalize_array_h): New subroutine.
911         * openacc.h (acc_copyout_finalize): Declare.
912         (acc_copyout_finalize_async): Declare.
913         (acc_delete_finalize): Declare.
914         (acc_delete_finalize_async): Declare.
915         * openacc_lib.h (acc_copyout_finalize): New interface.
916         (acc_delete_finalize): New interface.
917         * target.c (gomp_map_vars): Update dynamic_refcount.
918         (gomp_remove_var): New function.
919         (gomp_unmap_vars): Use it.
920         (gomp_unload_image_from_device): Likewise.
921         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test
922         case to utilize OpenACC 2.5 data clause semantics.
923         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
924         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
925         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
926         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
927         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
928         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
929         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
930         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
931         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
932         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
933         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
934         * testsuite/libgomp.oacc-fortran/data-5.f90: New test.
935         * testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to
936         utilize OpenACC 2.5 data clause semantics.
937         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
938         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
939         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
940         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
941         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
942         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
943         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
944         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
945         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
947 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
949         PR fortran/85841
950         PR testsuite/85865
951         * testsuite/libgomp.fortran/collapse2.f90: Add option "-std=legacy".
952         * testsuite/libgomp.fortran/omp_atomic2.f90: Ditto.
953         * testsuite/libgomp.fortran/omp_parse1.f90: Ditto.
954         * testsuite/libgomp.fortran/omp_parse3.f90: Ditto.
955         * testsuite/libgomp.fortran/task2.f90: Ditto.
956         * testsuite/libgomp.fortran/vla1.f90: Ditto.
957         * testsuite/libgomp.fortran/vla2.f90: Ditto.
958         * testsuite/libgomp.fortran/vla3.f90: Ditto.
959         * testsuite/libgomp.fortran/vla4.f90: Ditto.
960         * testsuite/libgomp.fortran/vla5.f90: Ditto.
961         * testsuite/libgomp.fortran/vla6.f90: Ditto.
962         * testsuite/libgomp.fortran/vla8.f90: Ditto.
963         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Ditto.
964         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Ditto.
966 2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>
968         PR c++/85782
969         * testsuite/libgomp.oacc-c-c++-common/pr85782.c: New test.
971 2018-05-09  Tom de Vries  <tom@codesourcery.com>
973         PR libgomp/82901
974         * oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument
975         to GOACC_enter_exit_data.
977 2018-05-09  Tom de Vries  <tom@codesourcery.com>
979         PR libgomp/83792
980         * oacc-int.h (async_valid_stream_id_p, async_valid_p)
981         (async_synchronous_p): New function.
982         * oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use
983         async_valid_p.
984         * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
985         async_valid_stream_id_p.
986         * oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p.
987         * oacc-parallel.c (GOACC_parallel_keyed): Same.
989 2018-05-07  Tom de Vries  <tom@codesourcery.com>
991         PR testsuite/85677
992         * testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level
993         include directory in ALWAYS_CFLAGS out of $blddir != "" condition.
995 2018-05-03  Tom de Vries  <tom@codesourcery.com>
997         PR testsuite/85106
998         * testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to
999         extra_tool_flags if it contains an -foffload=-fdump-* flag.
1000         * testsuite/lib/libgomp.exp: Include scanoffloadtree.exp.
1001         * testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump.
1003 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1005         PR libgomp/85411
1006         * plugin/plugin-nvptx.c (nvptx_exec): Move parsing of
1007         GOMP_OPENACC_DIM ...
1008         * env.c (parse_gomp_openacc_dim): ... here.  New function.
1009         (initialize_env): Call parse_gomp_openacc_dim.
1010         (goacc_default_dims): Define.
1011         * libgomp.h (goacc_default_dims): Declare.
1012         * oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function.
1013         * oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare.
1014         * libgomp.map: New version "GOMP_PLUGIN_1.2". Add
1015         GOMP_PLUGIN_acc_default_dim.
1016         * testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test.
1017         * testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test.
1019 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1021         PR testsuite/83791
1022         * testsuite/libgomp.c++/udr-9.C: Update.
1023         * testsuite/libgomp.c++/atomic-16.C: Remove.
1024         * testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
1025         * testsuite/libgomp.c++/loop-13.C: Remove.
1026         * testsuite/libgomp.c++/loop-14.C: Remove.
1027         * testsuite/libgomp.c++/loop-15.C: Remove.
1028         * testsuite/libgomp.c++/monotonic-1.C: Remove.
1029         * testsuite/libgomp.c++/monotonic-2.C: Remove.
1030         * testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
1031         * testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
1032         * testsuite/libgomp.c++/ordered-1.C: Remove.
1033         * testsuite/libgomp.c++/pr45784.C: Remove.
1034         * testsuite/libgomp.c++/pr64824.C: Remove.
1035         * testsuite/libgomp.c++/pr64868.C: Remove.
1036         * testsuite/libgomp.c++/pr66199-1.C: Remove.
1037         * testsuite/libgomp.c++/pr66199-2.C: Remove.
1038         * testsuite/libgomp.c++/pr66199-3.C: Remove.
1039         * testsuite/libgomp.c++/pr66199-4.C: Remove.
1040         * testsuite/libgomp.c++/pr66199-5.C: Remove.
1041         * testsuite/libgomp.c++/pr66199-6.C: Remove.
1042         * testsuite/libgomp.c++/pr66199-7.C: Remove.
1043         * testsuite/libgomp.c++/pr66199-8.C: Remove.
1044         * testsuite/libgomp.c++/pr66199-9.C: Remove.
1045         * testsuite/libgomp.c++/pr69389.C: Remove.
1046         * testsuite/libgomp.c++/simd10.C: Remove.
1047         * testsuite/libgomp.c++/simd11.C: Remove.
1048         * testsuite/libgomp.c++/simd12.C: Remove.
1049         * testsuite/libgomp.c++/simd13.C: Remove.
1050         * testsuite/libgomp.c++/target-1.C: Remove.
1051         * testsuite/libgomp.c++/target-3.C: Remove.
1052         * testsuite/libgomp.c++/target-4.C: Remove.
1053         * testsuite/libgomp.c++/target-5.C: Remove.
1054         * testsuite/libgomp.c++/taskgroup-1.C: Remove.
1055         * testsuite/libgomp.c++/taskloop-1.C: Remove.
1056         * testsuite/libgomp.c++/taskloop-2.C: Remove.
1057         * testsuite/libgomp.c++/taskloop-3.C: Remove.
1058         * testsuite/libgomp.c++/taskloop-4.C: Remove.
1059         * testsuite/libgomp.c++/udr-9.C: Remove.
1060         * testsuite/libgomp.c++/for-10.C: Remove.
1061         * testsuite/libgomp.c++/for-11.C: Remove.
1062         * testsuite/libgomp.c++/for-12.C: Remove.
1063         * testsuite/libgomp.c++/for-13.C: Remove.
1064         * testsuite/libgomp.c++/for-14.C: Remove.
1065         * testsuite/libgomp.c++/for-9.C: Remove.
1066         * testsuite/libgomp.c/atomic-18.c: Move ...
1067         * testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
1068         * testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
1069         * testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
1070         * testsuite/libgomp.c/loop-13.c: Move ...
1071         * testsuite/libgomp.c-c++-common/loop-13.c: ... here.
1072         * testsuite/libgomp.c/loop-14.c: Move ...
1073         * testsuite/libgomp.c-c++-common/loop-14.c: ... here.
1074         * testsuite/libgomp.c/loop-15.c: Remove.
1075         * testsuite/libgomp.c-c++-common/loop-15.c: New test.
1076         * testsuite/libgomp.c/monotonic-1.c: Move ...
1077         * testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
1078         * testsuite/libgomp.c/monotonic-2.c: Move ...
1079         * testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
1080         * testsuite/libgomp.c/nonmonotonic-1.c: Move ...
1081         * testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
1082         * testsuite/libgomp.c/nonmonotonic-2.c: Move ...
1083         * testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
1084         * testsuite/libgomp.c/ordered-4.c: Move ...
1085         * testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
1086         * testsuite/libgomp.c/pr45784.c: Move ...
1087         * testsuite/libgomp.c-c++-common/pr45784.c: ... here.
1088         * testsuite/libgomp.c/pr64824.c: Move ...
1089         * testsuite/libgomp.c-c++-common/pr64824.c: ... here.
1090         * testsuite/libgomp.c/pr64868.c: Move ...
1091         * testsuite/libgomp.c-c++-common/pr64868.c: ... here.
1092         * testsuite/libgomp.c/pr66199-1.c: Move ...
1093         * testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
1094         * testsuite/libgomp.c/pr66199-2.c: Move ...
1095         * testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
1096         * testsuite/libgomp.c/pr66199-3.c: Move ...
1097         * testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
1098         * testsuite/libgomp.c/pr66199-4.c: Move ...
1099         * testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
1100         * testsuite/libgomp.c/pr66199-5.c: Move ...
1101         * testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
1102         * testsuite/libgomp.c/pr66199-6.c: Move ...
1103         * testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
1104         * testsuite/libgomp.c/pr66199-7.c: Move ...
1105         * testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
1106         * testsuite/libgomp.c/pr66199-8.c: Move ...
1107         * testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
1108         * testsuite/libgomp.c/pr66199-9.c: Move ...
1109         * testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
1110         * testsuite/libgomp.c/pr69389.c: Move ...
1111         * testsuite/libgomp.c-c++-common/pr69389.c: ... here.
1112         * testsuite/libgomp.c/simd-14.c: Move ...
1113         * testsuite/libgomp.c-c++-common/simd-14.c: ... here.
1114         * testsuite/libgomp.c/simd-15.c: Move ...
1115         * testsuite/libgomp.c-c++-common/simd-15.c: ... here.
1116         * testsuite/libgomp.c/simd-16.c: Move ...
1117         * testsuite/libgomp.c-c++-common/simd-16.c: ... here.
1118         * testsuite/libgomp.c/simd-17.c: Move ...
1119         * testsuite/libgomp.c-c++-common/simd-17.c: ... here.
1120         * testsuite/libgomp.c/target-1.c: Move ...
1121         * testsuite/libgomp.c-c++-common/target-1.c: ... here.
1122         * testsuite/libgomp.c/target-10.c: Move ...
1123         * testsuite/libgomp.c-c++-common/target-10.c: ... here.
1124         * testsuite/libgomp.c/target-13.c: Move ...
1125         * testsuite/libgomp.c-c++-common/target-13.c: ... here.
1126         * testsuite/libgomp.c/target-2.c: Move ...
1127         * testsuite/libgomp.c-c++-common/target-2.c: ... here.
1128         * testsuite/libgomp.c/taskgroup-1.c: Move ...
1129         * testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
1130         * testsuite/libgomp.c/taskloop-1.c: Move ...
1131         * testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
1132         * testsuite/libgomp.c/taskloop-2.c: Move ...
1133         * testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
1134         * testsuite/libgomp.c/taskloop-3.c: Move ...
1135         * testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
1136         * testsuite/libgomp.c/taskloop-4.c: Move ...
1137         * testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
1138         * testsuite/libgomp.c/udr-1.c: Move ...
1139         * testsuite/libgomp.c-c++-common/udr-1.c: ... here.
1140         * testsuite/libgomp.c/for-1.c: Move ...
1141         * testsuite/libgomp.c-c++-common/for-1.c: ... here.
1142         * testsuite/libgomp.c/for-1.h: Move ...
1143         * testsuite/libgomp.c-c++-common/for-1.h: ... here.
1144         * testsuite/libgomp.c/for-2.c: Move ...
1145         * testsuite/libgomp.c-c++-common/for-2.c: ... here.
1146         * testsuite/libgomp.c/for-2.h: Move ...
1147         * testsuite/libgomp.c-c++-common/for-2.h: ... here.
1148         * testsuite/libgomp.c/for-3.c: Move ...
1149         * testsuite/libgomp.c-c++-common/for-3.c: ... here.
1150         * testsuite/libgomp.c/for-4.c: Move ...
1151         * testsuite/libgomp.c-c++-common/for-4.c: ... here.
1152         * testsuite/libgomp.c/for-5.c: Move ...
1153         * testsuite/libgomp.c-c++-common/for-5.c: ... here.
1154         * testsuite/libgomp.c/for-6.c: Move ...
1155         * testsuite/libgomp.c-c++-common/for-6.c: ... here.
1157 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1159         PR libgomp/82428
1160         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use
1161         __builtin_goacc_parlevel_{id,size}.
1162         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same.
1163         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same.
1164         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same.
1165         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same.
1166         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same.
1167         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same.
1168         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same.
1169         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same.
1170         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same.
1171         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same.
1172         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same.
1173         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same.
1174         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same.
1175         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same.
1176         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same.
1177         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same.
1178         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same.
1179         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same.
1180         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same.
1181         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same.
1182         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same.
1183         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same.
1184         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same.
1186 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1188         PR testsuite/85106
1189         * testsuite/lib/libgomp.exp: Include scanltranstree.exp.
1191 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1193         PR testsuite/85106
1194         * testsuite/lib/libgomp.exp: Include scanwpaipa.exp.
1196 2018-04-29  Julian Brown  <julian@codesourcery.com>
1197             Tom de Vries  <tom@codesourcery.com>
1199         PR testsuite/85527
1200         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow
1201         arbitrary order for iterations of atomic subtract check.
1203 2018-04-28  Tom de Vries  <tom@codesourcery.com>
1205         PR testsuite/85527
1206         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store
1207         atomic capture results obtained in parallel loop to an array, instead of
1208         to a scalar.
1210 2018-04-26  Tom de Vries  <tom@codesourcery.com>
1212         PR libgomp/84020
1213         * plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
1214         * plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
1215         (process_GOMP_NVPTX_JIT): New function.
1216         (link_ptx): Use process_GOMP_NVPTX_JIT.
1218 2018-04-26  Richard Biener <rguenther@suse.de>
1219             Tom de Vries  <tom@codesourcery.com>
1221         PR lto/85422
1222         * testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
1224 2018-04-26  Tom de Vries  <tom@codesourcery.com>
1226         PR target/85519
1227         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
1228         recursion depth from 25 to 23.
1229         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
1231 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1233         * configure: Regenerated.
1235 2018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
1236             Tom de Vries  <tom@codesourcery.com>
1238         PR target/85445
1239         * testsuite/libgomp.oacc-c++/ref-1.C: New.
1241 2018-04-19  Thomas Schwinge  <thomas@codesourcery.com>
1243         PR libgomp/85463
1244         * testsuite/libgomp.oacc-fortran/error_stop-1.f: New file.
1245         * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
1246         * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
1247         * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
1248         * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
1249         * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
1251         PR libfortran/85166
1252         * testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call
1253         abort".
1254         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1256 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
1258         * configure: Regenerated.
1260 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
1262         PR jit/85384
1263         * configure: Regenerate.
1265 2018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
1266             Tom de Vries  <tom@codesourcery.com>
1268         PR middle-end/84955
1269         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
1270         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
1272 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1274         PR fortran/83064
1275         PR testsuite/85346
1276         * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
1277         test from gfortran.dg to here.
1279 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
1281         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346.
1282         * testsuite/libgomp.oacc-fortran/pr84955.f90: Likewise.
1284 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
1286         PR middle-end/84955
1287         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
1288         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
1290 2018-04-05  Tom de Vries  <tom@codesourcery.com>
1292         PR target/85204
1293         * testsuite/libgomp.oacc-c-c++-common/broadcast-1.c: New test.
1295 2018-03-26  Tom de Vries  <tom@codesourcery.com>
1297         PR tree-optimization/85063
1298         * testsuite/libgomp.c/switch-conversion-2.c: New test.
1299         * testsuite/libgomp.c/switch-conversion.c: New test.
1300         * testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test.
1301         * testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test.
1303 2018-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1305         PR fortran/84381
1306         * testsuite/libgomp.fortran/aligned1.f03: Replace non-standard
1307         call abort by STOP n.
1308         * testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise.
1309         * testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise.
1310         * testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise.
1311         * testsuite/libgomp.fortran/allocatable1.f90: Likewise.
1312         * testsuite/libgomp.fortran/allocatable10.f90: Likewise.
1313         * testsuite/libgomp.fortran/allocatable11.f90: Likewise.
1314         * testsuite/libgomp.fortran/allocatable12.f90: Likewise.
1315         * testsuite/libgomp.fortran/allocatable2.f90: Likewise.
1316         * testsuite/libgomp.fortran/allocatable3.f90: Likewise.
1317         * testsuite/libgomp.fortran/allocatable4.f90: Likewise.
1318         * testsuite/libgomp.fortran/allocatable5.f90: Likewise.
1319         * testsuite/libgomp.fortran/allocatable6.f90: Likewise.
1320         * testsuite/libgomp.fortran/allocatable7.f90: Likewise.
1321         * testsuite/libgomp.fortran/allocatable8.f90: Likewise.
1322         * testsuite/libgomp.fortran/allocatable9.f90: Likewise.
1323         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.
1324         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise.
1325         * testsuite/libgomp.fortran/associate1.f90: Likewise.
1326         * testsuite/libgomp.fortran/associate2.f90: Likewise.
1327         * testsuite/libgomp.fortran/associate3.f90: Likewise.
1328         * testsuite/libgomp.fortran/cancel-do-1.f90: Likewise.
1329         * testsuite/libgomp.fortran/cancel-do-2.f90: Likewise.
1330         * testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise.
1331         * testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise.
1332         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise.
1333         * testsuite/libgomp.fortran/character1.f90: Likewise.
1334         * testsuite/libgomp.fortran/character2.f90: Likewise.
1335         * testsuite/libgomp.fortran/collapse1.f90: Likewise.
1336         * testsuite/libgomp.fortran/collapse2.f90: Likewise.
1337         * testsuite/libgomp.fortran/collapse3.f90: Likewise.
1338         * testsuite/libgomp.fortran/collapse4.f90: Likewise.
1339         * testsuite/libgomp.fortran/crayptr1.f90: Likewise.
1340         * testsuite/libgomp.fortran/crayptr2.f90: Likewise.
1341         * testsuite/libgomp.fortran/crayptr3.f90: Likewise.
1342         * testsuite/libgomp.fortran/declare-simd-1.f90: Likewise.
1343         * testsuite/libgomp.fortran/declare-simd-3.f90: Likewise.
1344         * testsuite/libgomp.fortran/declare-target-2.f90: Likewise.
1345         * testsuite/libgomp.fortran/depend-1.f90: Likewise.
1346         * testsuite/libgomp.fortran/depend-2.f90: Likewise.
1347         * testsuite/libgomp.fortran/depend-3.f90: Likewise.
1348         * testsuite/libgomp.fortran/do1.f90: Likewise.
1349         * testsuite/libgomp.fortran/do2.f90: Likewise.
1350         * testsuite/libgomp.fortran/doacross1.f90: Likewise.
1351         * testsuite/libgomp.fortran/doacross2.f90: Likewise.
1352         * testsuite/libgomp.fortran/doacross3.f90: Likewise.
1353         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise.
1354         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise.
1355         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise.
1356         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
1357         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise.
1358         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise.
1359         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise.
1360         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise.
1361         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise.
1362         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
1363         * testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise.
1364         * testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise.
1365         * testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise.
1366         * testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise.
1367         * testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise.
1368         * testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise.
1369         * testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise.
1370         * testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise.
1371         * testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise.
1372         * testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise.
1373         * testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise.
1374         * testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise.
1375         * testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise.
1376         * testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise.
1377         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
1378         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise.
1379         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise.
1380         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise.
1381         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise.
1382         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise.
1383         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
1384         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
1385         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise.
1386         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise.
1387         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise.
1388         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise.
1389         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise.
1390         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise.
1391         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise.
1392         * testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise.
1393         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise.
1394         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
1395         * testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise.
1396         * testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise.
1397         * testsuite/libgomp.fortran/lastprivate1.f90: Likewise.
1398         * testsuite/libgomp.fortran/lastprivate2.f90: Likewise.
1399         * testsuite/libgomp.fortran/lib1.f90: Likewise.
1400         * testsuite/libgomp.fortran/lib2.f: Likewise.
1401         * testsuite/libgomp.fortran/lib3.f: Likewise.
1402         * testsuite/libgomp.fortran/lib4.f90: Likewise.
1403         * testsuite/libgomp.fortran/lock-1.f90: Likewise.
1404         * testsuite/libgomp.fortran/lock-2.f90: Likewise.
1405         * testsuite/libgomp.fortran/nested1.f90: Likewise.
1406         * testsuite/libgomp.fortran/nestedfn1.f90: Likewise.
1407         * testsuite/libgomp.fortran/nestedfn2.f90: Likewise.
1408         * testsuite/libgomp.fortran/nestedfn3.f90: Likewise.
1409         * testsuite/libgomp.fortran/nestedfn4.f90: Likewise.
1410         * testsuite/libgomp.fortran/nestedfn5.f90: Likewise.
1411         * testsuite/libgomp.fortran/omp_atomic1.f90: Likewise.
1412         * testsuite/libgomp.fortran/omp_atomic2.f90: Likewise.
1413         * testsuite/libgomp.fortran/omp_atomic3.f90: Likewise.
1414         * testsuite/libgomp.fortran/omp_atomic4.f90: Likewise.
1415         * testsuite/libgomp.fortran/omp_atomic5.f90: Likewise.
1416         * testsuite/libgomp.fortran/omp_cond1.f: Likewise.
1417         * testsuite/libgomp.fortran/omp_cond2.f: Likewise.
1418         * testsuite/libgomp.fortran/omp_cond3.F90: Likewise.
1419         * testsuite/libgomp.fortran/omp_cond4.F90: Likewise.
1420         * testsuite/libgomp.fortran/omp_parse1.f90: Likewise.
1421         * testsuite/libgomp.fortran/omp_parse2.f90: Likewise.
1422         * testsuite/libgomp.fortran/omp_parse3.f90: Likewise.
1423         * testsuite/libgomp.fortran/omp_parse4.f90: Likewise.
1424         * testsuite/libgomp.fortran/openmp_version-1.f: Likewise.
1425         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1426         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise.
1427         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise.
1428         * testsuite/libgomp.fortran/pointer1.f90: Likewise.
1429         * testsuite/libgomp.fortran/pointer2.f90: Likewise.
1430         * testsuite/libgomp.fortran/pr25162.f: Likewise.
1431         * testsuite/libgomp.fortran/pr25219.f90: Likewise.
1432         * testsuite/libgomp.fortran/pr27395-1.f90: Likewise.
1433         * testsuite/libgomp.fortran/pr27395-2.f90: Likewise.
1434         * testsuite/libgomp.fortran/pr27416-1.f90: Likewise.
1435         * testsuite/libgomp.fortran/pr27916-1.f90: Likewise.
1436         * testsuite/libgomp.fortran/pr27916-2.f90: Likewise.
1437         * testsuite/libgomp.fortran/pr28390.f: Likewise.
1438         * testsuite/libgomp.fortran/pr29629.f90: Likewise.
1439         * testsuite/libgomp.fortran/pr32550.f90: Likewise.
1440         * testsuite/libgomp.fortran/pr33880.f90: Likewise.
1441         * testsuite/libgomp.fortran/pr34020.f90: Likewise.
1442         * testsuite/libgomp.fortran/pr35130.f90: Likewise.
1443         * testsuite/libgomp.fortran/pr42162.f90: Likewise.
1444         * testsuite/libgomp.fortran/pr46753.f90: Likewise.
1445         * testsuite/libgomp.fortran/pr48894.f90: Likewise.
1446         * testsuite/libgomp.fortran/pr49792-1.f90: Likewise.
1447         * testsuite/libgomp.fortran/pr49792-2.f90: Likewise.
1448         * testsuite/libgomp.fortran/pr63938-1.f90: Likewise.
1449         * testsuite/libgomp.fortran/pr63938-2.f90: Likewise.
1450         * testsuite/libgomp.fortran/pr65597.f90: Likewise.
1451         * testsuite/libgomp.fortran/pr66199-1.f90: Likewise.
1452         * testsuite/libgomp.fortran/pr71014.f90: Likewise.
1453         * testsuite/libgomp.fortran/pr81304.f90: Likewise.
1454         * testsuite/libgomp.fortran/pr81841.f90: Likewise.
1455         * testsuite/libgomp.fortran/pr84418-1.f90: Likewise.
1456         * testsuite/libgomp.fortran/pr84418-2.f90: Likewise.
1457         * testsuite/libgomp.fortran/procptr1.f90: Likewise.
1458         * testsuite/libgomp.fortran/recursion1.f90: Likewise.
1459         * testsuite/libgomp.fortran/reduction1.f90: Likewise.
1460         * testsuite/libgomp.fortran/reduction2.f90: Likewise.
1461         * testsuite/libgomp.fortran/reduction3.f90: Likewise.
1462         * testsuite/libgomp.fortran/reduction4.f90: Likewise.
1463         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
1464         * testsuite/libgomp.fortran/reduction6.f90: Likewise.
1465         * testsuite/libgomp.fortran/reference1.f90: Likewise.
1466         * testsuite/libgomp.fortran/reference2.f90: Likewise.
1467         * testsuite/libgomp.fortran/retval1.f90: Likewise.
1468         * testsuite/libgomp.fortran/retval2.f90: Likewise.
1469         * testsuite/libgomp.fortran/sharing1.f90: Likewise.
1470         * testsuite/libgomp.fortran/sharing2.f90: Likewise.
1471         * testsuite/libgomp.fortran/simd1.f90: Likewise.
1472         * testsuite/libgomp.fortran/simd2.f90: Likewise.
1473         * testsuite/libgomp.fortran/simd3.f90: Likewise.
1474         * testsuite/libgomp.fortran/simd4.f90: Likewise.
1475         * testsuite/libgomp.fortran/simd5.f90: Likewise.
1476         * testsuite/libgomp.fortran/simd6.f90: Likewise.
1477         * testsuite/libgomp.fortran/simd7.f90: Likewise.
1478         * testsuite/libgomp.fortran/stack.f90: Likewise.
1479         * testsuite/libgomp.fortran/strassen.f90: Likewise.
1480         * testsuite/libgomp.fortran/tabs1.f90: Likewise.
1481         * testsuite/libgomp.fortran/tabs2.f: Likewise.
1482         * testsuite/libgomp.fortran/target1.f90: Likewise.
1483         * testsuite/libgomp.fortran/target2.f90: Likewise.
1484         * testsuite/libgomp.fortran/target3.f90: Likewise.
1485         * testsuite/libgomp.fortran/target4.f90: Likewise.
1486         * testsuite/libgomp.fortran/target5.f90: Likewise.
1487         * testsuite/libgomp.fortran/target6.f90: Likewise.
1488         * testsuite/libgomp.fortran/target7.f90: Likewise.
1489         * testsuite/libgomp.fortran/target8.f90: Likewise.
1490         * testsuite/libgomp.fortran/task1.f90: Likewise.
1491         * testsuite/libgomp.fortran/task2.f90: Likewise.
1492         * testsuite/libgomp.fortran/task3.f90: Likewise.
1493         * testsuite/libgomp.fortran/task4.f90: Likewise.
1494         * testsuite/libgomp.fortran/taskgroup1.f90: Likewise.
1495         * testsuite/libgomp.fortran/taskloop1.f90: Likewise.
1496         * testsuite/libgomp.fortran/taskloop2.f90: Likewise.
1497         * testsuite/libgomp.fortran/taskloop3.f90: Likewise.
1498         * testsuite/libgomp.fortran/taskloop4.f90: Likewise.
1499         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
1500         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
1501         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
1502         * testsuite/libgomp.fortran/threadprivate4.f90: Likewise.
1503         * testsuite/libgomp.fortran/udr1.f90: Likewise.
1504         * testsuite/libgomp.fortran/udr10.f90: Likewise.
1505         * testsuite/libgomp.fortran/udr11.f90: Likewise.
1506         * testsuite/libgomp.fortran/udr12.f90: Likewise.
1507         * testsuite/libgomp.fortran/udr13.f90: Likewise.
1508         * testsuite/libgomp.fortran/udr14.f90: Likewise.
1509         * testsuite/libgomp.fortran/udr15.f90: Likewise.
1510         * testsuite/libgomp.fortran/udr2.f90: Likewise.
1511         * testsuite/libgomp.fortran/udr3.f90: Likewise.
1512         * testsuite/libgomp.fortran/udr4.f90: Likewise.
1513         * testsuite/libgomp.fortran/udr5.f90: Likewise.
1514         * testsuite/libgomp.fortran/udr6.f90: Likewise.
1515         * testsuite/libgomp.fortran/udr7.f90: Likewise.
1516         * testsuite/libgomp.fortran/udr8.f90: Likewise.
1517         * testsuite/libgomp.fortran/udr9.f90: Likewise.
1518         * testsuite/libgomp.fortran/vla1.f90: Likewise.
1519         * testsuite/libgomp.fortran/vla2.f90: Likewise.
1520         * testsuite/libgomp.fortran/vla3.f90: Likewise.
1521         * testsuite/libgomp.fortran/vla4.f90: Likewise.
1522         * testsuite/libgomp.fortran/vla5.f90: Likewise.
1523         * testsuite/libgomp.fortran/vla6.f90: Likewise.
1524         * testsuite/libgomp.fortran/vla7.f90: Likewise.
1525         * testsuite/libgomp.fortran/vla8.f90: Likewise.
1526         * testsuite/libgomp.fortran/workshare1.f90: Likewise.
1527         * testsuite/libgomp.fortran/workshare2.f90: Likewise.
1528         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
1529         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
1530         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
1531         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
1532         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
1533         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
1534         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
1535         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
1536         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
1537         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise.
1538         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
1539         * testsuite/libgomp.oacc-fortran/c2.pl: Likewise.
1540         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
1541         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
1542         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
1543         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
1544         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
1545         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
1546         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
1547         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
1548         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
1549         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90: Likewise.
1550         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: Likewise.
1551         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
1552         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
1553         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
1554         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
1555         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
1556         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
1557         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
1558         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
1559         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
1560         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
1561         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
1562         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
1563         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
1564         * testsuite/libgomp.oacc-fortran/host_data-1.f90: Likewise.
1565         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
1566         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise.
1567         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
1568         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise.
1569         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise.
1570         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise.
1571         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise.
1572         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
1573         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
1574         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
1575         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
1576         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
1577         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
1578         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
1579         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
1580         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
1581         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
1582         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
1583         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
1584         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
1585         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
1586         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Likewise.
1587         * testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise.
1588         * testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise.
1589         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
1590         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
1591         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
1592         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise.
1593         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
1594         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
1595         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
1596         * testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
1597         * testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise.
1598         * testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise.
1599         * testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise.
1600         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
1601         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
1602         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
1603         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
1604         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
1605         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
1606         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
1607         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
1608         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
1609         * testsuite/libgomp.oacc-fortran/reduction-8.f90: Likewise.
1610         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
1611         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
1612         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
1613         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
1614         * testsuite/libgomp.oacc-fortran/routine-5.f90: Likewise.
1615         * testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
1616         * testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise.
1617         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
1618         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
1619         * testsuite/libgomp.oacc-fortran/update-1.f90: Likewise.
1621 2018-03-20  Richard Biener  <rguenther@suse.de>
1623         * testsuite/libgomp.graphite/force-parallel-4.c: XFAIL one
1624         parallelizable loop.
1626 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1628         PR target/84148
1629         * configure: Regenerate.
1631 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
1633         PR fortran/84418
1634         * libgomp.fortran/pr84418-1.f90: New test.
1635         * libgomp.fortran/pr84418-2.f90: New test.
1637 2018-02-14  Jakub Jelinek  <jakub@redhat.com>
1639         PR fortran/84313
1640         * testsuite/libgomp.fortran/threadprivate4.f90: Add
1641         -std=f2003 -fall-intrinsics into dg-additional-options.
1643 2018-02-08  Martin Jambor  <mjambor@suse.cz>
1645         * testsuite/libgomp.hsa.c/pr82416.c: Make the function with target
1646         clonable.
1648 2018-02-08  Martin Jambor  <mjambor@suse.cz>
1650         * testsuite/libgomp.hsa.c/staticvar.c: New test.
1652 2018-02-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1654         * testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)
1655         [__cplusplus]: Declare extern "C".
1657 2018-02-07  Tom de Vries  <tom@codesourcery.com>
1659         PR libgomp/84217
1660         * testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test.
1662 2018-01-29  Christoph Spiel  <cspiel@freenet.de>
1663             Jakub Jelinek  <jakub@redhat.com>
1665         PR libgomp/84096
1666         * omp.h.in (omp_init_nest_lock_with_hint): Use omp_nest_lock_t
1667         instead of omp_lock_t.
1669 2018-01-25  Tom de Vries  <tom@codesourcery.com>
1671         PR target/84028
1672         * testsuite/libgomp.oacc-fortran/pr84028.f90: New test.
1674 2018-01-24  Tom de Vries  <tom@codesourcery.com>
1676         PR target/83589
1677         * testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test.
1679 2018-01-24  Tom de Vries  <tom@codesourcery.com>
1681         PR target/81352
1682         * testsuite/libgomp.oacc-fortran/pr81352.f90: New test.
1684 2018-01-19  Tom de Vries  <tom@codesourcery.com>
1685             Cesar Philippidis  <cesar@codesourcery.com>
1687         PR target/83920
1688         * testsuite/libgomp.oacc-c-c++-common/pr83920.c: New test.
1689         * testsuite/libgomp.oacc-fortran/pr83920.f90: New test.
1691 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1693         Update copyright years.
1695         * libgomp.texi: Bump @copying's copyright year.
1697 2017-12-30  Tom de Vries  <tom@codesourcery.com>
1699         PR libgomp/83046
1700         * testsuite/libgomp.oacc-c-c++-common/pr83046.c: New test.
1701         * testsuite/libgomp.c-c++-common/pr83046.c: New test.
1703 2017-12-27  Tom de Vries  <tom@codesourcery.com>
1705         PR c++/83046
1706         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c (test_static)
1707         (test_nonstatic): Fix return type to workaround PR83046.
1709 2017-12-05  Jakub Jelinek  <jakub@redhat.com>
1711         PR testsuite/83281
1712         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use
1713         j suffix instead of i.
1714         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main):
1715         Likewise.
1717 2017-12-01  Cesar Philippidis  <cesar@codesourcery.com>
1719         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing
1720         call to acc_wait (1).
1722 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
1724         PR fortran/81304
1725         * testsuite/libgomp.fortran/pr81304.f90: New test.
1727 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
1729         PR fortran/81841
1730         * libgomp.fortran/pr81841.f90: New test.
1732 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
1734         PR libgomp/83106
1735         * target.c (gomp_target_init): Compute lengths just once and
1736         use them in both malloc size and subsequent copying.
1738 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1740         * configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS.
1741         * acinclude.m4: Add cet.m4.
1742         * configure: Regenerate.
1743         * Makefile.in: Likewise.
1744         * testsuite/Makefile.in: Likewise.
1746 2017-11-15  Tom de Vries  <tom@codesourcery.com>
1748         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: New test, copied
1749         from asyncwait-1.f90.  Rewrite into C.  Rewrite from float to int.
1750         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-2.c: New test, copied
1751         from asyncwait-2.f90.  Rewrite into C.  Rewrite from float to int.
1752         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-3.c: New test, copied
1753         from asyncwait-3.f90.  Rewrite into C.  Rewrite from float to int.
1755 2017-11-14  Tom de Vries  <tom@codesourcery.com>
1757         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Allow to run for
1758         non-nvidia devices.
1760 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
1762         PR c++/82835
1763         * testsuite/libgomp.c++/pr82835.C: New test.
1765 2017-11-06  Martin Liska  <mliska@suse.cz>
1767         * testsuite/libgomp.c++/loop-2.C: Return a value
1768         for functions with non-void return type, or change type to void,
1769         or add -Wno-return-type for test.
1770         * testsuite/libgomp.c++/loop-4.C: Likewise.
1771         * testsuite/libgomp.c++/parallel-1.C: Likewise.
1772         * testsuite/libgomp.c++/shared-1.C: Likewise.
1773         * testsuite/libgomp.c++/single-1.C: Likewise.
1774         * testsuite/libgomp.c++/single-2.C: Likewise.
1776 2017-10-31  Tom de Vries  <tom@codesourcery.com>
1778         * plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
1779         "do {} while (false)".
1780         (init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
1781         after HSA_DEBUG call.
1783 2017-10-28  Jakub Jelinek  <jakub@redhat.com>
1785         * target.c (struct gomp_coalesce_buf): New type.
1786         (MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
1787         (gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
1788         (gomp_copy_host2dev): Add CBUF argument, if copying into
1789         the cached ranges, memcpy into buffer instead of copying
1790         into device.
1791         (gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
1792         Add CBUF argument, pass it through to other calls.
1793         (gomp_map_vars): Aggregate copies from host to device if small enough
1794         and with small enough gaps in between into memcpy into a buffer and
1795         fewer host to device copies from the buffer.
1796         (gomp_update): Adjust gomp_copy_host2dev caller.
1798 2017-10-17  Thomas Schwinge  <thomas@codesourcery.com>
1800         * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
1801         run" directive.
1802         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
1803         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
1804         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
1805         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
1807 2017-10-16  Tom de Vries  <tom@codesourcery.com>
1809         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
1810         openacc_nvidia_accel_selected.
1811         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
1812         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
1813         * testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
1814         * testsuite/libgomp.oacc-fortran/declare-4.f90: Same
1815         * testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
1816         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
1817         openacc_nvidia_accel_selected. Skip for shared memory device.
1818         * testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
1819         * testsuite/libgomp.oacc-fortran/declare-3.f90: Same.
1821 2017-10-09  Martin Jambor  <mjambor@suse.cz>
1823         PR hsa/82416
1824         * testsuite/libgomp.hsa.c/pr82416.c: New test.
1826 2017-10-07  Tom de Vries  <tom@codesourcery.com>
1828         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
1829         Remove acc_device_nvidia references.
1830         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
1831         Same.
1833 2017-10-05  Tom de Vries  <tom@codesourcery.com>
1835         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove
1836         vector_length(32) clause from acc parallel directive.
1837         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same.
1839 2017-10-04  Tom de Vries  <tom@codesourcery.com>
1841         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
1842         (main): Reduce sum of arr elements.  Assert that hres is exactly
1843         representable in 32-bit floating point.
1844         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
1845         (main): Reduce sum of arr elements.  Assert that hres and hmres are
1846         exactly representable in 32-bit floating point.
1847         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
1849 2017-09-28  Tom de Vries  <tom@codesourcery.com>
1851         * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option
1852         setting.
1853         * testsuite/libgomp.c++/pr69393.C: Same.
1854         * testsuite/libgomp.c++/taskloop-1.C: Same.
1855         * testsuite/libgomp.c++/taskloop-3.C: Same.
1856         * testsuite/libgomp.c++/taskloop-4.C: Same.
1857         * testsuite/libgomp.c/for-4.c: Same.
1858         * testsuite/libgomp.c/pr66199-3.c: Same.
1859         * testsuite/libgomp.c/pr66199-4.c: Same.
1860         * testsuite/libgomp.c/pr66199-6.c: Same.
1861         * testsuite/libgomp.c/taskloop-1.c: Same.
1862         * testsuite/libgomp.c/taskloop-3.c: Same.
1863         * testsuite/libgomp.c/taskloop-4.c: Same.
1864         * testsuite/libgomp.fortran/aligned1.f03: Same.
1865         * testsuite/libgomp.fortran/condinc1.f: Same.
1866         * testsuite/libgomp.fortran/condinc3.f90: Same.
1867         * testsuite/libgomp.fortran/crayptr1.f90: Same.
1868         * testsuite/libgomp.fortran/crayptr2.f90: Same.
1869         * testsuite/libgomp.fortran/crayptr3.f90: Same.
1870         * testsuite/libgomp.fortran/omp_cond1.f: Same.
1871         * testsuite/libgomp.fortran/omp_cond3.F90: Same.
1872         * testsuite/libgomp.fortran/pr66199-1.f90: Same.
1873         * testsuite/libgomp.fortran/pr66199-2.f90: Same.
1874         * testsuite/libgomp.fortran/recursion1.f90: Same.
1875         * testsuite/libgomp.fortran/target2.f90: Same.
1876         * testsuite/libgomp.fortran/target5.f90: Same.
1877         * testsuite/libgomp.fortran/task3.f90: Same.
1879 2017-09-28  Tom de Vries  <tom@codesourcery.com>
1881         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove
1882         vector_length(32) clause from acc parallel directive.
1883         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same.
1885 2017-09-27  Tom de Vries  <tom@codesourcery.com>
1887         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main):
1888         Remove acc_device_nvidia references.
1890 2017-09-16  Tom de Vries  <tom@codesourcery.com>
1892         PR c/81875
1893         * testsuite/libgomp.c-c++-common/pr81875.c: New test.
1895 2017-09-14  Tom de Vries  <tom@codesourcery.com>
1897         * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove.
1898         * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ...
1899         * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here.
1900         * testsuite/libgomp.c/c.exp: Include test-cases from
1901         libgomp.c-c++-common.
1902         * testsuite/libgomp.c++/c++.exp: Same.  Force c++-mode compilation of .c
1903         files.
1905 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
1907         PR c++/81314
1908         * testsuite/libgomp.c++/pr81314.C: New test.
1910 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
1912         * libgomp.texi (Top): www.openacc.org now uses https.
1913         (Enabling OpenACC): Ditto.
1914         (acc_get_num_devices): Ditto.
1915         (acc_set_device_type): Ditto.
1916         (acc_get_device_type): Ditto.
1917         (acc_set_device_num): Ditto.
1918         (acc_get_device_num): Ditto.
1919         (acc_async_test): Ditto.
1920         (acc_async_test_all): Ditto.
1921         (acc_wait): Ditto.
1922         (acc_wait_all): Ditto.
1923         (acc_wait_all_async): Ditto.
1924         (acc_wait_async): Ditto.
1925         (acc_init): Ditto.
1926         (acc_shutdown): Ditto.
1927         (acc_on_device): Ditto.
1928         (acc_malloc): Ditto.
1929         (acc_free): Ditto.
1930         (acc_copyin): Ditto.
1931         (acc_present_or_copyin): Ditto.
1932         (acc_create): Ditto.
1933         (acc_present_or_create): Ditto.
1934         (acc_copyout): Ditto.
1935         (acc_delete): Ditto.
1936         (acc_update_device): Ditto.
1937         (acc_update_self): Ditto.
1938         (acc_map_data): Ditto.
1939         (acc_unmap_data): Ditto.
1940         (acc_deviceptr): Ditto.
1941         (acc_hostptr): Ditto.
1942         (acc_is_present): Ditto.
1943         (acc_memcpy_to_device): Ditto.
1944         (acc_memcpy_from_device): Ditto.
1945         (acc_get_current_cuda_device): Ditto.
1946         (acc_get_current_cuda_context): Ditto.
1947         (acc_get_cuda_stream): Ditto.
1948         (acc_set_cuda_stream): Ditto.
1949         (ACC_DEVICE_TYPE): Ditto.
1950         (ACC_DEVICE_NUM): Ditto.
1951         (OpenACC Library Interoperability): Ditto.
1953 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
1955         PR c/81687
1956         * testsuite/libgomp.c/pr81687-1.c: New test.
1957         * testsuite/libgomp.c/pr81687-2.c: New test.
1959 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
1961         PR c/69389
1962         * testsuite/libgomp.c/pr69389.c: New test.
1963         * testsuite/libgomp.c++/pr69389.C: New test.
1965 2017-08-07  Tom de Vries  <tom@codesourcery.com>
1967         PR middle-end/78266
1968         * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
1969         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
1971 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
1973         PR c/45784
1974         * testsuite/libgomp.c/pr45784.c: New test.
1975         * testsuite/libgomp.c++/pr45784.C: New test.
1977 2017-07-19  Tom de Vries  <tom@codesourcery.com>
1979         * testsuite/libgomp.oacc-c/vec.c: New test.
1981 2017-07-03  Tom de Vries  <tom@codesourcery.com>
1983         * plugin/plugin-hsa.c: Fix secure_getenv.h include.
1985 2017-06-27  Tom de Vries  <tom@codesourcery.com>
1987         * plugin/plugin-nvptx.c (notify_var): New function.
1988         (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.
1990 2017-06-27  Tom de Vries  <tom@codesourcery.com>
1992         * env.c (parse_unsigned_long_1): Factor out of ...
1993         (parse_unsigned_long): ... here.
1994         (parse_int_1): Factor out of ...
1995         (parse_int): ... here.
1996         (parse_int_secure): New function.
1997         (initialize_env): Use parse_int_secure for GOMP_DEBUG.
1998         * secure_getenv.h: Factor out of ...
1999         * plugin/plugin-hsa.c: ... here.
2000         * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.
2002 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
2004         PR c++/81130
2005         * testsuite/libgomp.c++/pr81130.C: New test.
2007 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2009         * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
2010         default args.
2011         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
2012         dg-xfail-run-if default args.
2014 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2016         * testsuite/libgomp.c/pr39591-2.c: Fix test case.
2017         * testsuite/libgomp.c/pr39591-3.c: Likewise.
2019 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
2021         PR libgomp/80822
2022         * config/linux/affinity.c (gomp_affinity_init_level_1): New function.
2023         (gomp_affinity_init_level): Use it.  Always analyze the core and thread
2024         sibling lists, depending on level just pick up what CPUs to put
2025         together into a place vs. whether add multiple ordered places.
2027 2017-05-24  Thomas Schwinge  <thomas@codesourcery.com>
2029         * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
2030         * libgomp.map (OACC_2.0.1): Add these.
2031         * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
2032         for "acc_wait", and "acc_wait_all", respectively.
2033         * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
2034         for "acc_wait", and "acc_wait_all", respectively.
2035         * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
2036         * libgomp.texi (acc_wait, acc_wait_all): Update.
2037         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
2038         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
2039         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
2041         * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
2042         acc_present_or_copyin and acc_present_or_create procedures,
2043         respectively.
2044         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
2045         generally different variants of OpenACC Runtime Library functions.
2046         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2048         * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
2049         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2051         * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
2052         of preprocessor definitions.
2053         * libgomp.h (strong_alias): Guard by "#ifdef
2054         HAVE_ATTRIBUTE_ALIAS".
2055         * oacc-mem.c: Provide "acc_pcreate" as alias for
2056         "acc_present_or_create", and "acc_pcopyin" as alias for
2057         "acc_present_or_copyin".
2058         * libgomp.map: New version "OACC_2.0.1".
2059         (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
2060         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
2061         its content into...
2062         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
2063         Extend testing.
2065         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
2066         when disabling nvptx offloading.
2068 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
2070         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
2071         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
2072         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
2074         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
2075         * testsuite/lib/libgomp.exp
2076         (check_effective_target_openacc_nvidia_accel_configured): New
2077         proc.
2078         * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
2079         (check_effective_target_c++): New procs.
2080         * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
2081         (check_effective_target_c++): Likewise.
2083 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
2085         PR middle-end/80809
2086         * testsuite/libgomp.c/pr80809-2.c: New test.
2087         * testsuite/libgomp.c/pr80809-3.c: New test.
2089         PR middle-end/80809
2090         * testsuite/libgomp.c/pr80809-1.c: New test.
2092         PR middle-end/80853
2093         * testsuite/libgomp.c/pr80853.c: New test.
2095 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
2097         * testsuite/libgomp.oacc-c++/template-reduction.C: Update.
2098         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
2099         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
2100         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
2101         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
2103         * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
2104         Debug output for failure.
2106 2017-05-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2108         * testsuite/lib/libgomp.exp: Load scanlang.exp.
2110 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
2112         PR bootstrap/80531
2113         * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
2114         bootstrap compare failures.
2116 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
2118         * testsuite/libgomp.c/target-36.c: New testcase.
2120 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
2122         * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type
2123         instead of char.
2125 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
2127         PR libgomp/80394
2128         * testsuite/libgomp.c/pr80394.c: New test.
2130 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
2132         PR libgomp/79876
2133         * config/posix/thread-stacksize.h: New file.
2134         * config/darwin/thread-stacksize.h: New file.
2135         * config/nvptx/thread-stacksize.h: New file.
2136         * env.c: Include thread-stacksize.h.
2137         (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
2138         instead of 0.  Call pthread_attr_setstacksize even if
2139         GOMP_DEFAULT_STACKSIZE is non-zero.
2141 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
2143         * env.c (initialize_env): Initialize stacksize to 0.
2145 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
2147         PR c++/80029
2148         * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.
2150 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
2152         PR c/79940
2153         * testsuite/libgomp.c/pr79940.c: New test.
2155 2017-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2157         * testsuite/libgomp.c/pr48591.c: Enable on all __float128
2158         targets.
2159         Add __float128 options.
2161 2017-02-11  John David Anglin  <danglin@gcc.gnu.org>
2163         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove
2164         hppa*-*-* dg-skip-if directive.
2166 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
2168         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move
2169         dg-skip-if directive into a comment.
2171 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
2172             Chung-Lin Tang  <cltang@codesourcery.com>
2174         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
2175         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
2176         add additional case.
2177         * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
2178         "openacc_nvidia_accel_selected".
2179         * libgomp.oacc-fortran/nested-function-1.f90 (test2):
2180         Add num_workers(8) clause.
2182 2017-02-08  John David Anglin  <danglin@gcc.gnu.org>
2184         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on
2185         hppa*-*-*.
2186         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't
2187         include complex.h on hppa*-*-hpux*.
2188         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
2190 2017-02-02  Thomas Schwinge  <thomas@codesourcery.com>
2192         * plugin/plugin-nvptx.c (nvptx_exec): Make it static.
2194         * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
2195         GOMP_OFFLOAD_openacc_exec.  Adjust all users.
2196         (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
2197         GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
2198         (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
2199         GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
2200         (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
2201         GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
2202         (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
2203         GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.
2205 2017-01-31  Thomas Schwinge  <thomas@codesourcery.com>
2207         * libgomp-plugin.h: #include <stdbool.h>.
2208         (GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
2209         (GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
2210         (GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
2211         (GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
2212         (GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
2213         (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
2214         (GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
2215         (GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
2216         (GOMP_OFFLOAD_openacc_register_async_cleanup)
2217         (GOMP_OFFLOAD_openacc_async_test)
2218         (GOMP_OFFLOAD_openacc_async_test_all)
2219         (GOMP_OFFLOAD_openacc_async_wait)
2220         (GOMP_OFFLOAD_openacc_async_wait_async)
2221         (GOMP_OFFLOAD_openacc_async_wait_all)
2222         (GOMP_OFFLOAD_openacc_async_wait_all_async)
2223         (GOMP_OFFLOAD_openacc_async_set_async)
2224         (GOMP_OFFLOAD_openacc_create_thread_data)
2225         (GOMP_OFFLOAD_openacc_destroy_thread_data)
2226         (GOMP_OFFLOAD_openacc_get_current_cuda_device)
2227         (GOMP_OFFLOAD_openacc_get_current_cuda_context)
2228         (GOMP_OFFLOAD_openacc_get_cuda_stream)
2229         (GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
2230         * libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
2231         these.
2232         * plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
2233         (GOMP_OFFLOAD_unload_image): Fix argument types.
2235 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2237         * testsuite/lib/libgomp.exp
2238         (check_effective_target_hsa_offloading_selected_nocache): Fix up
2239         check_compile invocation.  Fix up removal of executable.  Drop
2240         bogus "2>&1" argument.
2242         * testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules
2243         directive.
2245 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
2246             Martin Jambor  <mjambor@suse.cz>
2248         * plugin/hsa.h: Moved to top level include.
2249         * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
2251 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
2253         PR other/79046
2254         * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
2255         of cat to get version from BASE-VER file.
2256         * testsuite/Makefile.in: Regenerated.
2258 2017-01-19  Jakub Jelinek  <jakub@redhat.com>
2260         * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
2261         for _WIN64.
2263 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
2265         * plugin/hsa.h: Add GCC runtime library exception.
2266         * plugin/hsa_ext_finalize.h: Likewise.
2268         * plugin/configfrag.ac: For --without-cuda-driver don't initialize
2269         CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.  If both
2270         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
2271         cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
2272         plugin/include/cuda as include dir and -ldl instead of -lcuda as
2273         library to link ptx plugin against.
2274         * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
2275         (CUDA_CALLS): Define.
2276         (cuda_lib, cuda_lib_inited): New variables.
2277         (init_cuda_lib): New function.
2278         (CUDA_CALL_PREFIX): Define.
2279         (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
2280         (CUDA_CALL): Use FN instead of (FN).
2281         (CUDA_CALL_NOCHECK): Define.
2282         (cuda_error, fini_streams_for_device, select_stream_for_async,
2283         nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
2284         event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
2285         nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
2286         nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
2287         CUDA_CALL_NOCHECK.
2288         (nvptx_init): Call init_cuda_lib, if it fails, return false.  Use
2289         CUDA_CALL_NOCHECK.
2290         (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
2291         Use CUDA_CALL_NOCHECK.
2292         * plugin/cuda/cuda.h: New file.
2293         * config.h.in: Regenerated.
2294         * configure: Regenerated.
2296         PR other/79046
2297         * configure.ac: Add GCC_BASE_VER.
2298         * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
2299         get version from BASE-VER file.
2300         * testsuite/Makefile.in: Regenerated.
2301         * configure: Regenerated.
2302         * Makefile.in: Regenerated.
2304 2017-01-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2306         PR libgomp/60670
2307         * Makefile.am: Make fincludedir multilib-aware.
2308         * Makefile.in: Regenerate.
2310 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
2312         Update copyright years.
2314         * libgomp.texi: Bump @copying's copyright year.
2316 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2318         * libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
2319         pthread_spinlock_t instead of gomp_mutex_t lock.
2320         (gomp_get_thread_pool): Likewise.
2321         (gomp_release_thread_pool): Likewise.
2322         * libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
2323         Likewise.
2325 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2327         * config/rtems/pool.h (gomp_get_thread_pool): Return proper
2328         thread pool in case nthreads == 1.
2330 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2332         * config/nvptx/env.c: Delete.
2333         * icv.c: Move definitions of ICV variables back ...
2334         * env.c: ...here.  Do not compile environment-related functionality if
2335         LIBGOMP_OFFLOADED_ONLY is set.
2337 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2339         * configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
2340         (LIBGOMP_OFFLOADED_ONLY): ...here; new define.
2341         * configure: Regenerate.
2342         * config.h.in: Likewise.
2344 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
2346         * Makefile.in: Regenerate with automake-1.11.6.
2347         * aclocal.m4: Likewise.
2348         * configure: Likewise.
2349         * testsuite/Makefile.in: Likewise.
2351 2016-11-28  Alexander Monakov  <amonakov@ispras.ru>
2353         * config/nvptx/critical.c: Delete to use generic implementation.
2355 2016-11-28  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
2357         * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include
2358         ../../affinity.c as fallback.
2359         * config/nvptx/affinity.c: Delete to use fallback implementation.
2361 2016-11-23  Alexander Monakov  <amonakov@ispras.ru>
2362             Jakub Jelinek  <jakub@redhat.com>
2363             Dmitry Melnik  <dm@ispras.ru>
2365         * Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
2366         * Makefile.in. Regenerate.
2367         * configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
2368         (LIBGOMP_USE_PTHREADS): ...here; new define.
2369         * configure: Regenerate.
2370         * config.h.in: Likewise.
2371         * config/posix/affinity.c: Move to...
2372         * affinity.c: ...here (new file).  Guard use of Pthreads-specific
2373         interface by LIBGOMP_USE_PTHREADS. 
2374         * critical.c: Split out GOMP_atomic_{start,end} into...
2375         * atomic.c: ...here (new file).
2376         * env.c: Split out ICV definitions into...
2377         * icv.c: ...here (new file) and...
2378         * icv-device.c: ...here. New file.
2379         * config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
2380         (gomp_destroy_lock_30): Ditto.
2381         (gomp_set_lock_30): Ditto.
2382         (gomp_unset_lock_30): Ditto.
2383         (gomp_test_lock_30): Ditto.
2384         (gomp_init_nest_lock_30): Ditto.
2385         (gomp_destroy_nest_lock_30): Ditto.
2386         (gomp_set_nest_lock_30): Ditto.
2387         (gomp_unset_nest_lock_30): Ditto.
2388         (gomp_test_nest_lock_30): Ditto.
2389         * lock.c: New.
2390         * config/nvptx/lock.c: New.
2391         * config/nvptx/bar.c: New.
2392         * config/nvptx/bar.h: New.
2393         * config/nvptx/doacross.h: New.
2394         * config/nvptx/error.c: New.
2395         * config/nvptx/icv-device.c: New.
2396         * config/nvptx/mutex.h: New.
2397         * config/nvptx/pool.h: New.
2398         * config/nvptx/proc.c: New.
2399         * config/nvptx/ptrlock.h: New.
2400         * config/nvptx/sem.h: New.
2401         * config/nvptx/simple-bar.h: New.
2402         * config/nvptx/target.c: New.
2403         * config/nvptx/task.c: New.
2404         * config/nvptx/team.c: New.
2405         * config/nvptx/time.c: New.
2406         * config/posix/simple-bar.h: New.
2407         * libgomp.h: Guard pthread.h inclusion.  Include simple-bar.h.
2408         (gomp_num_teams_var): Declare.
2409         (struct gomp_thread_pool): Change threads_dock member to
2410         gomp_simple_barrier_t.
2411         [__nvptx__] (gomp_thread): New implementation.
2412         (gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
2413         (gomp_thread_destructor): Ditto.
2414         (gomp_init_thread_affinity): Ditto.
2415         * team.c: Guard uses of Pthreads-specific interfaces by
2416         LIBGOMP_USE_PTHREADS.  Adjust all uses of threads_dock.
2417         (gomp_free_thread) [__nvptx__]: Do not call 'free'.
2418         * config/nvptx/alloc.c: Delete.
2419         * config/nvptx/barrier.c: Ditto.
2420         * config/nvptx/fortran.c: Ditto.
2421         * config/nvptx/iter.c: Ditto.
2422         * config/nvptx/iter_ull.c: Ditto.
2423         * config/nvptx/loop.c: Ditto.
2424         * config/nvptx/loop_ull.c: Ditto.
2425         * config/nvptx/ordered.c: Ditto.
2426         * config/nvptx/parallel.c: Ditto.
2427         * config/nvptx/priority_queue.c: Ditto.
2428         * config/nvptx/sections.c: Ditto.
2429         * config/nvptx/single.c: Ditto.
2430         * config/nvptx/splay-tree.c: Ditto.
2431         * config/nvptx/work.c: Ditto.
2432         * testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
2433         -foffload=-lgfortran in addition to -lgfortran.
2434         * testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.
2435         * plugin/plugin-nvptx.c: Include <limits.h>.
2436         (struct targ_fn_descriptor): Add new fields.
2437         (struct ptx_device): Ditto.  Set them...
2438         (nvptx_open_device): ...here.
2439         (nvptx_adjust_launch_bounds): New.
2440         (nvptx_host2dev): Allow NULL 'nvthd'.
2441         (nvptx_dev2host): Ditto.
2442         (GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
2443         (link_ptx): Adjust log sizes.
2444         (nvptx_host2dev): Allow NULL 'nvthd'.
2445         (nvptx_dev2host): Ditto.
2446         (nvptx_set_clocktick): New.  Use it...
2447         (GOMP_OFFLOAD_load_image): ...here.  Set new targ_fn_descriptor
2448         fields.
2449         (GOMP_OFFLOAD_dev2dev): New.
2450         (nvptx_adjust_launch_bounds): New.
2451         (nvptx_stacks_size): New.
2452         (nvptx_stacks_alloc): New.
2453         (nvptx_stacks_free): New.
2454         (GOMP_OFFLOAD_run): New.
2455         (GOMP_OFFLOAD_async_run): New (stub).
2457 2016-11-23  Martin Jambor  <mjambor@suse.cz>
2459         * testsuite/libgomp.hsa.c/bits-insns.c: New test.
2460         * testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
2461         * testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
2463 2016-11-23  Martin Liska  <mliska@suse.cz>
2464             Martin Jambor  <mjambor@suse.cz>
2466         * plugin/hsa.h: New file.
2467         * plugin/hsa_ext_finalize.h: New file.
2468         * plugin/configfrag.ac: Remove hsa-kmt-lib test.  Added checks for
2469         header file unistd.h, and functions secure_getenv, __secure_getenv,
2470         getuid, geteuid, getgid and getegid.
2471         * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added
2472         -D_GNU_SOURCE.
2473         * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h.
2474         Handle various cases of secure_getenv presence, add an implementation
2475         when we can test effective UID and GID.
2476         (struct hsa_runtime_fn_info): New structure.
2477         (hsa_runtime_fn_info hsa_fns): New variable.
2478         (hsa_runtime_lib): Likewise.
2479         (support_cpu_devices): Likewise.
2480         (init_enviroment_variables): Load newly introduced ENV
2481         variables.
2482         (hsa_warn): Call hsa run-time functions via hsa_fns structure.
2483         (hsa_fatal): Likewise.
2484         (DLSYM_FN): New macro.
2485         (init_hsa_runtime_functions): New function.
2486         (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns
2487         structure.  Depending on environment, also allow CPU devices.
2488         (init_hsa_context): Call hsa run-time functions via hsa_fns structure.
2489         (get_kernarg_memory_region): Likewise.
2490         (GOMP_OFFLOAD_init_device): Likewise.
2491         (destroy_hsa_program): Likewise.
2492         (init_basic_kernel_info): New function.
2493         (GOMP_OFFLOAD_load_image): Use it.
2494         (create_and_finalize_hsa_program): Call hsa run-time functions via
2495         hsa_fns structure.
2496         (create_single_kernel_dispatch): Likewise.
2497         (release_kernel_dispatch): Likewise.
2498         (init_single_kernel): Likewise.
2499         (parse_target_attributes): Allow up multiple HSA grid dimensions.
2500         (get_group_size): New function.
2501         (run_kernel): Likewise.
2502         (GOMP_OFFLOAD_run): Outline most functionality to run_kernel.
2503         (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns
2504         structure.
2505         * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support.
2506         * testsuite/libgomp-test-support.exp.in: Likewise.
2507         * Makefile.in: Regenerated.
2508         * aclocal.m4: Likewise.
2509         * config.h.in: Likewise.
2510         * configure: Likewise.
2511         * testsuite/Makefile.in: Likewise.
2513 2016-11-15  Martin Jambor  <mjambor@suse.cz>
2514             Alexander Monakov  <amonakov@ispras.ru>
2516         * testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
2517         mapping clauses to target constructs.
2518         * testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
2520 2016-11-15  Matthias Klose  <doko@ubuntu.com>
2522         * configure: Regenerate.
2524 2016-11-10  Jakub Jelinek  <jakub@redhat.com>
2526         * omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
2527         * omp_lib.h.in (openmp_version): Likewise.
2528         * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
2529         of 201307.
2530         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2532         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90
2533         (fib_wrapper): Add map(from: x) clause.
2534         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90
2535         (e_53_2): Likewise.
2536         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90
2537         (accum): Add map(tmp) clause.
2538         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90
2539         (accum): Add map(tofrom: tmp) clause.
2540         * testsuite/libgomp.fortran/examples-4/target_data-3.f90
2541         (gramSchmidt): Likewise.
2542         * testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
2543         map(tofrom: sum) clause.
2544         * testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
2545         map (alloc: a, l) clause.  Add defaultmap(tofrom: scalar) clause.
2546         * testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
2547         only allowed on the loop iterator.
2548         * testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
2549         * testsuite/libgomp.fortran/taskloop2.f90: New test.
2550         * testsuite/libgomp.fortran/taskloop4.f90: New test.
2551         * testsuite/libgomp.fortran/doacross1.f90: New test.
2552         * testsuite/libgomp.fortran/doacross3.f90: New test.
2553         * testsuite/libgomp.fortran/taskloop1.f90: New test.
2554         * testsuite/libgomp.fortran/taskloop3.f90: New test.
2555         * testsuite/libgomp.fortran/doacross2.f90: New test.
2556         * testsuite/libgomp.c/doacross-1.c (main): Add missing
2557         #pragma omp atomic read.
2558         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
2559         * testsuite/libgomp.c/doacross-3.c (main): Likewise.
2561 2016-11-02  Cesar Philippidis  <cesar@codesourcery.com>
2562             Nathan Sidwell  <nathan@acm.org>
2564         * plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes
2565         to determine default geometry.
2566         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang
2567         dimension.
2569 2016-11-01  Jakub Jelinek  <jakub@redhat.com>
2571         * hashtab.h: Use standard GPLv3 with runtime exception
2572         boilerplate.
2574 2016-10-27  Aldy Hernandez  <aldyh@redhat.com>
2576         * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
2577         size when allocating new thread.
2579 2016-09-14  Marek Polacek  <polacek@redhat.com>
2581         * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
2583 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
2585         PR fortran/71014
2586         * testsuite/libgomp.fortran/pr71014.f90: New test.
2588 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
2590         PR middle-end/70895
2591         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
2592         firstprivate clauses.
2593         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
2594         copy clauses.
2595         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
2596         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
2597         * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
2598         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
2599         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
2600         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
2601         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
2602         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
2603         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
2604         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
2605         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
2606         * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
2608 2016-08-14  Chung-Lin Tang  <cltang@codesourcery.com>
2610         PR fortran/70598
2611         * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.
2613 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
2615         PR c++/58706
2616         * testsuite/libgomp.c++/pr58706.C: New test.
2618 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
2620         * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
2621         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
2622         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
2623         Likewise.
2624         * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
2625         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
2626         Likewise.
2627         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
2629         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
2630         test, and don't hardcode -O0.
2632 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
2634         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
2636 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
2638         * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
2639         test.
2641 2016-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2643         PR middle-end/71734
2644         * testsuite/libgomp.fortran/pr71734-1.f90: New test.
2645         * testsuite/libgomp.fortran/pr71734-2.f90: Likewise.
2647 2016-07-01  Jakub Jelinek  <jakub@redhat.com>
2649         PR fortran/71717
2650         * testsuite/libgomp.fortran/associate3.f90: New test.
2652 2016-06-17  Jakub Jelinek  <jakub@redhat.com>
2654         * testsuite/libgomp.c++/target-21.C: New test.
2656 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
2658         * testsuite/libgomp.c++/target-20.C: New test.
2660 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2661             Cesar Philippidis  <cesar@codesourcery.com>
2663         PR middle-end/71373
2664         * libgomp.oacc-c/nested-function-1.c: New file.
2665         * libgomp.oacc-c/nested-function-2.c: Likewise.
2666         * libgomp.oacc-fortran/nested-function-1.f90: Likewise.
2667         * libgomp.oacc-fortran/nested-function-2.f90: Likewise.
2668         * libgomp.oacc-fortran/nested-function-3.f90: Likewise.
2670 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
2672         PR c/71381
2673         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include
2674         "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c".
2675         * testsuite/libgomp.oacc-fortran/cache-1.f95: New file.
2677 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
2679         * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
2680         * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.
2682 2016-06-01  Cesar Philippidis  <cesar@codesourcery.com>
2684         PR c/70688
2685         * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file.
2687 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
2689         * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
2690         instead of invalid schedule(static, 0).
2691         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
2693 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
2695         * oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
2696         * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
2697         parameter, use to set async stream around call to gomp_unmap_vars,
2698         call gomp_unmap_vars() with 'do_copyfrom' set to true.
2699         * plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
2700         (event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
2701         events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
2702         (event_add): Add int parameter, initialize 'val' field when
2703         adding new ptx_event struct.
2704         (nvptx_evec): Adjust event_add() call arguments.
2705         (nvptx_host2dev): Likewise.
2706         (nvptx_dev2host): Likewise.
2707         (nvptx_wait_async): Likewise.
2708         (nvptx_wait_all_async): Likewise.
2709         (GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
2710         pass to event_add() call.
2711         * oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
2712         parameter.
2713         * oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
2714         call openacc.register_async_cleanup_func() hook.
2715         * oacc-parallel.c (GOACC_parallel_keyed): Likewise.
2716         * target.c (gomp_copy_from_async): Delete function.
2717         (gomp_map_vars): Remove async_refcount.
2718         (gomp_unmap_vars): Likewise.
2719         (gomp_load_image_to_device): Likewise.
2720         (omp_target_associate_ptr): Likewise.
2721         * libgomp.h (struct splay_tree_key_s): Remove async_refcount.
2722         (acc_dispatch_t.register_async_cleanup_func): Add int parameter.
2723         (gomp_copy_from_async): Remove.
2725 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
2727         * target.c (gomp_device_copy): New function.
2728         (gomp_copy_host2dev): Likewise.
2729         (gomp_copy_dev2host): Likewise.
2730         (gomp_free_device_memory): Likewise.
2731         (gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
2732         (gomp_map_pointer): Likewise.
2733         (gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
2734         NULL value from alloc_func plugin hook.
2735         (gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
2736         (gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
2737         (gomp_unmap_vars): Likewise.
2738         (gomp_update): Adjust to call gomp_copy_dev2host and
2739         gomp_copy_host2dev functions.
2740         (gomp_unload_image_from_device): Handle false value from
2741         unload_image_func plugin hook.
2742         (gomp_init_device): Handle false value from init_device_func
2743         plugin hook.
2744         (gomp_exit_data): Adjust to call gomp_copy_dev2host.
2745         (omp_target_free): Adjust to call gomp_free_device_memory.
2746         (omp_target_memcpy): Handle return values from host2dev_func,
2747         dev2host_func, and dev2dev_func plugin hooks.
2748         (omp_target_memcpy_rect_worker): Likewise.
2749         (gomp_target_fini): Handle false value from fini_device_func
2750         plugin hook.
2751         * libgomp.h (struct gomp_device_descr): Adjust return type of
2752         init_device_func, fini_device_func, unload_image_func, free_func,
2753         dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
2754         * oacc-init.c (acc_shutdown_1): Handle false value from
2755         fini_device_func plugin hook.
2756         * oacc-host.c (host_init_device): Change return type to bool.
2757         (host_fini_device): Likewise.
2758         (host_unload_image): Likewise.
2759         (host_free): Likewise.
2760         (host_dev2host): Likewise.
2761         (host_host2dev): Likewise.
2762         * oacc-mem.c (acc_free): Handle plugin hook fatal error case.
2763         (acc_memcpy_to_device): Likewise.
2764         (acc_memcpy_from_device): Likewise.
2765         (delete_copyout): Add libfnname parameter, handle free_func
2766         hook fatal error case.
2767         (acc_delete): Adjust delete_copyout call.
2768         (acc_copyout): Likewise.
2769         (update_dev_host): Move gomp_mutex_unlock to after
2770         host2dev/dev2host hook calls.
2772         * plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
2773         to 'hsa_error_msg', for clarity.
2774         (hsa_fatal): Likewise.
2775         (hsa_error): New function.
2776         (init_hsa_context): Change return type to bool, adjust to return
2777         false on error.
2778         (GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
2779         return value.
2780         (GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
2781         return false on error.
2782         (get_agent_info): Adjust to return NULL on error.
2783         (destroy_hsa_program): Change return type to bool, adjust to
2784         return false on error.
2785         (GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
2786         (destroy_module): Change return type to bool, adjust to
2787         return false on error.
2788         (GOMP_OFFLOAD_unload_image): Likewise.
2789         (GOMP_OFFLOAD_fini_device): Likewise.
2790         (GOMP_OFFLOAD_alloc): Change to return NULL when called.
2791         (GOMP_OFFLOAD_free): Change to return false when called.
2792         (GOMP_OFFLOAD_dev2host): Likewise.
2793         (GOMP_OFFLOAD_host2dev): Likewise.
2794         (GOMP_OFFLOAD_dev2dev): Likewise.
2796         * plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
2797         (CUDA_CALL): Likewise.
2798         (CUDA_CALL_ASSERT): Likewise.
2799         (map_init): Change return type to bool, use CUDA_CALL* macros.
2800         (map_fini): Likewise.
2801         (init_streams_for_device): Change return type to bool, adjust
2802         call to map_init.
2803         (fini_streams_for_device): Change return type to bool, adjust
2804         call to map_fini.
2805         (select_stream_for_async): Release stream_lock before calls to
2806         GOMP_PLUGIN_fatal, adjust call to map_init.
2807         (nvptx_init): Use CUDA_CALL* macros.
2808         (nvptx_attach_host_thread_to_device): Change return type to bool,
2809         use CUDA_CALL* macros.
2810         (nvptx_open_device): Use CUDA_CALL* macros.
2811         (nvptx_close_device): Change return type to bool, use CUDA_CALL*
2812         macros.
2813         (nvptx_get_num_devices): Use CUDA_CALL* macros.
2814         (link_ptx): Change return type to bool, use CUDA_CALL* macros.
2815         (nvptx_exec): Use CUDA_CALL* macros.
2816         (nvptx_alloc): Use CUDA_CALL* macros.
2817         (nvptx_free): Change return type to bool, use CUDA_CALL* macros.
2818         (nvptx_host2dev): Likewise.
2819         (nvptx_dev2host): Likewise.
2820         (nvptx_wait): Use CUDA_CALL* macros.
2821         (nvptx_wait_async): Likewise.
2822         (nvptx_wait_all): Likewise.
2823         (nvptx_wait_all_async): Likewise.
2824         (nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
2825         use CUDA_CALL* macros, adjust call to map_fini.
2826         (GOMP_OFFLOAD_init_device): Change return type to bool,
2827         adjust code accordingly.
2828         (GOMP_OFFLOAD_fini_device): Likewise.
2829         (GOMP_OFFLOAD_load_image): Adjust calls to
2830         nvptx_attach_host_thread_to_device/link_ptx to handle errors,
2831         use CUDA_CALL* macros.
2832         (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
2833         return code.
2834         (GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
2835         (GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
2836         handle error return.
2837         (GOMP_OFFLOAD_dev2host): Likewise.
2838         (GOMP_OFFLOAD_host2dev): Likewise.
2839         (GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
2840         (GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
2842 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
2844         * oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
2845         (acc_free): Likewise.
2846         (acc_memcpy_to_device): Likewise.
2847         (acc_memcpy_from_device): Likewise.
2848         (acc_deviceptr): Likewise.
2849         (acc_hostptr): Likewise.
2850         (acc_is_present): Likewise.
2851         (acc_map_data): Likewise.
2852         (acc_unmap_data): Likewise.
2853         (present_create_copy): Likewise.
2854         (delete_copyout): Likewise.
2855         (update_dev_host): Likewise.
2856         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
2857         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
2858         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
2859         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
2860         * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
2861         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
2862         it only runs on nvptx targets.
2863         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
2864         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
2865         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
2866         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
2867         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
2868         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
2869         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
2870         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
2871         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
2872         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
2873         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
2874         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
2875         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
2876         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
2877         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
2878         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
2879         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
2880         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
2881         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
2882         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
2883         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
2884         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
2885         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
2887 2016-05-23  Martin Jambor  <mjambor@suse.cz>
2889         * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
2891 2016-05-17  Chung-Lin Tang  <cltang@codesourcery.com>
2893         * oacc-init.c (acc_init): Remove !cached_base_dev condition on call
2894         to gomp_init_targets_once.
2895         (acc_set_device_type): Remove !cached_base_dev condition on call to
2896         gomp_init_targets_once, move call to before acc_device_lock acquire,
2897         to avoid deadlock.
2898         (acc_get_device_num): Remove !cached_base_dev condition on call to
2899         gomp_init_targets_once.
2900         (acc_set_device_num): Likewise.
2902 2016-05-16  Martin Jambor  <mjambor@suse.cz>
2904         * testsuite/libgomp.hsa.c/complex-align-2.c: New test.
2906 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2908         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
2909         expected partitioning.
2911 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
2913         PR middle-end/70626
2914         * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
2915         * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
2916         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.
2918 2016-04-21  Alexander Monakov  <amonakov@ispras.ru>
2920         * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error
2921         non-fatal.
2923 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
2925         PR middle-end/70680
2926         * testsuite/libgomp.c/pr70680-1.c: New test.
2927         * testsuite/libgomp.c/pr70680-2.c: New test.
2929 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
2931         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
2932         pass parameter variables to subroutines.
2934 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
2936         PR middle-end/70643
2937         * testsuite/libgomp.oacc-fortran/pr70643.f90: New test.
2939 2016-04-13  Cesar Philippidis  <cesar@codesourcery.com>
2941         PR testsuite/68242
2942         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test.
2943         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
2945 2016-04-12  Thomas Schwinge  <thomas@codesourcery.com>
2947         * libgomp_g.h: Rename GOACC_parallel_keyd prototype to
2948         GOACC_parallel_keyed, restore GOACC_parallel prototype, new
2949         GOACC_declare prototype.
2951         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
2952         Merge this file, and...
2953         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
2954         ... this file, and...
2955         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
2956         ... this file, and...
2957         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
2958         ... this file, and...
2959         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
2960         ... this file, and...
2961         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
2962         ... this file, and...
2963         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
2964         ... this file, and...
2965         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
2966         ... this file, and...
2967         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
2968         ... this file, and...
2969         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
2970         ... this file, and...
2971         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
2972         ... this file, and...
2973         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
2974         ... this file, and...
2975         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
2976         ... this file into...
2977         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
2978         file.
2980         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
2981         Make failure observable.
2983 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
2985         * libgomp.h (struct gomp_target_task): Remove firstprivate_copies
2986         field.
2987         * target.c (gomp_target_fallback_firstprivate,
2988         gomp_target_unshare_firstprivate): Removed.
2989         (GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory
2990         before waiting for dependencies.
2991         (gomp_target_task_fn): Don't copy firstprivate vars here.
2992         * task.c (GOMP_PLUGIN_target_task_completion): Don't free
2993         firstprivate_copies here.
2994         (gomp_create_target_task): Don't initialize firstprivate_copies field.
2995         * testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of
2996         explicit/implicit firstprivate.
2998 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
3000         PR lto/70289
3001         PR ipa/70348
3002         PR tree-optimization/70373
3003         PR middle-end/70533
3004         PR middle-end/70534
3005         PR middle-end/70535
3006         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New
3007         test.
3008         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New
3009         test.
3010         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New
3011         test.
3012         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New
3013         test.
3014         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New
3015         test.
3016         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New
3017         test.
3018         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New
3019         test.
3020         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New
3021         test.
3022         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New
3023         test.
3024         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test.
3025         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test.
3026         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test.
3027         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New
3028         test.
3029         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New
3030         test.
3031         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New
3032         test.
3033         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New
3034         test.
3035         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test
3036         coverage.
3037         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
3038         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
3039         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test.
3040         * testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test.
3041         * testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test.
3042         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test
3043         coverage.
3044         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
3045         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3046         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3047         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
3048         * testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test.
3049         * testsuite/libgomp.oacc-c-c++-common/reduction.h: New test.
3050         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test.
3051         * testsuite/libgomp.oacc-fortran/pr70289.f90: New test.
3052         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage.
3053         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
3054         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
3055         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
3056         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
3057         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
3058         * testsuite/libgomp.oacc-fortran/reduction-7.f90: New test.
3060 2016-03-30  Thomas Schwinge  <thomas@codesourcery.com>
3061             James Norris  <jnorris@codesourcery.com>
3062             Nathan Sidwell  <nathan@codesourcery.com>
3063             Julian Brown  <julian@codesourcery.com>
3064             Cesar Philippidis  <cesar@codesourcery.com>
3065             Chung-Lin Tang  <cltang@codesourcery.com>
3066             Tom de Vries  <tom@codesourcery.com>
3068         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update.
3069         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
3070         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
3071         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise.
3072         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
3073         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
3074         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
3075         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
3076         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
3077         XFAIL.
3078         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
3079         Incorporate...
3080         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this
3081         file.
3082         * testsuite/libgomp.oacc-c++/template-reduction.C: New file.
3083         * testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise.
3084         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise.
3085         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c:
3086         Likewise.
3087         * testsuite/libgomp.oacc-c-c++-common/private-variables.c:
3088         Likewise.
3089         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
3090         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise.
3091         * testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
3092         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise.
3093         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
3094         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
3095         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
3096         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
3097         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
3098         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90:
3099         Likewise.
3100         * testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise.
3101         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
3102         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this
3103         file...
3104         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this
3105         file into...
3106         * testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new
3107         file.  Update.
3108         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New
3109         file.
3110         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c:
3111         Likewise.
3112         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to...
3113         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c:
3114         ... this new file.  Update.
3115         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to...
3116         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c:
3117         ... this new file.  Update.
3118         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New
3119         file.  Incorporate...
3120         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this
3121         file, and...
3122         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this
3123         file, and...
3124         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this
3125         file.
3126         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file.
3128 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
3130         * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call
3131         set-torture-options.
3133 2016-03-24  Thomas Schwinge  <thomas@codesourcery.com>
3135         * testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use
3136         gcc-dg-runtest.
3137         * testsuite/libgomp.oacc-c/c.exp: Likewise.
3138         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify
3139         -fno-builtin-acc_on_device instead of -O0.
3140         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for
3141         -O0.
3142         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
3143         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c:
3144         Likewise.
3145         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
3146         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
3147         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
3148         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
3149         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
3150         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
3151         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
3152         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
3153         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
3154         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
3155         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
3156         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
3157         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
3158         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
3159         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
3160         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
3161         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
3162         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
3163         Don't specify -O2.
3164         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
3165         Likewise.
3166         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
3167         Likewise.
3169 2016-03-24  Martin Liska  <mliska@suse.cz>
3171         * plugin/plugin-hsa.c (packet_store_release): New function
3172         that is taken from the HSA runtime manual.
3173         (GOMP_OFFLOAD_run): Use the function.
3175 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
3177         PR c++/70376
3178         * testsuite/libgomp.c++/pr70376.C: New test.
3180 2016-03-23  Tom de Vries  <tom@codesourcery.com>
3182         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing
3183         initialization of lresult and lvresult.
3184         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Same.
3186 2016-03-23  James Norris  <jnorris@codesourcery.com>
3187             Daichi Fukuoka <dc-fukuoka@sgi.com>
3189         PR libgomp/69414
3190         * oacc-mem.c (delete_copyout, update_dev_host): Fix device address.
3191         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests.
3192         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
3193         * testsuite/libgomp.oacc-fortran/update-1.f90: New file.
3195 2016-03-23  Martin Liska  <mliska@suse.cz>
3197         PR hsa/70337
3198         * plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow
3199         argument just in case a dispatched kernel uses that argument.
3201 2016-03-16  Thomas Schwinge  <thomas@codesourcery.com>
3203         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to
3204         -ftree-parallelize-loops/-fopenacc changes.
3205         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
3206         Likewise.
3207         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
3208         Likewise.
3209         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
3210         Likewise.
3211         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
3212         Likewise.
3213         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
3214         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
3216 2016-03-13  Thomas Schwinge  <thomas@codesourcery.com>
3218         * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to
3219         always_ld_library_path the path to libgcc_s.
3221 2016-03-10  Cesar Philippidis  <cesar@codesourcery.com>
3223         PR testsuite/70009
3224         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed.
3226 2016-03-09  Tom de Vries  <tom@codesourcery.com>
3228         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test.
3229         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same.
3230         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
3231         Same.
3232         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same.
3233         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same.
3234         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same.
3235         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same.
3237 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3239         * testsuite/lib/libgomp.exp
3240         (check_effective_target_hsa_offloading_selected_nocache): New.
3241         (check_effective_target_hsa_offloading_selected): Likewise.
3242         * testsuite/libgomp.hsa.c/c.exp: Likewise.
3243         * testsuite/libgomp.hsa.c/alloca-1.c: Likewise.
3244         * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise.
3245         * testsuite/libgomp.hsa.c/builtins-1.c: Likewise.
3246         * testsuite/libgomp.hsa.c/complex-1.c: Likewise.
3247         * testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise.
3248         * testsuite/libgomp.hsa.c/function-call-1.c: Likewise.
3249         * testsuite/libgomp.hsa.c/get-level-1.c: Likewise.
3250         * testsuite/libgomp.hsa.c/gridify-1.c: Likewise.
3251         * testsuite/libgomp.hsa.c/gridify-2.c: Likewise.
3252         * testsuite/libgomp.hsa.c/gridify-3.c: Likewise.
3253         * testsuite/libgomp.hsa.c/gridify-4.c: Likewise.
3254         * testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise.
3255         * testsuite/libgomp.hsa.c/pr69568.c: Likewise.
3256         * testsuite/libgomp.hsa.c/rotate-1.c: Likewise.
3257         * testsuite/libgomp.hsa.c/switch-1.c: Likewise.
3258         * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise.
3260 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3262         * testsuite/libgomp.c/examples-4/async_target-2.c: Only run on
3263         non-shared memory accelerators.
3264         * testsuite/libgomp.c/examples-4/device-1.c: Likewise.
3265         * testsuite/libgomp.c/examples-4/target-5.c: Likewise.
3266         * testsuite/libgomp.c/examples-4/target_data-6.c: Likewise.
3267         * testsuite/libgomp.c/examples-4/target_data-7.c: Likewise.
3268         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
3269         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
3270         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
3271         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
3272         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
3274 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3276         * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to
3277         ALWAYS_CFLAGS.
3279 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
3281         PR libgomp/69555
3282         * testsuite/libgomp.c++/pr69555-1.C: New test.
3283         * testsuite/libgomp.c++/pr69555-2.C: New test.
3285 2016-02-26  Keith McDaniel <k.allen.mcdaniel@gmail.com>
3286             Martin Jambor  <mjambor@suse.cz>
3288         * testsuite/lib/libgomp.exp
3289         (check_effective_target_offload_device_shared_as): New proc.
3290         * testsuite/libgomp.c++/declare_target-1.C: New test.
3292 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
3294         PR driver/68463
3295         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
3297 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
3299         * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
3300         * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
3301         dims.
3302         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
3303         -ftree-parallelize-loops/-fopenacc changes.
3304         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
3305         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
3306         Likewise.
3307         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
3308         Likewise.
3309         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
3310         Likewise.
3311         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
3312         Likewise.
3313         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
3314         Likewise.
3315         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
3316         Likewise.
3317         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
3318         Likewise.
3319         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
3320         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
3321         Likewise.
3322         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
3323         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
3324         Likewise.
3325         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
3326         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
3327         Likewise.
3329 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
3331         * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test.
3333 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
3335         PR driver/69805
3336         * testsuite/libgomp.c/pr69805.c: New test.
3338 2016-02-16  Tom de Vries  <tom@codesourcery.com>
3340         PR lto/67709
3341         * testsuite/libgomp.fortran/declare-simd-4.f90: New test.
3343 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3345         PR tree-optimization/69599
3346         * testsuite/libgomp.c/omp-nested-3.c: New test.
3347         * testsuite/libgomp.c/pr46032-2.c: New test.
3348         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test.
3349         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test.
3351 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3353         PR lto/69707
3354         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
3356 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
3358         * testsuite/libgomp.c/target-31.c: Fix testcase.
3360 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
3362         * testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
3363         clause.
3364         * testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
3365         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
3366         reduction and map clauses.
3367         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
3369 2016-02-02  James Norris  <jnorris@codesourcery.com>
3371         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
3373 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
3375         * libgomp.map (GOACC_2.0): Remove GOACC_host_data.
3376         * oacc-parallel.c (GOACC_host_data): Remove function definition.
3378         * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
3379         cases.
3381         * plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
3382         variables.
3383         * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
3384         (hsa_kmt_lib): Set variables.
3385         * testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
3386         always_ld_library_path.
3387         * Makefile.in: Regenerate.
3388         * configure: Likewise.
3389         * testsuite/Makefile.in: Likewise.
3391         * plugin/configfrag.ac (offload_additional_options)
3392         (offload_additional_lib_paths): Don't amend for hsa offloading.
3393         * configure: Regenerate.
3395         * plugin/configfrag.ac: Don't configure for offloading target if
3396         we don't build the corresponding plugin.
3397         * configure: Regenerate.
3399 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
3401         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
3402         * testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
3404 2016-01-26  Tom de Vries  <tom@codesourcery.com>
3406         PR tree-optimization/69110
3407         * testsuite/libgomp.c/pr69110.c: New test.
3409 2016-01-25  Richard Biener  <rguenther@suse.de>
3411         PR lto/69393
3412         * testsuite/libgomp.c++/pr69393.C: New testcase.
3414 2016-01-22  Ilya Verbin  <ilya.verbin@intel.com>
3416         * target.c (gomp_get_target_fn_addr): Allow host fallback if target
3417         function wasn't mapped to the device with non-shared memory.
3419 2016-01-20  Ilya Verbin  <ilya.verbin@intel.com>
3421         * task.c (gomp_create_target_task): Set firstprivate_copies to NULL.
3423 2016-01-19  Martin Jambor  <mjambor@suse.cz>
3424             Martin Liska  <mliska@suse.cz>
3426         * plugin/Makefrag.am: Add HSA plugin requirements.
3427         * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
3428         (HSA_RUNTIME_LIB): Likewise.
3429         (HSA_RUNTIME_CPPFLAGS): Likewise.
3430         (HSA_RUNTIME_INCLUDE): New substitution.
3431         (HSA_RUNTIME_LIB): Likewise.
3432         (HSA_RUNTIME_LDFLAGS): Likewise.
3433         (hsa-runtime): New configure option.
3434         (hsa-runtime-include): Likewise.
3435         (hsa-runtime-lib): Likewise.
3436         (PLUGIN_HSA): New substitution variable.
3437         Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
3438         configure options.
3439         (PLUGIN_HSA_CPPFLAGS): Likewise.
3440         (PLUGIN_HSA_LDFLAGS): Likewise.
3441         (PLUGIN_HSA_LIBS): Likewise.
3442         Check that we have access to HSA run-time.
3443         * libgomp-plugin.h (offload_target_type): New element
3444         OFFLOAD_TARGET_TYPE_HSA.
3445         * libgomp.h (gomp_target_task): New fields firstprivate_copies and
3446         args.
3447         (bool gomp_create_target_task): Updated.
3448         (gomp_device_descr): Extra parameter of run_func and async_run_func,
3449         new field can_run_func.
3450         * libgomp_g.h (GOMP_target_ext): Update prototype.
3451         * oacc-host.c (host_run): Added a new parameter args.
3452         * target.c (calculate_firstprivate_requirements): New function.
3453         (copy_firstprivate_data): Likewise.
3454         (gomp_target_fallback_firstprivate): Use them.
3455         (gomp_target_unshare_firstprivate): New function.
3456         (gomp_get_target_fn_addr): Allow returning NULL for shared memory
3457         devices.
3458         (GOMP_target): Do host fallback for all shared memory devices.  Do not
3459         pass any args to plugins.
3460         (GOMP_target_ext): Introduce device-specific argument parameter args.
3461         Allow host fallback if device shares memory.  Do not remap data if
3462         device has shared memory.
3463         (gomp_target_task_fn): Likewise.  Also treat shared memory devices
3464         like host fallback for mappings.
3465         (GOMP_target_data): Treat shared memory devices like host fallback.
3466         (GOMP_target_data_ext): Likewise.
3467         (GOMP_target_update): Likewise.
3468         (GOMP_target_update_ext): Likewise.  Also pass NULL as args to
3469         gomp_create_target_task.
3470         (GOMP_target_enter_exit_data): Likewise.
3471         (omp_target_alloc): Treat shared memory devices like host fallback.
3472         (omp_target_free): Likewise.
3473         (omp_target_is_present): Likewise.
3474         (omp_target_memcpy): Likewise.
3475         (omp_target_memcpy_rect): Likewise.
3476         (omp_target_associate_ptr): Likewise.
3477         (gomp_load_plugin_for_device): Also load can_run.
3478         * task.c (GOMP_PLUGIN_target_task_completion): Free
3479         firstprivate_copies.
3480         (gomp_create_target_task): Accept new argument args and store it to
3481         ttask.
3482         * plugin/plugin-hsa.c: New file.
3484 2016-01-18  Tom de Vries  <tom@codesourcery.com>
3486         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
3487         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
3488         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
3489         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
3490         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
3491         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
3492         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
3493         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
3494         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
3495         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
3496         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
3497         Same.
3498         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
3499         Same.
3500         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
3501         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
3502         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
3503         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
3504         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
3505         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
3506         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
3507         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
3508         Same.
3509         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.
3511 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
3513         * task.c (GOMP_PLUGIN_target_task_completion): Add missing return.
3515 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
3517         * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
3519 2016-01-12  James Norris  <jnorris@codesourcery.com>
3521         * libgomp.texi: Updates for OpenACC.
3523 2016-01-11  Alexander Monakov  <amonakov@ispras.ru>
3525         * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.
3527 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
3529         PR fortran/66680
3530         * testsuite/libgomp.fortran/pr66680.f90: New test.
3532 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
3534         PR middle-end/68960
3535         * testsuite/libgomp.c/pr68960.c: New test.
3537 2016-01-06  Nathan Sidwell  <nathan@acm.org>
3539         * openacc.h (acc_on_device): Add routine pragma for C++ wrapper.
3540         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New.
3542 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
3544         Update copyright years.
3546         * libgomp.texi: Bump @copying's copyright year.
3548 2015-12-31  Nathan Sidwell  <nathan@acm.org>
3550         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct
3551         dg-additional-options syntax.
3552         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
3553         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
3554         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
3555         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
3556         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
3557         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
3558         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
3559         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
3560         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
3561         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
3562         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
3563         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
3564         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
3565         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
3566         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
3567         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
3568         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
3569         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
3571 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
3573         * libgomp.h (REFCOUNT_LINK): Define.
3574         (struct splay_tree_key_s): Add link_key.
3575         * target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
3576         Replace target address of the pointer with target address of newly
3577         mapped object in the splay tree.  Set link pointer on target to the
3578         device address of the mapped object.
3579         (gomp_unmap_vars): Restore target address of the pointer in the splay
3580         tree for REFCOUNT_LINK objects after unmapping.
3581         (gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
3582         declare target link" objects.
3583         (gomp_unload_image_from_device): Replace j with i.  Force unmap of all
3584         "omp declare target link" objects, which were mapped for the image.
3585         (gomp_exit_data): Restore target address of the pointer in the splay
3586         tree for REFCOUNT_LINK objects after unmapping.
3587         * testsuite/libgomp.c/target-link-1.c: New file.
3589 2015-12-14  Ilya Verbin  <ilya.verbin@intel.com>
3591         * libgomp.h (gomp_device_state): New enum.
3592         (struct gomp_device_descr): Replace is_initialized with state.
3593         (gomp_fini_device): Remove declaration.
3594         * oacc-host.c (host_dispatch): Use state instead of is_initialized.
3595         * oacc-init.c (acc_init_1): Use state instead of is_initialized.
3596         (acc_shutdown_1): Likewise.  Inline gomp_fini_device.
3597         (acc_set_device_type): Use state instead of is_initialized.
3598         (acc_set_device_num): Likewise.
3599         * target.c (resolve_device): Use state instead of is_initialized.
3600         Do not initialize finalized device.
3601         (gomp_map_vars): Do nothing if device is finalized.
3602         (gomp_unmap_vars): Likewise.
3603         (gomp_update): Likewise.
3604         (GOMP_offload_register_ver): Use state instead of is_initialized.
3605         (GOMP_offload_unregister_ver): Likewise.
3606         (gomp_init_device): Likewise.
3607         (gomp_unload_device): Likewise.
3608         (gomp_fini_device): Remove.
3609         (gomp_get_target_fn_addr): Do nothing if device is finalized.
3610         (GOMP_target): Go to host fallback if device is finalized.
3611         (GOMP_target_ext): Likewise.
3612         (gomp_exit_data): Do nothing if device is finalized.
3613         (gomp_target_task_fn): Go to host fallback if device is finalized.
3614         (gomp_target_fini): New static function.
3615         (gomp_target_init): Use state instead of is_initialized.
3616         Call gomp_target_fini at exit.
3618 2015-12-09  Tom de Vries  <tom@codesourcery.com>
3620         PR tree-optimization/68716
3621         * testsuite/libgomp.c/omp-nested-2.c: New test.
3623 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
3625         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
3626         target openacc_nvidia_accel_selected.
3627         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
3628         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
3629         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
3630         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
3632 2015-12-01  Julian Brown  <julian@codesourcery.com>
3633             James Norris  <James_Norris@mentor.com>
3635         * oacc-parallel.c (GOACC_host_data): New function.
3636         * libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
3637         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
3638         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
3639         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
3640         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
3641         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
3642         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
3644 2015-11-30  James Norris  <jnorris@codesourcery.com>
3645             Cesar Philippidis  <cesar@codesourcery.com>
3647         libgomp/
3648         * libgomp.oacc-fortran/routine-5.f90: New test.
3649         * libgomp.oacc-fortran/routine-7.f90: New test.
3650         * libgomp.oacc-fortran/routine-9.f90: New test.
3652 2015-11-30  Tom de Vries  <tom@codesourcery.com>
3654         PR tree-optimization/46032
3655         * testsuite/libgomp.c/pr46032.c: New test.
3657 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
3659         PR libgomp/68579
3660         * task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
3661         (gomp_create_target_task): Call it before freeing
3662         GOMP_TARGET_TASK_DATA tasks.
3664         PR c/63326
3665         * testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
3666         in between case label and OpenMP standalone directives.
3667         * testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
3669 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
3671         * configure: Regenerate.
3673 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
3675         * testsuite/libgomp.c/target-35.c: New test.
3677 2015-11-22  James Norris  <jnorris@codesourcery.com>
3678             Cesar Philippidis  <cesar@codesourcery.com>
3680         * testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
3681         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
3682         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
3683         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
3684         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
3686 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
3688         PR middle-end/68221
3689         * testsuite/libgomp.c/reduction-11.c: Remove xfail.
3690         * testsuite/libgomp.c/reduction-12.c: Likewise.
3691         * testsuite/libgomp.c++/reduction-11.C: Likewise.
3692         * testsuite/libgomp.c++/reduction-12.C: Likewise.
3694 2015-11-19  Nathan Sidwell  <nathan@codesourcery.com>
3696         * libgomp.oacc-c-c++-common/reduction-dbl.c: New.
3697         * libgomp.oacc-c-c++-common/reduction-flt.c: New.
3698         * libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
3699         * libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
3700         * libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
3701         and fix.
3702         * libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3703         * libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3705 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
3707         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
3708         worker & gang cases.
3709         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
3711 2015-11-17  Cesar Philippidis  <cesar@codesourcery.com>
3713         * config/nvptx/priority_queue.c: New file.
3715 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
3717         * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
3718         sections.
3720 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
3721             Aldy Hernandez  <aldyh@redhat.com>
3722             Ilya Verbin  <ilya.verbin@intel.com>
3724         * ordered.c (gomp_doacross_init, GOMP_doacross_post,
3725         GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
3726         GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
3727         iterators or IV by chunk size.
3728         * parallel.c (gomp_resolve_num_threads): Don't assume that
3729         if thr->ts.team is non-NULL, then pool must be non-NULL.
3730         * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
3731         * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
3732         GOMP_PLUGIN_target_task_completion.
3733         * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
3734         * Makefile.in: Regenerate.
3735         * libgomp.h: Shuffle prototypes and forward definitions around so
3736         priority queues can be defined.
3737         (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
3738         (enum gomp_target_task_state): New enum.
3739         (struct gomp_target_task): Add state, tgt, task and team fields.
3740         (gomp_create_target_task): Change return type to bool, add
3741         state argument.
3742         (gomp_target_task_fn): Change return type to bool.
3743         (struct gomp_device_descr): Add async_run_func.
3744         (struct gomp_task): Remove children, next_child, prev_child,
3745         next_queue, prev_queue, next_taskgroup, prev_taskgroup.
3746         Add pnode field.
3747         (struct gomp_taskgroup): Remove children.
3748         Add taskgroup_queue.
3749         (struct gomp_team): Change task_queue type to a priority queue.
3750         (splay_compare): Define inline.
3751         (priority_queue_offset): New.
3752         (priority_node_to_task): New.
3753         (task_to_priority_node): New.
3754         * oacc-mem.c: Do not include splay-tree.h.
3755         * priority_queue.c: New file.
3756         * priority_queue.h: New file.
3757         * splay-tree.c: Do not include splay-tree.h.
3758         (splay_tree_foreach_internal): New.
3759         (splay_tree_foreach): New.
3760         * splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
3761         (splay_tree_callback): Define typedef.
3762         * target.c (splay_compare): Move to libgomp.h.
3763         (GOMP_target): Don't adjust *thr in any way around running offloaded
3764         task.
3765         (GOMP_target_ext): Likewise.  Handle target nowait.
3766         (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
3767         return value from gomp_create_target_task, if false, fallthrough
3768         as if no dependencies exist.
3769         (gomp_target_task_fn): Change return type to bool, return true
3770         if the task should have another part scheduled later.  Handle
3771         target nowait.
3772         (gomp_load_plugin_for_device): Initialize async_run.
3773         * task.c (gomp_init_task): Initialize children_queue.
3774         (gomp_clear_parent_in_list): New.
3775         (gomp_clear_parent_in_tree): New.
3776         (gomp_clear_parent): Handle priorities.
3777         (GOMP_task): Likewise.
3778         (priority_queue_move_task_first,
3779         gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
3780         New functions.
3781         (gomp_create_target_task): Use priority queues.  Change return type
3782         to bool, add state argument, return false if for async
3783         {{enter,exit} data,update} constructs no dependencies need to be
3784         waited for, handle target nowait.  Set task->fn to NULL instead of
3785         gomp_target_task_fn.
3786         (verify_children_queue): Remove.
3787         (priority_list_upgrade_task): New.
3788         (priority_queue_upgrade_task): New.
3789         (verify_task_queue): Remove.
3790         (priority_list_downgrade_task): New.
3791         (priority_queue_downgrade_task): New.
3792         (gomp_task_run_pre): Use priority queues.
3793         Abstract code out to priority_queue_downgrade_task.
3794         (gomp_task_run_post_handle_dependers): Use priority queues.
3795         (gomp_task_run_post_remove_parent): Likewise.
3796         (gomp_task_run_post_remove_taskgroup): Likewise.
3797         (gomp_barrier_handle_tasks): Likewise.  Handle target nowait target
3798         tasks specially.
3799         (GOMP_taskwait): Likewise.
3800         (gomp_task_maybe_wait_for_dependencies): Likewise.  Abstract code to
3801         priority-queue_upgrade_task.
3802         (GOMP_taskgroup_start): Use priority queues.
3803         (GOMP_taskgroup_end): Likewise.  Handle target nowait target tasks
3804         specially.  If taskgroup is NULL, and thr->ts.level is 0, act as a
3805         barrier.
3806         * taskloop.c (GOMP_taskloop): Handle priorities.
3807         * team.c (gomp_new_team): Call priority_queue_init.
3808         (free_team): Call priority_queue_free.
3809         (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
3810         team created for target nowait in implicit parallel region.
3811         (gomp_team_start): For nested check, test thr->ts.level instead of
3812         thr->ts.team != NULL.
3813         * testsuite/libgomp.c/doacross-3.c: New test.
3814         * testsuite/libgomp.c/ordered-5.c: New test.
3815         * testsuite/libgomp.c/priority.c: New test.
3816         * testsuite/libgomp.c/target-31.c: New test.
3817         * testsuite/libgomp.c/target-32.c: New test.
3818         * testsuite/libgomp.c/target-33.c: New test.
3819         * testsuite/libgomp.c/target-34.c: New test.
3821 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3823         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
3825         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
3826         loop is sequential.
3828 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
3830         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
3831         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
3833 2015-11-12  James Norris  <jnorris@codesourcery.com>
3834             Joseph Myers  <joseph@codesourcery.com>
3836         * libgomp.map (GOACC_2.0.1): Export GOACC_declare.
3837         * oacc-parallel.c (GOACC_declare): New function.
3838         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
3839         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
3840         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
3841         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
3842         * testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
3844 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
3846         * testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
3848 2015-11-1  Nathan Sidwell  <nathan@codesourcery.com>
3850         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
3851         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
3853 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3855         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
3856         inadvertent commit.
3858 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3860         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
3861         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
3862         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
3863         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
3864         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
3866 2015-11-06  Thomas Schwinge  <thomas@codesourcery.com>
3868         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
3869         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
3871 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
3872             Ilya Verbin  <ilya.verbin@intel.com>
3874         * libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
3875         GOMP_loop_nonmonotonic_dynamic_start,
3876         GOMP_loop_nonmonotonic_guided_next,
3877         GOMP_loop_nonmonotonic_guided_start,
3878         GOMP_loop_ull_nonmonotonic_dynamic_next,
3879         GOMP_loop_ull_nonmonotonic_dynamic_start,
3880         GOMP_loop_ull_nonmonotonic_guided_next,
3881         GOMP_loop_ull_nonmonotonic_guided_start,
3882         GOMP_parallel_loop_nonmonotonic_dynamic,
3883         GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
3884         (GOMP_target_41): Renamed to ...
3885         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
3886         arguments.
3887         (GOMP_target_data_41): Renamed to ...
3888         (GOMP_target_data_ext): ... this.
3889         (GOMP_target_update_41): Renamed to ...
3890         (GOMP_target_update_ext): ... this.
3891         * libgomp.map (GOMP_4.5): Export GOMP_target_ext,
3892         GOMP_target_data_ext and GOMP_target_update_ext instead of
3893         GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
3894         Export GOMP_loop_nonmonotonic_dynamic_next,
3895         GOMP_loop_nonmonotonic_dynamic_start,
3896         GOMP_loop_nonmonotonic_guided_next,
3897         GOMP_loop_nonmonotonic_guided_start,
3898         GOMP_loop_ull_nonmonotonic_dynamic_next,
3899         GOMP_loop_ull_nonmonotonic_dynamic_start,
3900         GOMP_loop_ull_nonmonotonic_guided_next,
3901         GOMP_loop_ull_nonmonotonic_guided_start,
3902         GOMP_parallel_loop_nonmonotonic_dynamic and
3903         GOMP_parallel_loop_nonmonotonic_guided.
3904         * loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
3905         GOMP_parallel_loop_nonmonotonic_guided,
3906         GOMP_loop_nonmonotonic_dynamic_start,
3907         GOMP_loop_nonmonotonic_guided_start,
3908         GOMP_loop_nonmonotonic_dynamic_next,
3909         GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
3910         * loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
3911         GOMP_loop_ull_nonmonotonic_guided_start,
3912         GOMP_loop_ull_nonmonotonic_dynamic_next,
3913         GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
3914         * target.c (gomp_map_0len_lookup, gomp_map_val): New inline
3915         functions.
3916         (gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
3917         GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
3918         Use gomp_map_val function.
3919         (gomp_target_fallback_firstprivate): New static function.
3920         (GOMP_target_41): Renamed to ...
3921         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
3922         arguments.  Move firstprivate fallback handling into a new
3923         function.
3924         (GOMP_target_data_41): Renamed to ...
3925         (GOMP_target_data_ext): ... this.
3926         (GOMP_target_update_41): Renamed to ...
3927         (GOMP_target_update_ext): ... this.
3928         (gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
3929         gomp_map_0len_lookup instead of gomp_map_lookup.
3930         (omp_target_is_present): Use gomp_map_0len_lookup instead of
3931         gomp_map_lookup.
3932         * testsuite/libgomp.c/target-28.c: Likewise.
3933         * testsuite/libgomp.c/monotonic-1.c: New test.
3934         * testsuite/libgomp.c/monotonic-2.c: New test.
3935         * testsuite/libgomp.c/nonmonotonic-1.c: New test.
3936         * testsuite/libgomp.c/nonmonotonic-2.c: New test.
3937         * testsuite/libgomp.c/pr66199-5.c: New test.
3938         * testsuite/libgomp.c/pr66199-6.c: New test.
3939         * testsuite/libgomp.c/pr66199-7.c: New test.
3940         * testsuite/libgomp.c/pr66199-8.c: New test.
3941         * testsuite/libgomp.c/pr66199-9.c: New test.
3942         * testsuite/libgomp.c/reduction-11.c: New test.
3943         * testsuite/libgomp.c/reduction-12.c: New test.
3944         * testsuite/libgomp.c/reduction-13.c: New test.
3945         * testsuite/libgomp.c/reduction-14.c: New test.
3946         * testsuite/libgomp.c/reduction-15.c: New test.
3947         * testsuite/libgomp.c/target-12.c (main): Adjust for
3948         omp_target_is_present change for one-past-last element.
3949         * testsuite/libgomp.c/target-17.c (foo): Drop tests where
3950         the same var is both mapped and privatized.
3951         * testsuite/libgomp.c/target-19.c (foo): Adjust for different
3952         handling of zero-length array sections.
3953         * testsuite/libgomp.c/target-28.c: New test.
3954         * testsuite/libgomp.c/target-29.c: New test.
3955         * testsuite/libgomp.c/target-30.c: New test.
3956         * testsuite/libgomp.c/target-teams-1.c: New test.
3957         * testsuite/libgomp.c++/member-6.C: New test.
3958         * testsuite/libgomp.c++/member-7.C: New test.
3959         * testsuite/libgomp.c++/monotonic-1.C: New test.
3960         * testsuite/libgomp.c++/monotonic-2.C: New test.
3961         * testsuite/libgomp.c++/nonmonotonic-1.C: New test.
3962         * testsuite/libgomp.c++/nonmonotonic-2.C: New test.
3963         * testsuite/libgomp.c++/pr66199-3.C: New test.
3964         * testsuite/libgomp.c++/pr66199-4.C: New test.
3965         * testsuite/libgomp.c++/pr66199-5.C: New test.
3966         * testsuite/libgomp.c++/pr66199-6.C: New test.
3967         * testsuite/libgomp.c++/pr66199-7.C: New test.
3968         * testsuite/libgomp.c++/pr66199-8.C: New test.
3969         * testsuite/libgomp.c++/pr66199-9.C: New test.
3970         * testsuite/libgomp.c++/reduction-11.C: New test.
3971         * testsuite/libgomp.c++/reduction-12.C: New test.
3972         * testsuite/libgomp.c++/target-13.C: New test.
3973         * testsuite/libgomp.c++/target-14.C: New test.
3974         * testsuite/libgomp.c++/target-15.C: New test.
3975         * testsuite/libgomp.c++/target-16.C: New test.
3976         * testsuite/libgomp.c++/target-17.C: New test.
3977         * testsuite/libgomp.c++/target-18.C: New test.
3978         * testsuite/libgomp.c++/target-19.C: New test.
3980 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
3982         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
3983         and reduction copy.
3984         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
3985         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
3986         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
3987         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
3988         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
3989         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
3990         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
3991         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
3992         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
3993         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
3994         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
3995         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
3996         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
3997         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
3999 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4001         * libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
4002         * libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
4003         * libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
4004         * libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
4005         * libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
4006         * libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
4007         * libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
4008         * libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
4010 2015-11-03  Nathan Sidwell  <nathan@codesourcery.com>
4012         * libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
4013         * plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
4014         (GOMP_OFFLOAD_openacc_parallel): Likewise.
4015         * oacc-host.c (host_openacc_exec): Likewise.
4016         * oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
4018 2015-11-03  Julian Brown  <julian@codesourcery.com>
4019             Thomas Schwinge  <thomas@codesourcery.com>
4021         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
4022         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
4023         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
4024         Likewise.
4025         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
4026         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
4028 2015-11-03  James Norris  <jnorris@codesourcery.com>
4030         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
4031         file.
4032         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
4033         Likewise.
4034         * testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
4035         * testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
4036         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
4037         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
4038         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
4040 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
4042         * openacc.h (enum acc_device_t): Reformat. Ensure layout
4043         compatibility.
4044         (enum acc_async_t): Reformat.
4045         (acc_on_device): Declare compatible with builtin and provide C++
4046         wrapper.
4047         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
4049 2015-10-29  Thomas Schwinge  <thomas@codesourcery.com>
4050             Cesar Philippidis  <cesar@codesourcery.com>
4052         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
4053         * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
4054         ... this.  Add a description of the test at the top of the file.
4055         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
4056         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
4057         ... this.  Add a description of the test at the top of the file.
4059 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
4061         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
4062         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
4063         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
4064         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
4065         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
4066         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
4068 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
4070         * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
4071         dimensions.
4073 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
4075         PR testsuite/68063
4076         * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
4078 2015-10-27  James Norris  <jnorris@codesourcery.com>
4080         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
4081         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
4083 2015-10-26  Thomas Schwinge  <thomas@codesourcery.com>
4085         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
4086         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
4088         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
4089         acc_device_nvidia usage.
4090         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
4091         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
4092         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
4094         * oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
4095         * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
4097         PR libgomp/66518
4098         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
4100         PR libgomp/65437
4101         PR libgomp/66518
4102         * oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
4103         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
4105 2015-10-23  Tom de Vries  <tom@codesourcery.com>
4107         PR testsuite/68063
4108         * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
4110 2015-10-20  Nathan Sidwell  <nathan@codesourcery.com>
4112         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
4113         vector_length.
4114         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
4116 2015-10-14  Ilya Verbin  <ilya.verbin@intel.com>
4117             Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
4119         * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
4120         to 0 when mapnum is 0.
4122 2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4124         * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
4125         Cast to int from int32_t.
4127 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
4128             Aldy Hernandez  <aldyh@redhat.com>
4129             Ilya Verbin  <ilya.verbin@intel.com>
4131         * config/linux/affinity.c (omp_get_place_num_procs,
4132         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
4133         * config/linux/doacross.h: New file.
4134         * config/posix/affinity.c (omp_get_place_num_procs,
4135         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
4136         * config/posix/doacross.h: New file.
4137         * env.c: Include gomp-constants.h.
4138         (struct gomp_task_icv): Rename run_sched_modifier to
4139         run_sched_chunk_size.
4140         (gomp_max_task_priority_var): New variable.
4141         (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
4142         (handle_omp_display_env): Change _OPENMP value from 201307 to
4143         201511.  Print OMP_MAX_TASK_PRIORITY.
4144         (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
4145         (omp_set_schedule, omp_get_schedule): Rename modifier argument to
4146         chunk_size and run_sched_modifier to run_sched_chunk_size.
4147         (omp_get_max_task_priority, omp_get_initial_device,
4148         omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
4149         omp_get_partition_place_nums): New functions.
4150         * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
4151         omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
4152         to chunk_size.
4153         (omp_get_num_places_, omp_get_place_num_procs_,
4154         omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
4155         omp_get_place_proc_ids_8_, omp_get_place_num_,
4156         omp_get_partition_num_places_, omp_get_partition_place_nums_,
4157         omp_get_partition_place_nums_8_, omp_get_initial_device_,
4158         omp_get_max_task_priority_): New functions.
4159         * libgomp_g.h (GOMP_loop_doacross_static_start,
4160         GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
4161         GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
4162         GOMP_loop_ull_doacross_dynamic_start,
4163         GOMP_loop_ull_doacross_guided_start,
4164         GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
4165         GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
4166         GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
4167         GOMP_target_data_41, GOMP_target_update_41,
4168         GOMP_target_enter_exit_data): New prototypes.
4169         (GOMP_task): Add prototype argument.
4170         * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
4171         (struct gomp_doacross_work_share): New type.
4172         (struct gomp_work_share): Add doacross field.
4173         (struct gomp_task_icv): Rename run_sched_modifier to
4174         run_sched_chunk_size.
4175         (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
4176         GOMP_TASK_UNDEFERRED.  Add comments.
4177         (struct gomp_task_depend_entry): Add comments.
4178         (struct gomp_task): Likewise.
4179         (struct gomp_taskgroup): Likewise.
4180         (struct gomp_target_task): New type.
4181         (struct gomp_team): Add comment.
4182         (gomp_get_place_proc_ids_8, gomp_doacross_init,
4183         gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
4184         gomp_create_target_task, gomp_target_task_fn): New prototypes.
4185         (struct target_var_desc): New type.
4186         (struct target_mem_desc): Adjust comment.  Use struct
4187         target_var_desc instead of splay_tree_key for list.
4188         (REFCOUNT_INFINITY): Define.
4189         (struct splay_tree_key_s): Remove copy_from field.
4190         (struct gomp_device_descr): Add dev2dev_func field.
4191         (enum gomp_map_vars_kind): New enum.
4192         (gomp_map_vars): Add one argument.
4193         * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
4194         omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
4195         omp_get_place_num_procs, omp_get_place_num_procs_,
4196         omp_get_place_num_procs_8_, omp_get_place_proc_ids,
4197         omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
4198         omp_get_place_num_, omp_get_partition_num_places,
4199         omp_get_partition_num_places_, omp_get_partition_place_nums,
4200         omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
4201         omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
4202         omp_target_free, omp_target_is_present, omp_target_memcpy,
4203         omp_target_memcpy_rect, omp_target_associate_ptr and
4204         omp_target_disassociate_ptr.
4205         (GOMP_4.0.2): Renamed to ...
4206         (GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
4207         GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
4208         GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
4209         GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
4210         GOMP_loop_doacross_static_start, GOMP_doacross_post,
4211         GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
4212         GOMP_loop_ull_doacross_guided_start,
4213         GOMP_loop_ull_doacross_runtime_start,
4214         GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
4215         GOMP_doacross_ull_wait.
4216         * libgomp.texi: Document omp_get_max_task_priority.
4217         Rename modifier argument to chunk_size for omp_set_schedule and
4218         omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
4219         * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
4220         to run_sched_chunk_size renaming.
4221         (GOMP_loop_ordered_runtime_start): Likewise.
4222         (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
4223         gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
4224         GOMP_parallel_loop_runtime_start): New functions.
4225         (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
4226         to run_sched_chunk_size renaming.
4227         (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
4228         GOMP_loop_doacross_guided_start): New functions or aliases.
4229         * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
4230         run_sched_modifier to run_sched_chunk_size renaming.
4231         (GOMP_loop_ull_ordered_runtime_start): Likewise.
4232         (gomp_loop_ull_doacross_static_start,
4233         gomp_loop_ull_doacross_dynamic_start,
4234         gomp_loop_ull_doacross_guided_start,
4235         GOMP_loop_ull_doacross_runtime_start): New functions.
4236         (GOMP_loop_ull_doacross_static_start,
4237         GOMP_loop_ull_doacross_dynamic_start,
4238         GOMP_loop_ull_doacross_guided_start): New functions or aliases.
4239         * oacc-mem.c (acc_map_data, present_create_copy,
4240         gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
4241         to gomp_map_vars.
4242         (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
4243         * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
4244         instead of false to gomp_map_vars.
4245         (GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
4246         * omp.h.in (omp_lock_hint_t): New type.
4247         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4248         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4249         omp_get_place_num, omp_get_partition_num_places,
4250         omp_get_partition_place_nums, omp_get_initial_device,
4251         omp_get_max_task_priority, omp_target_alloc, omp_target_free,
4252         omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
4253         omp_target_associate_ptr, omp_target_disassociate_ptr): New
4254         prototypes.
4255         * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
4256         (omp_lock_hint_none, omp_lock_hint_uncontended,
4257         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
4258         omp_lock_hint_speculative): New parameters.
4259         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4260         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4261         omp_get_place_num, omp_get_partition_num_places,
4262         omp_get_partition_place_nums, omp_get_initial_device,
4263         omp_get_max_task_priority): New interfaces.
4264         (omp_set_schedule, omp_get_schedule): Rename modifier argument
4265         to chunk_size.
4266         * omp_lib.h.in (omp_lock_hint_kind): New parameter.
4267         (omp_lock_hint_none, omp_lock_hint_uncontended,
4268         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
4269         omp_lock_hint_speculative): New parameters.
4270         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
4271         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
4272         omp_get_place_num, omp_get_partition_num_places,
4273         omp_get_partition_place_nums, omp_get_initial_device,
4274         omp_get_max_task_priority): New functions and subroutines.
4275         * ordered.c: Include stdarg.h and string.h.
4276         (MAX_COLLAPSED_BITS): Define.
4277         (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
4278         gomp_doacross_ull_init, GOMP_doacross_ull_post,
4279         GOMP_doacross_ull_wait): New functions.
4280         * target.c: Include errno.h.
4281         (resolve_device): If device is not initialized, call
4282         gomp_init_device on it.
4283         (gomp_map_lookup): New function.
4284         (gomp_map_vars_existing): Add tgt_var argument, fill it in.
4285         Don't bump refcount if REFCOUNT_INFINITY.  Handle
4286         GOMP_MAP_ALWAYS_TO_P.
4287         (get_kind): Rename is_openacc argument to short_mapkind.
4288         (gomp_map_pointer): Use gomp_map_lookup.
4289         (gomp_map_fields_existing): New function.
4290         (gomp_map_vars): Rename is_openacc argument to short_mapkind
4291         and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
4292         handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
4293         GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
4294         Adjust for tgt->list changed type and copy_from living in there.
4295         (gomp_copy_from_async): Adjust for tgt->list changed type and
4296         copy_from living in there.
4297         (gomp_unmap_vars): Likewise.
4298         (gomp_update): Likewise.  Rename is_openacc argument to
4299         short_mapkind.  Don't fail if object is not mapped.
4300         (gomp_load_image_to_device): Initialize refcount to
4301         REFCOUNT_INFINITY.
4302         (gomp_target_fallback): New function.
4303         (gomp_get_target_fn_addr): Likewise.
4304         (GOMP_target): Adjust gomp_map_vars caller, use
4305         gomp_get_target_fn_addr and gomp_target_fallback.
4306         (GOMP_target_41): New function.
4307         (gomp_target_data_fallback): New function.
4308         (GOMP_target_data): Use it, adjust gomp_map_vars caller.
4309         (GOMP_target_data_41): New function.
4310         (GOMP_target_update): Adjust gomp_update caller.
4311         (GOMP_target_update_41): New function.
4312         (gomp_exit_data, GOMP_target_enter_exit_data,
4313         gomp_target_task_fn, omp_target_alloc, omp_target_free,
4314         omp_target_is_present, omp_target_memcpy,
4315         omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
4316         omp_target_associate_ptr, omp_target_disassociate_ptr,
4317         gomp_load_plugin_for_device): New functions.
4318         * task.c: Include gomp-constants.h.  Include taskloop.c
4319         twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
4320         (gomp_task_handle_depend): New function.
4321         (GOMP_task): Use it.  Add priority argument.  Use
4322         gomp-constant.h constants instead of hardcoded numbers.
4323         Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
4324         (gomp_create_target_task): New function.
4325         (verify_children_queue, verify_taskgroup_queue,
4326         verify_task_queue): New functions.
4327         (gomp_task_run_pre): Call verify_*_queue functions.
4328         If an upcoming tied task is about to leave the sibling or
4329         taskgroup queues in an invalid state, adjust appropriately.
4330         Remove taskgroup argument.  Add comments.
4331         (gomp_task_run_post_handle_dependers): Add comments.
4332         (gomp_task_run_post_remove_parent): Likewise.
4333         (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
4334         (GOMP_taskwait): Likewise.  Add comments.
4335         (gomp_task_maybe_wait_for_dependencies): Fix scheduling
4336         problem such that the first non parent_depends_on task does not
4337         end up at the end of the children queue.
4338         (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
4339         GOMP_TASK_UNDEFERRED.
4340         (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
4341         * taskloop.c: New file.
4342         * testsuite/lib/libgomp.exp
4343         (check_effective_target_offload_device_nonshared_as): New proc.
4344         * testsuite/libgomp.c/affinity-2.c: New test.
4345         * testsuite/libgomp.c/doacross-1.c: New test.
4346         * testsuite/libgomp.c/doacross-2.c: New test.
4347         * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
4348         Add map clause to target.
4349         * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
4350         * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
4351         * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
4352         * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
4353         * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
4354         Likewise.
4355         * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
4356         * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
4357         * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
4358         * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
4359         not defined.  Use those where needed.
4360         * testsuite/libgomp.c/for-4.c: New test.
4361         * testsuite/libgomp.c/for-5.c: New test.
4362         * testsuite/libgomp.c/for-6.c: New test.
4363         * testsuite/libgomp.c/linear-1.c: New test.
4364         * testsuite/libgomp.c/ordered-4.c: New test.
4365         * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
4366         only allowed on the loop iterator.
4367         * testsuite/libgomp.c/pr66199-3.c: New test.
4368         * testsuite/libgomp.c/pr66199-4.c: New test.
4369         * testsuite/libgomp.c/reduction-7.c: New test.
4370         * testsuite/libgomp.c/reduction-8.c: New test.
4371         * testsuite/libgomp.c/reduction-9.c: New test.
4372         * testsuite/libgomp.c/reduction-10.c: New test.
4373         * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
4374         map(tofrom:s).
4375         * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
4376         * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
4377         * testsuite/libgomp.c/target-11.c: New test.
4378         * testsuite/libgomp.c/target-12.c: New test.
4379         * testsuite/libgomp.c/target-13.c: New test.
4380         * testsuite/libgomp.c/target-14.c: New test.
4381         * testsuite/libgomp.c/target-15.c: New test.
4382         * testsuite/libgomp.c/target-16.c: New test.
4383         * testsuite/libgomp.c/target-17.c: New test.
4384         * testsuite/libgomp.c/target-18.c: New test.
4385         * testsuite/libgomp.c/target-19.c: New test.
4386         * testsuite/libgomp.c/target-20.c: New test.
4387         * testsuite/libgomp.c/target-21.c: New test.
4388         * testsuite/libgomp.c/target-22.c: New test.
4389         * testsuite/libgomp.c/target-23.c: New test.
4390         * testsuite/libgomp.c/target-24.c: New test.
4391         * testsuite/libgomp.c/target-25.c: New test.
4392         * testsuite/libgomp.c/target-26.c: New test.
4393         * testsuite/libgomp.c/target-27.c: New test.
4394         * testsuite/libgomp.c/taskloop-1.c: New test.
4395         * testsuite/libgomp.c/taskloop-2.c: New test.
4396         * testsuite/libgomp.c/taskloop-3.c: New test.
4397         * testsuite/libgomp.c/taskloop-4.c: New test.
4398         * testsuite/libgomp.c++/ctor-13.C: New test.
4399         * testsuite/libgomp.c++/doacross-1.C: New test.
4400         * testsuite/libgomp.c++/examples-4/declare_target-2.C:
4401         Replace offload_device with offload_device_nonshared_as.
4402         * testsuite/libgomp.c++/for-12.C: New test.
4403         * testsuite/libgomp.c++/for-13.C: New test.
4404         * testsuite/libgomp.c++/for-14.C: New test.
4405         * testsuite/libgomp.c++/linear-1.C: New test.
4406         * testsuite/libgomp.c++/member-1.C: New test.
4407         * testsuite/libgomp.c++/member-2.C: New test.
4408         * testsuite/libgomp.c++/member-3.C: New test.
4409         * testsuite/libgomp.c++/member-4.C: New test.
4410         * testsuite/libgomp.c++/member-5.C: New test.
4411         * testsuite/libgomp.c++/ordered-1.C: New test.
4412         * testsuite/libgomp.c++/reduction-5.C: New test.
4413         * testsuite/libgomp.c++/reduction-6.C: New test.
4414         * testsuite/libgomp.c++/reduction-7.C: New test.
4415         * testsuite/libgomp.c++/reduction-8.C: New test.
4416         * testsuite/libgomp.c++/reduction-9.C: New test.
4417         * testsuite/libgomp.c++/reduction-10.C: New test.
4418         * testsuite/libgomp.c++/reference-1.C: New test.
4419         * testsuite/libgomp.c++/simd14.C: New test.
4420         * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
4421         * testsuite/libgomp.c++/target-5.C: New test.
4422         * testsuite/libgomp.c++/target-6.C: New test.
4423         * testsuite/libgomp.c++/target-7.C: New test.
4424         * testsuite/libgomp.c++/target-8.C: New test.
4425         * testsuite/libgomp.c++/target-9.C: New test.
4426         * testsuite/libgomp.c++/target-10.C: New test.
4427         * testsuite/libgomp.c++/target-11.C: New test.
4428         * testsuite/libgomp.c++/target-12.C: New test.
4429         * testsuite/libgomp.c++/taskloop-1.C: New test.
4430         * testsuite/libgomp.c++/taskloop-2.C: New test.
4431         * testsuite/libgomp.c++/taskloop-3.C: New test.
4432         * testsuite/libgomp.c++/taskloop-4.C: New test.
4433         * testsuite/libgomp.c++/taskloop-5.C: New test.
4434         * testsuite/libgomp.c++/taskloop-6.C: New test.
4435         * testsuite/libgomp.c++/taskloop-7.C: New test.
4436         * testsuite/libgomp.c++/taskloop-8.C: New test.
4437         * testsuite/libgomp.c++/taskloop-9.C: New test.
4438         * testsuite/libgomp.fortran/affinity1.f90: New test.
4439         * testsuite/libgomp.fortran/affinity2.f90: New test.
4441 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4443         PR tree-optimization/67476
4444         * testsuite/libgomp.c/autopar-3.c: New test.
4445         * testsuite/libgomp.c/autopar-4.c: New test.
4446         * testsuite/libgomp.c/autopar-5.c: New test.
4447         * testsuite/libgomp.c/autopar-6.c: New test.
4448         * testsuite/libgomp.c/autopar-7.c: New test.
4449         * testsuite/libgomp.c/autopar-8.c: New test.
4451 2015-10-12  James Norris  <jnorris@codesourcery.com>
4453         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
4454         initializer.
4456 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
4458         * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
4459         using load_gcc_lib.
4461 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
4463         * oacc-ptx.h: Remove file, moving its content into...
4464         * config/nvptx/fortran.c: ... here...
4465         * config/nvptx/oacc-init.c: ..., here...
4466         * config/nvptx/oacc-parallel.c: ..., and here.
4467         * config/nvptx/openacc.f90: New file.
4468         * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
4469         (link_ptx): Don't link in predefined bits of PTX code.
4471 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
4472             Bernd Schmidt <bernds@codesourcery.com>
4474         * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
4475         (struct targ_ptx_obj): New.
4476         (nvptx_tdata): Move earlier, change data format.
4477         (link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
4478         objects.
4479         (GOMP_OFFLOAD_load_image): Adjust.
4481 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
4483         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
4484         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
4485         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
4486         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
4487         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
4488         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
4489         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
4490         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
4491         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
4492         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
4493         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
4494         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
4495         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
4496         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
4497         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
4498         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
4499         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
4500         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
4501         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
4502         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
4503         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
4504         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
4505         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
4506         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
4507         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
4508         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
4509         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
4510         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
4511         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
4512         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
4513         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
4514         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
4515         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
4516         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
4517         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
4518         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
4519         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
4520         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
4521         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
4522         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
4523         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
4524         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
4525         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
4526         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
4527         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
4528         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
4529         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
4530         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
4531         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
4532         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
4533         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
4534         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
4535         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
4536         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
4537         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
4538         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
4539         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
4540         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
4541         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
4542         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
4543         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
4544         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
4545         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
4547 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4549         * oacc-init.c (acc_on_device): Force optimization level.
4551 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4553         * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
4554         (cuda_errlist): Delete.
4555         (cuda_error): Reimplement.
4557 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
4559         * libgomp.h (acc_dispatch_t): Replace separate geometry args with
4560         array.
4561         * libgomp.map (GOACC_parallel_keyed): New.
4562         * oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
4563         all callers.
4564         (GOACC_parallel_keyed): New interface.  Lose geometry arguments
4565         and take keyed varargs list.  Adjust call to exec_func.
4566         (GOACC_parallel): Force host fallback.
4567         * libgomp_g.h (GOACC_parallel): Remove.
4568         (GOACC_parallel_keyed): Declare.
4569         * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
4570         (stuct targ_gn_descriptor): Replace name field with launch field.
4571         (nvptx_exec): Lose separate geometry args, take array.  Process
4572         dynamic dimensions and adjust.
4573         (struct nvptx_tdata): Replace fn_names field with fn_descs.
4574         (GOMP_OFFLOAD_load_image): Adjust for change in function table
4575         data.
4576         (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
4577         passing.
4578         * oacc-host.c (host_openacc_exec): Adjust for change in dimension
4579         passing.
4581 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4583         PR libgomp/67141
4584         * oacc-int.h (goacc_host_init): Add declaration.
4585         * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
4586         * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
4588 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
4589             Sebastian Pop  <s.pop@samsung.com>
4591         * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
4592         match o/p.
4593         * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
4594         * testsuite/libgomp.graphite/force-parallel-4.c: Same.
4595         * testsuite/libgomp.graphite/force-parallel-5.c: Same.
4596         * testsuite/libgomp.graphite/force-parallel-7.c: Same.
4597         * testsuite/libgomp.graphite/force-parallel-8.c: Same.
4599 2015-09-03  Jakub Jelinek  <jakub@redhat.com>
4601         * configure.tgt: Add missing ;; in between nvptx and rtems
4602         snippets.
4604 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4606         * config/posix/pool.h (gomp_adjust_thread_attr): New.
4607         * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
4608         (gomp_thread_pool_reservoir): Add priority member.
4609         * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
4610         priority.
4611         (parse_thread_pools): Likewise.
4612         * team.c (gomp_team_start): Call configuration provided
4613         gomp_adjust_thread_attr(). Destroy thread attributes if
4614         necessary.
4615         * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
4617 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4619         * config/posix/pool.h: New.
4620         * config/rtems/pool.h: Likewise.
4621         * config/rtems/proc.c: Likewise.
4622         * libgomp.h (gomp_thread_destructor): Declare.
4623         * team.c: Include configuration provided "pool.h".
4624         (gomp_get_thread_pool): Define in configuration.
4625         (gomp_team_end): Call configuration defined
4626         gomp_release_thread_pool().
4628 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4630         * config/rtems/bar.c: New.
4631         * config/rtems/bar.h: Likewise.
4632         * config/rtems/mutex.c: Likewise.
4633         * config/rtems/mutex.h: Likewise.
4634         * config/rtems/sem.c: Likewise.
4635         * config/rtems/sem.h: Likewise.
4636         * configure.ac (*-*-rtems*): Check that Newlib provides a proper
4637         <sys/lock.h> header file.
4638         * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
4639         supported by Newlib.
4640         * configure: Regenerate.
4642 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4644         * team.c (gomp_new_thread_pool): Delete and move content to ...
4645         (gomp_get_thread_pool): ... new function.  Allocate and
4646         initialize thread pool on demand.
4647         (get_last_team): Use gomp_get_thread_pool().
4648         (gomp_team_start): Delete thread pool initialization.
4650 2015-09-03  Tom de Vries  <tom@codesourcery.com>
4652         PR tree-optimization/65637
4653         * testsuite/libgomp.c/autopar-2.c: New test.
4655 2015-08-29  Tom de Vries  <tom@codesourcery.com>
4657         PR tree-optimization/46193
4658         * testsuite/libgomp.c/pr46193.c: New test.
4660 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4662         libgomp/
4663         * libgomp.map: Add 4.0.2 version.
4664         * target.c (offload_image_descr): Add version field.
4665         (gomp_load_image_to_device): Add version argument.  Adjust plugin
4666         call.  Improve load mismatch diagnostic.
4667         (gomp_unload_image_from_device): Add version argument.  Adjust plugin
4668         call.
4669         (GOMP_offload_regster): Make stub function, move bulk to ...
4670         (GOMP_offload_register_ver): ... here.  Process version argument.
4671         (GOMP_offload_unregister): Make stub function, move bulk to ...
4672         (GOMP_offload_unregister_ver): ... here.  Process version argument.
4673         (gomp_init_device): Process version field.
4674         (gomp_unload_device): Process version field.
4675         (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
4676         macros.  Check plugin version.
4677         * libgomp.h (gomp_device_descr): Add version function field.  Adjust
4678         loader and unloader types.
4679         * oacc-host.c: Include gomp-constants.h.
4680         (host_version): New.
4681         (host_load_image, host_unload_image): Adjust.
4682         (host_dispatch): Add host_version.
4683         * plugin/plugin-nvptx.c: Include gomp-constants.h.
4684         (GOMP_OFFLOAD_version): New.
4685         (GOMP_OFFLOAD_load_image): Add version arg and check it.
4686         (GOMP_OFFLOAD_unload_image): Likewise.
4687         * plugin/plugin-host.c: Include gomp-constants.h.
4688         (GOMP_OFFLOAD_version): New.
4689         (GOMP_OFFLOAD_load_image): Add version arg.
4690         (GOMP_OFFLOAD_unload_image): Likewise.
4692 2015-08-24  Tom de Vries  <tom@codesourcery.com>
4694         PR tree-optimization/65468
4695         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
4697 2015-08-24  Tom de Vries  <tom@codesourcery.com>
4699         PR tree-optimization/65468
4700         * testsuite/libgomp.c/static-chunk-size-one.c: New test.
4702 2015-08-24  Joost VandeVondele  <vondele@gnu.gcc.org>
4704         PR libgomp/66761
4705         PR libgomp/67303
4706         * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
4707         (gomp_iter_guided_next): Idem.
4708         * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
4709         (gomp_iter_ull_guided_next): Idem.
4710         * config/linux/wait.h (do_spin): Idem.
4712 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4714         * libgomp-plugin.h (enum offload_target_type): Remove
4715         OFFLOAD_TARGET_TYPE_HOST_NONSHM.
4716         * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
4717         * openacc.h (enum acc_device_t): Likewise.
4718         * openacc_lib.h: Likewise.
4719         * oacc-init.c (name_of_acc_device_t): Don't handle it.
4720         (acc_on_device): Just use __builtin_acc_on_device.
4721         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
4722         of acc_on_device builtin.
4723         * plugin/plugin-host.h: Remove file.
4724         * plugin/plugin-host.c: Likewise, but salvage some content into...
4725         * oacc-host.c: ... this file.
4726         * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
4727         * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
4728         * Makefile.in: Regenerate.
4729         * configure: Likewise.
4730         * testsuite/lib/libgomp.exp
4731         (check_effective_target_openacc_host_nonshm_selected): Remove.
4732         * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
4733         ACC_DEVICE_TYPE=host_nonshm.
4734         * testsuite/libgomp.oacc-c/c.exp: Likewise.
4735         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
4736         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
4737         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
4738         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
4739         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
4741 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4742             Jakub Jelinek  <jakub@redhat.com>
4744         * config/nvptx/affinity.c: New file.
4745         * config/nvptx/alloc.c: Likewise.
4746         * config/nvptx/bar.c: Likewise.
4747         * config/nvptx/barrier.c: Likewise.
4748         * config/nvptx/critical.c: Likewise.
4749         * config/nvptx/env.c: Likewise.
4750         * config/nvptx/error.c: Likewise.
4751         * config/nvptx/fortran.c: Likewise.
4752         * config/nvptx/iter.c: Likewise.
4753         * config/nvptx/iter_ull.c: Likewise.
4754         * config/nvptx/libgomp-plugin.c: Likewise.
4755         * config/nvptx/lock.c: Likewise.
4756         * config/nvptx/loop.c: Likewise.
4757         * config/nvptx/loop_ull.c: Likewise.
4758         * config/nvptx/mutex.c: Likewise.
4759         * config/nvptx/oacc-async.c: Likewise.
4760         * config/nvptx/oacc-cuda.c: Likewise.
4761         * config/nvptx/oacc-host.c: Likewise.
4762         * config/nvptx/oacc-init.c: Likewise.
4763         * config/nvptx/oacc-mem.c: Likewise.
4764         * config/nvptx/oacc-parallel.c: Likewise.
4765         * config/nvptx/oacc-plugin.c: Likewise.
4766         * config/nvptx/omp-lock.h: Likewise.
4767         * config/nvptx/ordered.c: Likewise.
4768         * config/nvptx/parallel.c: Likewise.
4769         * config/nvptx/proc.c: Likewise.
4770         * config/nvptx/ptrlock.c: Likewise.
4771         * config/nvptx/sections.c: Likewise.
4772         * config/nvptx/sem.c: Likewise.
4773         * config/nvptx/single.c: Likewise.
4774         * config/nvptx/splay-tree.c: Likewise.
4775         * config/nvptx/target.c: Likewise.
4776         * config/nvptx/task.c: Likewise.
4777         * config/nvptx/team.c: Likewise.
4778         * config/nvptx/time.c: Likewise.
4779         * config/nvptx/work.c: Likewise.
4780         * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
4781         * configure: Regenerate.
4782         * configure.tgt (config_path): Set to "nvptx" for target
4783         nvptx*-*-*.
4785 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
4787         * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
4789 2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>
4791         * plugin/plugin-nvptx.c: Don't include dlfcn.h.
4792         (cuda_errlist): Constify.
4793         (errmsg):  Move into ...
4794         (cuda_error): ... here.  Make smaller.
4795         (_XSTR, _STR): Delete.
4796         (cuda_synames): Delete.
4797         (verify_device_library): Delete.
4798         (nvptx_init): Don't call it.
4800 2015-07-28  Tom de Vries  <tom@codesourcery.com>
4802         * testsuite/libgomp.c/uns-outer-4.c: New test.
4804 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
4806         * testsuite/libgomp.c/pr66714.c: New test.
4808 2015-07-22  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4810         PR libgomp/66950
4811         * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
4812         (fib_ref): New function.
4813         (fib): Correct corner cases in the recursion.
4814         (main): Replace the non-simd loop with fib_ref call.
4815         * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
4816         subroutine.
4817         (fibonacci): Lower the parameter N to 30.  Correct accordingly check
4818         for the last array element value.  Replace the non-simd loop with
4819         fib_ref call.  Remove redundant b_ref array.  Remove the comparison
4820         of the last array element with according Fibonacci sequence element.
4821         (fib): Correct corner cases in the recursion.
4823 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
4825         * target.c (gomp_offload_image_to_device): Rename to ...
4826         (gomp_load_image_to_device): ... here.
4827         (GOMP_offload_register): Adjust call.
4828         (gomp_init_device): Likewise.
4829         (gomp_unload_image_from_device): New.  Broken out of ...
4830         (GOMP_offload_unregister): ... here.  Call it.
4831         (gomp_unload_device): New.
4832         * libgomp.h (gomp_unload_device): Declare.
4833         * oacc-init.c (acc_shutdown_1): Unload from device before deleting
4834         mem maps.
4836 2015-07-20  Nathan Sidwell  <nathan@codesourcery.com>
4838         * oacc-parallel.c (GOACC_parallel): Move variadic handling into
4839         wait=-specific if.
4840         (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
4841         !=0 condition.
4842         (goacc_waits): Move !num_waits handling to ...
4843         (GOACC_wait): ... here, the only caller that might have zero waits.
4845         * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
4846         (struct ptx_image_data): Move earlier, add fns field.
4847         (struct ptx_device): Add images and image_lock fields.
4848         (ptx_images, ptx_image_lock): Delete.
4849         (nvptx_open_device): Initialize images and image_lock fields.
4850         (nvptx_close_device): Destroy image_lock.
4851         (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
4852         (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
4853         fields.
4855 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
4857         * target.c (GOMP_offload_register): Use int for device type arg.
4858         (GOMP_offload_unregister): Likewise.
4860         * target.c (struct_offload_image_descr): Constify host_table.
4861         (gomp_offload_image_to_device): Likewise.
4862         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
4864         * libgomp.h (gomp_device_descr): Constify target data arguments.
4865         * target.c (struct offload_image_descr): Constify target_data.
4866         (gomp_offload_image_to_device): Likewise.
4867         (GOMP_offload_register): Likewise.
4868         (GOMP_offload_unrefister): Likewise.
4869         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
4870         GOMP_OFFLOAD_unload_image): Constify target data.
4871         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
4872         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
4874 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
4876         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
4877         Workaround driver library const error.
4878         (struct nvptx_tdata, nvptx_tdata_t): New.
4879         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
4880         type.
4882 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4884         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
4885         of EPS parameter from integer to real.
4886         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
4887         type of EPS parameter from integer to real.
4889 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4891         * team.c (get_last_team): New.
4892         (gomp_new_team): Recycle last non-nested team if possible.
4893         (gomp_team_end): Move team work share list free lock destruction
4894         to ...
4895         (free_team): ... here.
4897 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4899         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
4900         and ref from int to double.  Replaced their comparison with
4901         an inequality of their difference and EPS.
4902         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
4903         comparison of pri and a reference number with an inequality of their
4904         difference and EPS.
4905         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
4906         the comparison of sum and sum_ref with an inequality of their
4907         difference and EPS.
4908         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
4909         the comparison of pri and a reference number with an inequality of
4910         their difference and EPS.
4912 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
4914         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
4915         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
4916         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
4917         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
4918         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
4919         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
4920         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
4921         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
4922         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
4923         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
4924         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
4925         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
4926         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
4927         variables.
4928         (vec_mult): Likewise.  Add #pragma omp taskwait.
4929         (main): Adjust caller.
4930         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
4931         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
4932         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
4933         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
4934         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
4935         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
4936         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
4937         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
4938         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
4939         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
4940         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
4941         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
4942         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
4943         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
4944         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
4945         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
4946         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
4947         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
4948         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
4949         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
4950         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
4951         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
4952         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
4953         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
4954         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
4955         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
4956         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
4957         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
4958         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
4959         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
4960         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
4961         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
4962         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
4963         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
4964         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
4965         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
4966         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
4967         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
4968         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
4969         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
4970         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
4971         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
4972         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
4973         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
4974         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
4975         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
4976         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
4977         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
4978         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
4979         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
4980         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
4981         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
4982         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
4983         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
4984         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
4985         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
4986         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
4987         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
4988         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
4989         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
4990         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
4991         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
4992         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
4993         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
4994         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
4995         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
4996         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
4997         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
4998         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
4999         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
5000         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
5001         (vec_mult): Add !$omp taskwait.
5002         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
5003         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
5004         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
5005         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
5006         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
5007         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
5008         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
5009         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
5010         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
5011         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
5012         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
5013         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
5014         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
5015         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
5016         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
5017         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
5018         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
5019         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
5020         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
5021         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
5022         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
5023         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
5024         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
5025         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
5026         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
5027         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
5028         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
5029         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
5030         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
5031         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
5032         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
5033         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
5034         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
5035         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
5036         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
5037         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
5038         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
5039         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
5040         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
5041         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
5042         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
5043         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
5044         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
5045         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
5046         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
5047         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
5048         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
5049         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
5050         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
5051         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
5052         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
5053         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
5054         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
5055         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
5056         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
5057         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
5058         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
5059         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
5060         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
5061         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
5062         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
5063         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
5064         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
5065         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
5066         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
5067         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
5068         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
5070 2015-07-10  Tom de Vries  <tom@codesourcery.com>
5072         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
5073         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
5075 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
5077         PR libgomp/65099
5078         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
5079         in a 64-bit configuration.
5080         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
5081         offloading testing if no such device is available.
5082         * testsuite/libgomp.oacc-c/c.exp: Likewise.
5083         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
5085 2015-07-08  Tom de Vries  <tom@codesourcery.com>
5087         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
5088         second call to f.
5089         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5091 2015-07-07  Tom de Vries  <tom@codesourcery.com>
5093         PR tree-optimization/66642
5094         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
5095         iteration count case.
5096         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
5097         function, factor out of ...
5098         (main): ... here.  Test low iteration count case.
5100 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5102         * libgomp.h (gomp_thread_pool): Comment last_team field.
5104 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
5106         * testsuite/libgomp.c++/pr66702-1.C: Require
5107         vect_simd_clones effective target.
5108         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
5110 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5112         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
5113         already set.  Use DEFAULT_CFLAGS in dg-runtest.
5114         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
5115         "-O2".
5117 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5119         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
5120         already set.  Use DEFAULT_CFLAGS in dg-runtest.
5121         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
5122         * testsuite/libgomp.c++/pr64824.C: Same.
5123         * testsuite/libgomp.c++/pr64868.C: Same.
5124         * testsuite/libgomp.c++/pr66199-1.C: Same.
5125         * testsuite/libgomp.c++/pr66199-2.C: Same.
5126         * testsuite/libgomp.c++/target-2.C: Same.
5127         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
5128         -std=<standard> option.
5129         * testsuite/libgomp.c++/udr-11.C: Same.
5130         * testsuite/libgomp.c++/udr-12.C: Same.
5131         * testsuite/libgomp.c++/udr-13.C: Same.
5132         * testsuite/libgomp.c++/udr-14.C: Same.
5133         * testsuite/libgomp.c++/udr-15.C: Same.
5134         * testsuite/libgomp.c++/udr-16.C: Same.
5135         * testsuite/libgomp.c++/udr-17.C: Same.
5136         * testsuite/libgomp.c++/udr-18.C: Same.
5137         * testsuite/libgomp.c++/udr-19.C: Same.
5138         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
5139         * testsuite/libgomp.c++/simd-1.C: Same.
5140         * testsuite/libgomp.c++/simd-2.C: Same.
5141         * testsuite/libgomp.c++/simd-3.C: Same.
5142         * testsuite/libgomp.c++/simd-4.C: Same.
5143         * testsuite/libgomp.c++/simd-5.C: Same.
5144         * testsuite/libgomp.c++/simd-6.C: Same.
5145         * testsuite/libgomp.c++/simd-7.C: Same.
5146         * testsuite/libgomp.c++/simd-8.C: Same.
5147         * testsuite/libgomp.c++/simd-9.C: Same.
5148         * testsuite/libgomp.c++/simd10.C: Same.
5149         * testsuite/libgomp.c++/simd11.C: Same.
5150         * testsuite/libgomp.c++/simd12.C: Same.
5151         * testsuite/libgomp.c++/simd13.C: Same.
5153 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
5155         PR middle-end/66702
5156         * testsuite/libgomp.c++/pr66702-1.C: New test.
5157         * testsuite/libgomp.c++/pr66702-2.C: New test.
5159 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5161         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
5162         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
5163         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
5164         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
5166 2015-06-30  Tom de Vries  <tom@codesourcery.com>
5168         PR tree-optimization/66652
5169         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
5170         using restrict pointers.
5171         (main): Add arguments to calls to f.
5172         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5174 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
5176         * configure.ac: Fix check for header <sys/sysctl.h>.
5177         * configure: Regenerate.
5178         * config.h.in: Likewise.
5180 2015-06-23  Tom de Vries  <tom@codesourcery.com>
5182         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
5183         abort.
5184         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
5186 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
5188         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
5189         acc_device_nvidia.
5191         PR libgomp/66518
5192         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
5193         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5195 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5197         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
5198         dg-additional-options for any remaining options.
5199         * testsuite/libgomp.c/atomic-2.c: Same.
5200         * testsuite/libgomp.c/atomic-4.c: Same.
5201         * testsuite/libgomp.c/atomic-5.c: Same.
5202         * testsuite/libgomp.c/atomic-6.c: Same.
5203         * testsuite/libgomp.c/autopar-1.c: Same.
5204         * testsuite/libgomp.c/copyin-1.c: Same.
5205         * testsuite/libgomp.c/copyin-2.c: Same.
5206         * testsuite/libgomp.c/copyin-3.c: Same.
5207         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
5208         * testsuite/libgomp.c/nestedfn-5.c: Same.
5209         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
5210         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
5211         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
5212         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5213         * testsuite/libgomp.c/pr32362-1.c: Same.
5214         * testsuite/libgomp.c/pr32362-2.c: Same.
5215         * testsuite/libgomp.c/pr32362-3.c: Same.
5216         * testsuite/libgomp.c/pr39591-1.c: Same.
5217         * testsuite/libgomp.c/pr39591-2.c: Same.
5218         * testsuite/libgomp.c/pr39591-3.c: Same.
5219         * testsuite/libgomp.c/pr58392.c: Same.
5220         * testsuite/libgomp.c/pr58756.c: Same.
5221         * testsuite/libgomp.c/simd-1.c: Same.
5222         * testsuite/libgomp.c/simd-10.c: Same.
5223         * testsuite/libgomp.c/simd-11.c: Same.
5224         * testsuite/libgomp.c/simd-12.c: Same.
5225         * testsuite/libgomp.c/simd-13.c: Same.
5226         * testsuite/libgomp.c/simd-14.c: Same.
5227         * testsuite/libgomp.c/simd-15.c: Same.
5228         * testsuite/libgomp.c/simd-2.c: Same.
5229         * testsuite/libgomp.c/simd-3.c: Same.
5230         * testsuite/libgomp.c/simd-4.c: Same.
5231         * testsuite/libgomp.c/simd-5.c: Same.
5232         * testsuite/libgomp.c/simd-6.c: Same.
5233         * testsuite/libgomp.c/simd-7.c: Same.
5234         * testsuite/libgomp.c/simd-8.c: Same.
5235         * testsuite/libgomp.c/simd-9.c: Same.
5237 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5239         * testsuite/libgomp.c/pr35625.c: Fix typo.
5241 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5243         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
5244         in dg-options.
5245         * testsuite/libgomp.c/atomic-3.c: Same.
5246         * testsuite/libgomp.c/debug-1.c: Same.
5247         * testsuite/libgomp.c/nqueens-1.c: Same.
5248         * testsuite/libgomp.c/pr26171.c: Same.
5249         * testsuite/libgomp.c/pr48591.c: Same.
5250         * testsuite/libgomp.c/pr64824.c: Same.
5251         * testsuite/libgomp.c/pr64868.c: Same.
5252         * testsuite/libgomp.c/pr66133.c: Same.
5253         * testsuite/libgomp.c/pr66199-1.c: Same.
5254         * testsuite/libgomp.c/pr66199-2.c: Same.
5255         * testsuite/libgomp.c/target-8.c: Same.
5257 2015-06-15  Tom de Vries  <tom@codesourcery.com>
5259         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
5260         -std={gnu99,c99}.
5261         * testsuite/libgomp.c/for-1.c: Same.
5262         * testsuite/libgomp.c/for-2.c: Same.
5263         * testsuite/libgomp.c/for-3.c: Same.
5264         * testsuite/libgomp.c/pr35625.c: Same.
5265         * testsuite/libgomp.c/pr39154.c: Same.
5266         * testsuite/libgomp.c/simd-16.c: Same.
5267         * testsuite/libgomp.c/simd-17.c: Same.
5269 2015-06-13  Tom de Vries  <tom@codesourcery.com>
5271         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
5273 2015-06-13  Tom de Vries  <tom@codesourcery.com>
5275         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
5276         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
5277         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
5278         (N): Define.
5279         (main): Use N instead of hardcoded constants.
5281 2015-06-05  Tom de Vries  <tom@codesourcery.com>
5283         merge from gomp4 branch:
5284         2015-05-28  Tom de Vries  <tom@codesourcery.com>
5286         PR tree-optimization/65443
5287         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
5288         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
5289         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
5291 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5293         * testsuite/libgomp.graphite/bounds.c: Adjust for
5294         cleanup-tree-dump removal.
5295         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
5296         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
5297         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
5298         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
5299         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
5300         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
5301         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
5302         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
5303         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
5304         * testsuite/libgomp.graphite/pr41118.c: Likewise.
5306 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
5308         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
5309         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
5310         (futex_wake) [!__x86_64__]: Ditto.
5312 2015-05-28  Julian Brown  <julian@codesourcery.com>
5314         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
5315         function comment. Only call gomp_fatal if new argument is true.
5316         (acc_dev_num_out_of_range): New function.
5317         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
5318         acc_dev_num_out_of_range as appropriate.
5319         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
5320         (acc_get_device_num, acc_set_device_num): Update calls to
5321         resolve_device.
5322         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
5323         output.
5325 2015-05-28  Julian Brown  <julian@codesourcery.com>
5327         PR libgomp/65742
5328         * oacc-init.c (plugin/plugin-host.h): Include.
5329         (acc_on_device): Check whether we're in an offloaded region for
5330         host_nonshm
5331         plugin. Don't use __builtin_acc_on_device.
5332         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
5333         nonshm_exec flag in thread-local data.
5334         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
5335         data for host_nonshm plugin.
5336         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
5337         for host_nonshm plugin.
5338         * plugin/plugin-host.h: New.
5340 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5342         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
5344 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5346         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
5347         Declare as int.
5348         (FUTEX_PRIVATE_FLAG): Remove L suffix.
5349         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
5350         Declare as int.
5352 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
5354         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
5356 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
5358         * target.c (gomp_map_pointer): New function abstracting out
5359         GOMP_MAP_POINTER handling.
5360         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
5361         gomp_map_pointer().
5363 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
5365         PR middle-end/66199
5366         * testsuite/libgomp.c/pr66199-1.c: New test.
5367         * testsuite/libgomp.c/pr66199-2.c: New test.
5368         * testsuite/libgomp.c++/pr66199-1.C: New test.
5369         * testsuite/libgomp.c++/pr66199-2.C: New test.
5370         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
5371         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
5373 2015-05-19  Julian Brown  <julian@codesourcery.com>
5375         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
5376         on cuInit failure.
5378 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
5380         PR middle-end/66133
5381         * testsuite/libgomp.c/pr66133.c: New test.
5383 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
5385         * Makefile.in: Regenerated with automake-1.11.6.
5386         * aclocal.m4: Likewise.
5387         * config.h.in: Likewise.
5388         * configure: Likewise.
5389         * testsuite/Makefile.in: Likewise.
5391 2015-05-08  Jason Merrill  <jason@redhat.com>
5393         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
5394         _Complex.
5396         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
5398 2015-05-06  Julian Brown  <julian@codesourcery.com>
5400         * oacc-init.c (acc_device_lock): Add explanatory comment.
5401         (resolve_device): Add comment about locking requirement.
5402         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
5403         gomp_init_device and gomp_fini_device calls.
5404         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
5405         (acc_get_device_num, acc_set_device_num): Add locking around
5406         resolve_device and gomp_init_device calls.
5408 2015-05-06  Julian Brown  <julian@codesourcery.com>
5410         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
5411         goacc_thread_lock on error paths.
5412         * oacc-mem.c (lookup_host): Remove locking from function. Note
5413         locking requirement for caller in function comment.
5414         (lookup_dev): Likewise.
5415         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
5416         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
5417         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
5418         Add locking.
5420 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
5422         PR testsuite/65205
5423         PR libgomp/65993
5424         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
5425         don't expect "0x" prefix for "%p" format specifier, don't expect
5426         "(nil)" for NULL pointer.
5427         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
5428         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
5429         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
5430         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
5431         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
5432         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
5433         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
5434         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
5435         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
5436         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
5437         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
5438         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
5439         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
5440         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
5441         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
5442         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
5443         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
5444         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
5445         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5446         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
5447         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
5448         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
5449         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
5450         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
5451         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
5452         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
5453         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
5454         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
5455         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
5456         accurately specify what we're looking for.
5457         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
5458         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
5459         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
5460         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
5461         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
5463 2015-04-30  James Norris  <jnorris@codesourcery.com>
5465         PR testsuite/65205
5466         * testsuite/lib/libgomp.exp
5467         (check_effective_target_openacc_host_selected)
5468         (check_effective_target_openacc_host_nonshm_selected): New
5469         procedures.
5470         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
5471         dg-shouldfail.
5472         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
5473         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
5474         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
5475         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
5476         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
5477         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
5478         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
5479         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
5480         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
5481         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
5482         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
5483         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
5484         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
5485         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
5486         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
5487         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
5488         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
5489         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
5490         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
5491         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
5492         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
5493         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
5494         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
5495         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5496         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
5497         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
5498         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
5499         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
5500         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
5501         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
5502         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
5503         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
5504         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
5505         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
5506         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
5507         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
5508         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
5509         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
5510         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
5511         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
5512         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
5513         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
5514         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
5516 2015-04-08  Julian Brown  <julian@codesourcery.com>
5518         * libgomp.h (target_mem_desc: Remove mem_map field.
5519         (acc_dispatch_t): Remove open_device_func, close_device_func,
5520         get_device_num_func, set_device_num_func, target_data members.
5521         Change create_thread_data_func argument to device number instead of
5522         generic pointer.
5523         * oacc-async.c (assert.h): Include.
5524         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
5525         (acc_wait_all, acc_wait_all_async): Use current host thread's
5526         active device, not base_dev.
5527         * oacc-cuda.c (acc_get_current_cuda_device)
5528         (acc_get_current_cuda_context, acc_get_cuda_stream)
5529         (acc_set_cuda_stream): Likewise.
5530         * oacc-host.c (host_dispatch): Don't set open_device_func,
5531         close_device_func, get_device_num_func or set_device_num_func.
5532         * oacc-init.c (base_dev, init_key): Remove.
5533         (cached_base_dev): New.
5534         (name_of_acc_device_t): New.
5535         (acc_init_1): Initialise default-numbered device, not zeroth.
5536         (acc_shutdown_1): Close all devices of a given type.
5537         (goacc_destroy_thread): Don't use base_dev.
5538         (lazy_open, lazy_init, lazy_init_and_open): Remove.
5539         (goacc_attach_host_thread_to_device): New.
5540         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
5541         (acc_get_num_devices): Don't use base_dev.
5542         (acc_set_device_type): Reimplement.
5543         (acc_get_device_type): Don't use base_dev.
5544         (acc_get_device_num): Tweak logic.
5545         (acc_set_device_num): Likewise.
5546         (acc_on_device): Use acc_get_device_type.
5547         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
5548         (goacc_lazy_initialize): Reimplement with acc_init and
5549         goacc_attach_host_thread_to_device.
5550         * oacc-int.h (goacc_thread): Add base_dev field.
5551         (base_dev): Remove extern declaration.
5552         (goacc_attach_host_thread_to_device): Add prototype.
5553         * oacc-mem.c (acc_malloc): Use current thread's device instead of
5554         base_dev.
5555         (acc_free): Likewise.
5556         (acc_memcpy_to_device): Likewise.
5557         (acc_memcpy_from_device): Likewise.
5558         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
5559         goacc_lazy_initialize (throughout).
5560         (GOACC_parallel): Use tgt_offset to locate target functions.
5561         * target.c (gomp_map_vars): Don't set tgt->mem_map.
5562         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
5563         (gomp_load_plugin_for_device): Remove open_device, close_device,
5564         get_device_num, set_device_num openacc hook initialisation. Don't set
5565         openacc.target_data.
5566         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
5567         (GOMP_OFFLOAD_openacc_close_device)
5568         (GOMP_OFFLOAD_openacc_get_device_num)
5569         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
5570         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
5571         to int.
5572         * plugin/plugin-nvptx.c (ptx_inited): Remove.
5573         (instantiated_devices, ptx_dev_lock): New.
5574         (struct ptx_image_data): New.
5575         (ptx_devices, ptx_images, ptx_image_lock): New.
5576         (fini_streams_for_device): Reorder cuStreamDestroy call.
5577         (nvptx_get_num_devices): Remove forward declaration.
5578         (nvptx_init): Change return type to bool.
5579         (nvptx_fini): Remove.
5580         (nvptx_attach_host_thread_to_device): New.
5581         (nvptx_open_device): Return struct ptx_device* instead of void*.
5582         (nvptx_close_device): Change argument type to struct ptx_device*,
5583         return type to void.
5584         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
5585         (kernel_target_data, kernel_host_table): Remove static globals.
5586         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
5587         (GOMP_OFFLOAD_init_device): Reimplement.
5588         (GOMP_OFFLOAD_fini_device): Likewise.
5589         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
5590         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
5591         (GOMP_OFFLOAD_host2dev): Use ORD argument.
5592         (GOMP_OFFLOAD_openacc_open_device)
5593         (GOMP_OFFLOAD_openacc_close_device)
5594         (GOMP_OFFLOAD_openacc_set_device_num)
5595         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
5596         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
5597         (device number).
5599         testsuite/
5600         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
5602 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
5604         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
5605         * libgomp.h (struct gomp_memory_mapping): Remove.
5606         (struct target_mem_desc): Change type of mem_map from
5607         gomp_memory_mapping * to splay_tree_s *.
5608         (struct gomp_device_descr): Remove register_image_func, get_table_func.
5609         Add load_image_func, unload_image_func.
5610         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
5611         Remove offload_regions_registered.
5612         (gomp_init_tables): Remove.
5613         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
5614         to splay_tree_s *.
5615         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
5616         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
5617         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
5618         offload_regions_registered.
5619         Initialize load_image_func, unload_image_func, mem_map.root.
5620         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
5621         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
5622         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
5623         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
5624         gomp_memory_mapping *.  Use dev's lock and splay_tree.
5625         (lookup_dev): Use dev's lock.
5626         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
5627         (acc_is_present): Likewise.
5628         (acc_map_data): Likewise.
5629         (acc_unmap_data): Likewise.  Use dev's lock.
5630         (present_create_copy): Likewise.
5631         (delete_copyout): Pass dev to lookup_host instead of mem_map.
5632         (update_dev_host): Likewise.
5633         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
5634         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
5635         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
5636         (GOMP_OFFLOAD_get_table): Remove
5637         (GOMP_OFFLOAD_load_image): New function.
5638         (GOMP_OFFLOAD_unload_image): New function.
5639         * target.c (register_lock): New mutex for offload image registration.
5640         (num_devices): Do not guard with PLUGIN_SUPPORT.
5641         (gomp_realloc_unlock): New static function.
5642         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
5643         before gomp_fatal.
5644         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
5645         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
5646         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
5647         mem_map's.
5648         (gomp_unmap_vars): Likewise.
5649         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
5650         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
5651         (gomp_offload_image_to_device): New static function.
5652         (GOMP_offload_register): Add mutex lock.
5653         Call gomp_offload_image_to_device for all initialized devices.
5654         Replace gomp_realloc with gomp_realloc_unlock.
5655         (GOMP_offload_unregister): New function.
5656         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
5657         get_table_func from the plugin with calls to init_device_func and
5658         gomp_offload_image_to_device.
5659         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
5660         to splay_tree_s *.
5661         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
5662         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
5663         (GOMP_target_data): Do not call gomp_init_tables.
5664         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
5665         (gomp_load_plugin_for_device): Replace register_image and get_table
5666         with load_image and unload_image in DLSYM ().
5667         (gomp_register_images_for_device): Remove function.
5668         (gomp_target_init): Do not initialize current_device.mem_map.*,
5669         current_device.offload_regions_registered.
5670         Remove call to gomp_register_images_for_device.
5671         Do not free offload_images and num_offload_images.
5673 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
5675         PR fortran/65597
5676         * testsuite/libgomp.fortran/pr65597.f90: New test.
5678 2015-03-27  Tom de Vries  <tom@codesourcery.com>
5680         PR testsuite/65594
5681         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
5682         (init, check): New function.
5683         (foo): Change return type to void.
5684         (main): Call init and check.
5686 2015-03-27  Tom de Vries  <tom@codesourcery.com>
5688         PR testsuite/65594
5689         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
5690         (foo): Use M for non-inner loops to scale down test-case.
5692 2015-03-25  Kai Tietz  <ktietz@redhat.com>
5694         PR libgomp/64972
5695         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
5696         (GOACC_data_start): Likewise.
5697         * target.c (gomp_map_vars): Likewise.
5699 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
5701         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
5702         hppa*-*-hpux*.
5704 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
5706         * testsuite/libgomp.c/target-10.c: New test.
5707         * testsuite/libgomp.c++/target-4.C: New test.
5709 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
5711         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
5712         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
5714 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5716         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
5717         * configure.ac (*-*-rtems*): Assume Pthread is supported.
5718         (pthread.h): Check for this header file.
5719         * configure: Regenerate.
5721 2015-02-25  Tom de Vries  <tom@codesourcery.com>
5723         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
5724         (check_reduction_op, check_reduction_macro, max, min):
5725         Declare.
5726         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
5727         function.
5728         (main): Use new functions.
5730 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
5732         * target.c (gomp_load_plugin_for_device): Use const char * instead of
5733         char * for variables holding dlerror return values.
5734         (DLSYM_OPT): Ditto.
5736 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
5738         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
5740 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
5741             Cesar Philippidis  <cesar@codesourcery.com>
5743         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
5744         GOACC_ctaid, and GOACC_nctaid routines.
5746 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
5748         PR c/64824
5749         * testsuite/libgomp.c/atomic-18.c: New test.
5750         * testsuite/libgomp.c++/atomic-16.C: New test.
5752 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
5754         PR c/64824
5755         PR c/64868
5756         * testsuite/libgomp.c/pr64824.c: New test.
5757         * testsuite/libgomp.c/pr64868.c: New test.
5758         * testsuite/libgomp.c++/pr64824.C: New test.
5759         * testsuite/libgomp.c++/pr64868.C: New test.
5761 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
5763         PR libgomp/64635
5764         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
5765         Link with -lpthread.
5766         * config/aix/plugin-suffix.h: Delete.
5768 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
5770         PR libgomp/64635
5771         * configure.tgt (*-*-aix*): Use config_path "aix posix".
5772         (*-*-darwin*): Use config_path "bsd darwin posix".
5773         (*-*-hpux*): Use config_path "hpux posix".
5774         * target.c: Add include of plugin-suffix.h and use
5775         SONAME_SUFFIX macro.
5776         * config/aix/plugin-suffix.h: New file.
5777         * config/darwin/plugin-suffix.h: New file.
5778         * config/hpux/plugin-suffix.h: New file.
5779         * config/posix/plugin-suffix.h: New file.
5781 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
5783         PR middle-end/64734
5784         * libgomp.c/pr64734.c: New test.
5786 2015-01-23  Tom de Vries  <tom@codesourcery.com>
5788         PR libgomp/64672
5789         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
5791 2015-01-23  Tom de Vries  <tom@codesourcery.com>
5793         PR libgomp/64707
5794         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
5795         dg-options.
5797 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
5799         PR libgomp/64625
5800         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
5801         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
5802         formal parameter.  Update all users.
5803         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
5804         Document unused formal parameter.
5806 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
5808         * oacc-parallel.c: Don't include <alloca.h>.
5809         (GOACC_parallel): Use gomp_alloca instead of alloca.
5811 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
5813         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
5815 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
5816             James Norris  <jnorris@codesourcery.com>
5817             Tom de Vries  <tom@codesourcery.com>
5818             Julian Brown  <julian@codesourcery.com>
5819             Cesar Philippidis  <cesar@codesourcery.com>
5820             Nathan Sidwell  <nathan@codesourcery.com>
5821             Tobias Burnus  <burnus@net-b.de>
5823         * Makefile.am (search_path): Add $(top_srcdir)/../include.
5824         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
5825         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
5826         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
5827         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
5828         Include $(top_srcdir)/plugin/Makefrag.am.
5829         (nodist_libsubinclude_HEADERS): Add openacc.h.
5830         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
5831         openacc.f90, openacc.mod, openacc_kinds.mod.
5832         (omp_lib.mod): Generalize into...
5833         (%.mod): ... this new rule.
5834         (openacc_kinds.mod, openacc.mod): New rules.
5835         * plugin/configfrag.ac: New file.
5836         * configure.ac: Move plugin/offloading support into it.  Include
5837         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
5838         * plugin/Makefrag.am: New file.
5839         * testsuite/Makefile.am (OFFLOAD_TARGETS)
5840         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
5841         export.
5842         (libgomp-test-support.exp): New rule.
5843         (all-local): Depend on it.
5844         * Makefile.in: Regenerate.
5845         * testsuite/Makefile.in: Regenerate.
5846         * config.h.in: Likewise.
5847         * configure: Likewise.
5848         * configure.tgt: Harden shell syntax.
5849         * env.c: Include "oacc-int.h".
5850         (parse_acc_device_type): New function.
5851         (gomp_debug_var, goacc_device_type, goacc_device_num): New
5852         variables.
5853         (initialize_env): Initialize those.  Call
5854         goacc_runtime_initialize.
5855         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
5856         (gomp_fatal): Call gomp_vfatal.
5857         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
5858         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
5859         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
5860         (splay_tree_node, splay_tree, splay_tree_key)
5861         (struct target_mem_desc, struct splay_tree_key_s)
5862         (struct gomp_memory_mapping, struct acc_dispatch_t)
5863         (struct gomp_device_descr, gomp_acc_insert_pointer)
5864         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
5865         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
5866         (gomp_free_memmap, gomp_fini_device): New declarations.
5867         (gomp_vdebug, gomp_debug): New macros.
5868         Include "splay-tree.h".
5869         * libgomp.map (OACC_2.0): New symbol version.  Use for
5870         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
5871         acc_set_device_type_h_, acc_get_device_type,
5872         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
5873         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
5874         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
5875         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
5876         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
5877         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
5878         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
5879         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
5880         acc_copyin_array_h_, acc_present_or_copyin,
5881         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
5882         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
5883         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
5884         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
5885         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
5886         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
5887         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
5888         acc_update_device, acc_update_device_32_h_,
5889         acc_update_device_64_h_, acc_update_device_array_h_,
5890         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
5891         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
5892         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
5893         acc_is_present_64_h_, acc_is_present_array_h_,
5894         acc_memcpy_to_device, acc_memcpy_from_device,
5895         acc_get_current_cuda_device, acc_get_current_cuda_context,
5896         acc_get_cuda_stream, acc_set_cuda_stream.
5897         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
5898         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
5899         GOACC_update, GOACC_wait, GOACC_get_thread_num,
5900         GOACC_get_num_threads.
5901         (GOMP_PLUGIN_1.0): New symbol version.  Use for
5902         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
5903         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
5904         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
5905         GOMP_PLUGIN_acc_thread.
5906         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
5907         environment variable.
5908         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
5909         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
5910         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
5911         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
5912         (splay_tree_remove): New declarations.
5913         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
5914         (splay_tree_remove, splay_tree_lookup): Move into...
5915         * splay-tree.c: ... this new file.
5916         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
5917         (splay_tree_node, splay_tree, splay_tree_key)
5918         (struct target_mem_desc, struct splay_tree_key_s)
5919         (struct gomp_device_descr): Don't declare.
5920         (num_devices_openmp): New variable.
5921         (gomp_get_num_devices ): Use it.
5922         (gomp_init_targets_once): New function.
5923         (gomp_get_num_devices ): Use it.
5924         (get_kind, gomp_copy_from_async, gomp_free_memmap)
5925         (gomp_fini_device, gomp_register_image_for_device): New functions.
5926         (gomp_map_vars): Add devaddrs parameter.
5927         (gomp_update): Add mm parameter.
5928         (gomp_init_device): Move most of it into...
5929         (gomp_init_tables): ... this new function.
5930         (gomp_register_images_for_device): Remove function.
5931         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
5932         Make them hidden instead of static.
5933         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
5934         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
5935         (GOMP_target_end_data, GOMP_target_update)
5936         (gomp_load_plugin_for_device, gomp_target_init): Update for
5937         OpenACC changes.
5938         * oacc-async.c: New file.
5939         * oacc-cuda.c: Likewise.
5940         * oacc-host.c: Likewise.
5941         * oacc-init.c: Likewise.
5942         * oacc-int.h: Likewise.
5943         * oacc-mem.c: Likewise.
5944         * oacc-parallel.c: Likewise.
5945         * oacc-plugin.c: Likewise.
5946         * oacc-plugin.h: Likewise.
5947         * oacc-ptx.h: Likewise.
5948         * openacc.f90: Likewise.
5949         * openacc.h: Likewise.
5950         * openacc_lib.h: Likewise.
5951         * plugin/plugin-host.c: Likewise.
5952         * plugin/plugin-nvptx.c: Likewise.
5953         * libgomp-plugin.c: Likewise.
5954         * libgomp-plugin.h: Likewise.
5955         * libgomp_target.h: Remove file after merging content into the
5956         former file.  Update all users.
5957         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
5958         (offload_targets_s, offload_targets_s_openacc): New variables.
5959         (check_effective_target_openacc_nvidia_accel_present)
5960         (check_effective_target_openacc_nvidia_accel_selected): New
5961         procedures.
5962         (libgomp_init): Update for OpenACC changes.
5963         * testsuite/libgomp-test-support.exp.in: New file.
5964         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
5965         * testsuite/libgomp.oacc-c/c.exp: Likewise.
5966         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
5967         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
5968         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
5969         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
5970         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
5971         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
5972         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
5973         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
5974         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
5975         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
5976         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
5977         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
5978         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
5979         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
5980         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
5981         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
5982         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
5983         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
5984         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
5985         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
5986         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
5987         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
5988         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
5989         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
5990         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
5991         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
5992         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
5993         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
5994         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
5995         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
5996         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
5997         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
5998         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
5999         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
6000         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
6001         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
6002         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
6003         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
6004         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
6005         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
6006         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
6007         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
6008         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
6009         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
6010         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
6011         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
6012         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
6013         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
6014         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
6015         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
6016         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
6017         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
6018         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
6019         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
6020         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
6021         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
6022         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
6023         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
6024         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
6025         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
6026         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
6027         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
6028         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
6029         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
6030         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
6031         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
6032         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
6033         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
6034         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
6035         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
6036         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
6037         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
6038         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
6039         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
6040         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
6041         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
6042         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
6043         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
6044         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
6045         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
6046         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
6047         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
6048         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
6049         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
6050         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
6051         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
6052         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
6053         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
6054         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
6055         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
6056         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
6057         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
6058         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
6059         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
6060         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
6061         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
6062         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
6063         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
6064         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
6065         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
6066         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
6067         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
6068         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
6069         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
6070         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
6071         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
6072         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
6073         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
6074         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
6075         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
6076         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
6077         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
6078         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
6079         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
6080         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
6081         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
6082         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
6083         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
6084         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
6085         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
6086         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
6087         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
6088         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
6089         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
6090         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
6091         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
6092         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
6093         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
6094         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
6095         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
6096         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
6097         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
6098         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
6099         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
6100         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
6101         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
6102         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
6103         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
6104         Likewise.
6105         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
6106         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
6107         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
6108         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
6109         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
6110         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
6111         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
6112         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
6113         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
6114         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
6115         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
6116         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
6117         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
6118         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
6119         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
6120         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
6121         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
6122         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
6123         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
6124         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
6125         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
6126         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
6127         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
6128         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
6129         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
6130         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
6131         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
6132         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
6133         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
6134         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
6135         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
6136         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
6137         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
6138         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
6139         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
6140         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
6141         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
6142         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
6143         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
6144         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
6145         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
6146         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
6147         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
6148         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
6149         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
6150         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
6151         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
6152         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
6153         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
6154         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
6155         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
6156         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
6157         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
6158         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
6159         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
6160         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
6161         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
6162         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
6163         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
6164         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
6166 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
6167             Julian Brown  <julian@codesourcery.com>
6168             David Malcolm  <dmalcolm@redhat.com>
6170         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
6171         to "GNU Offloading and Multi Processing Runtime Library".  Change
6172         all users.
6173         * configure: Regenerate.
6174         * libgomp.texi: Update.
6176 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
6178         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
6179         "$tgt_dir/lib32".
6180         * configure: Regenerate.
6182         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
6183         "intelmic" in $offload_targets.
6185 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
6187         Update copyright years.
6189         * libgomp.texi: Bump @copying's copyright year.
6191 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6193         * testsuite/lib/libgomp.exp: Load target-utils.exp.
6194         Move load of target-supportes.exp earlier.
6196 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
6198         * testsuite/libgomp.c/target-9.c: New test.
6200 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
6202         * config.h.in: Regenerate.
6203         * configure: Regenerate.
6204         * configure.ac: Add GCC_CHECK_EMUTLS.
6205         * libgomp.h: Add check for USE_EMUTLS: this case
6206         is equal to HAVE_TLS.
6207         * team.c: Likewise.
6209 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
6211         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
6213 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6214             Ilya Verbin  <ilya.verbin@intel.com>
6216         * testsuite/libgomp.c/target-critical-1.c: New test.
6218 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
6220         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
6221         to dg-options unless expensive testing is on.
6222         (TESTITERS): Define to N if not defined.
6223         (main): Use TESTITERS instead of N.
6224         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
6225         dg-additional-options depending on whether expensive testing is on.
6226         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
6227         Decrease N to 100000 and CHUNKSZ to 10000.
6229 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
6231         PR fortran/63938
6232         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
6233         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
6235 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
6237         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
6239 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
6241         PR bootstrap/63784
6242         * configure: Regenerated.
6244 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
6246         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
6247         vect_simd_clones effective target.
6248         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
6250 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6252         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
6253         of 32 as block_size.
6254         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
6255         instead of 32 as block_size.
6257 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6258             Ilya Verbin  <ilya.verbin@intel.com>
6260         * Makefile.in: Regenerate.
6261         * configure: Regenerate.
6262         * configure.ac: Set up offload_additional_options,
6263         offload_additional_lib_paths and offload_targets.
6264         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
6265         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
6266         * testsuite/Makefile.in: Regenerate.
6267         * testsuite/lib/libgomp.exp (libgomp_init): Append
6268         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
6269         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
6270         build directory to LD_LIBRARY_PATH for intelmic offload targets.
6272 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6273             Ilya Verbin  <ilya.verbin@intel.com>
6274             Kirill Yukhin  <kirill.yukhin@intel.com>
6275             Ilya Tocar  <ilya.tocar@intel.com>
6277         * testsuite/lib/libgomp.exp
6278         (check_effective_target_offload_device): New.
6279         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
6280         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
6281         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
6282         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
6283         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
6284         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
6285         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
6286         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
6287         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
6288         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
6289         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
6290         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
6291         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
6292         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
6293         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
6294         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
6295         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
6296         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
6297         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
6298         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
6299         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
6300         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
6301         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
6302         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
6303         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
6304         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
6305         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
6306         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
6307         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
6308         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
6309         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
6310         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
6311         * testsuite/libgomp.c/target-7.c: Fix test.
6312         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
6313         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
6314         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
6315         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
6316         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
6317         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
6318         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
6319         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
6320         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
6321         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
6322         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
6323         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
6324         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
6325         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
6326         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
6327         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
6328         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
6329         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
6330         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
6331         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
6332         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
6333         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
6334         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
6335         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
6336         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
6337         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
6338         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
6339         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
6340         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
6341         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
6342         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
6344 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
6345             Ilya Verbin  <ilya.verbin@intel.com>
6346             Thomas Schwinge  <thomas@codesourcery.com>
6347             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6349         * libgomp.map (GOMP_4.0.1): New symbol version.
6350         Add GOMP_offload_register.
6351         * libgomp_target.h: New file.
6352         * splay-tree.h: New file.
6353         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
6354         (gomp_target_init): New forward declaration.
6355         (gomp_is_initialized): New static variable.
6356         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
6357         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
6358         New structures.
6359         (offload_images, num_offload_images, devices, num_devices): New static
6360         variables.
6361         (splay_compare): New static function.
6362         (struct gomp_device_descr): New structure.
6363         (gomp_get_num_devices): Call gomp_target_init.
6364         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
6365         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
6366         (GOMP_offload_register): New function.
6367         (GOMP_target): Arrange for host callback to be performed in a separate
6368         initial thread and contention group, inheriting ICVs from
6369         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
6370         Add device initialization and lookup for target function in splay tree.
6371         (GOMP_target_data): Add device initialization and call gomp_map_vars.
6372         (GOMP_target_end_data): Call gomp_unmap_vars.
6373         (GOMP_target_update): Add device initialization and call gomp_update.
6374         (gomp_load_plugin_for_device, gomp_register_images_for_device)
6375         (gomp_target_init): New static functions.
6377 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
6378             Thomas Schwinge  <thomas@codesourcery.com>
6379             Ilya Verbin  <ilya.verbin@intel.com>
6380             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6382         * config.h.in: Regenerate.
6383         * configure: Regenerate.
6384         * configure.ac: Check for libdl, required for plugin support.
6385         (PLUGIN_SUPPORT): Define if plugins are supported.
6386         (enable_offload_targets): Support Intel MIC targets.
6387         (OFFLOAD_TARGETS): List of target names suitable for offloading.
6389 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6391         PR target/63610
6392         * configure: Regenerate.
6394 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6396         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
6398 2014-10-06  Marek Polacek  <polacek@redhat.com>
6400         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
6401         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
6402         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
6403         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
6405 2014-10-06  Marek Polacek  <polacek@redhat.com>
6407         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
6408         * testsuite/libgomp.c/nqueens-1.c: Likewise.
6409         * testsuite/libgomp.c/pr26943-3.c: Likewise.
6410         * testsuite/libgomp.c/pr26943-4.c: Likewise.
6411         * testsuite/libgomp.c/pr36802-2.c: Likewise.
6412         * testsuite/libgomp.c/pr36802-3.c: Likewise.
6413         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
6414         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
6415         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
6416         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
6417         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
6418         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
6419         * testsuite/libgomp.c/omp-single-1.c: Likewise.
6420         * testsuite/libgomp.c/omp-single-2.c: Likewise.
6421         * testsuite/libgomp.c/omp_matvec.c: Likewise.
6422         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
6423         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
6424         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
6425         declarations.
6427 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
6429         PR libgomp/61200
6430         * testsuite/libgomp.c/pr61200.c: New test.
6432 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
6434         PR c++/63248
6435         * testsuite/libgomp.c++/pr63248.C: New test.
6437 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
6439         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
6440         is not zero, but taskgroup->children is NULL and there are
6441         any task->children, schedule those instead of waiting.
6442         * testsuite/libgomp.c/depend-6.c: New test.
6443         * testsuite/libgomp.c/depend-7.c: New test.
6444         * testsuite/libgomp.c/depend-8.c: New test.
6445         * testsuite/libgomp.c/depend-9.c: New test.
6446         * testsuite/libgomp.c/depend-10.c: New test.
6448 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
6450         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
6451         (struct gomp_taskwait): New type.
6452         (struct gomp_task): Add taskwait and parent_depends_on, remove
6453         in_taskwait and taskwait_sem fields.
6454         (gomp_finish_task): Don't destroy taskwait_sem.
6455         * task.c (gomp_init_task): Don't init in_taskwait, instead init
6456         taskwait and parent_depends_on.
6457         (GOMP_task): For if (0) tasks with depend clause that depend on
6458         earlier tasks don't defer them, instead call
6459         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
6460         Initialize redundant_out field, for redundant out entries just
6461         move them at the end of linked list instead of removing them
6462         completely, and set redundant_out flag instead of redundant.
6463         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
6464         that task.
6465         (gomp_task_run_post_handle_dependers): If parent is in
6466         gomp_task_maybe_wait_for_dependencies and newly runnable task
6467         is not parent_depends_on, queue it in parent->children linked
6468         list after all runnable tasks with parent_depends_on set.
6469         Adjust for addition of taskwait indirection.
6470         (gomp_task_run_post_remove_parent): If parent is in
6471         gomp_task_maybe_wait_for_dependencies and task to be removed
6472         is parent_depends_on, decrement n_depend and if needed awake
6473         parent.  Adjust for addition of taskwait indirection.
6474         (GOMP_taskwait): Adjust for addition of taskwait indirection.
6475         (gomp_task_maybe_wait_for_dependencies): New function.
6476         * testsuite/libgomp.c/depend-5.c: New test.
6478 2014-07-13  Tobias Burnus  <burnus@net-b.de>
6480         * testsuite/libgomp.fortran/pr34020.f90: Make compile
6481         with TS 18508/Fortran 2015.
6483 2014-07-06  Marek Polacek  <polacek@redhat.com>
6485         PR c/6940
6486         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
6488 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
6490         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
6491         matches regex $lang_source_re, add $lang_include_flags to options.
6492         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
6493         * testsuite/libgomp.c++/c++.exp: Likewise.
6494         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
6495         and lang_include_flags instead of adding -fintrinsic-modules-path= to
6496         ALWAYS_CFLAGS.
6497         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
6499 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
6501         * testsuite/libgomp.fortran/fortran.exp: Explain
6502         gfortran-dg-runtest usage.
6504 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
6506         * testsuite/libgomp.fortran/simd5.f90: New test.
6507         * testsuite/libgomp.fortran/simd6.f90: New test.
6508         * testsuite/libgomp.fortran/simd7.f90: New test.
6510 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
6512         * testsuite/libgomp.c/for-2.c: Define SC to static for
6513         #pragma omp for simd testing.
6514         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
6515         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
6516         SC macro.
6517         * testsuite/libgomp.c/simd-14.c: New test.
6518         * testsuite/libgomp.c/simd-15.c: New test.
6519         * testsuite/libgomp.c/simd-16.c: New test.
6520         * testsuite/libgomp.c/simd-17.c: New test.
6521         * testsuite/libgomp.c++/for-10.C: Define SC to static for
6522         #pragma omp for simd testing.
6523         * testsuite/libgomp.c++/simd10.C: New test.
6524         * testsuite/libgomp.c++/simd11.C: New test.
6525         * testsuite/libgomp.c++/simd12.C: New test.
6526         * testsuite/libgomp.c++/simd13.C: New test.
6528         * testsuite/libgomp.fortran/aligned1.f03: New test.
6529         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
6530         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
6531         tasks with !$omp parallel !$omp single.
6532         * testsuite/libgomp.fortran/target8.f90: New test.
6533         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
6534         not to use trim in the combiner, instead call elemental function.
6535         (fn): New elemental function.
6536         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
6537         Make elemental.
6538         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
6539         omp_in): Likewise.
6540         * testsuite/libgomp.fortran/udr12.f90: New test.
6541         * testsuite/libgomp.fortran/udr13.f90: New test.
6542         * testsuite/libgomp.fortran/udr14.f90: New test.
6543         * testsuite/libgomp.fortran/udr15.f90: New test.
6545 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
6547         * omp_lib.f90.in (openmp_version): Set to 201307.
6548         * omp_lib.h.in (openmp_version): Likewise.
6549         * testsuite/libgomp.c/target-8.c: New test.
6550         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
6551         and inbranch clauses.
6552         * testsuite/libgomp.fortran/depend-3.f90: New test.
6553         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
6554         openmp_version.
6555         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
6556         * testsuite/libgomp.fortran/target1.f90: New test.
6557         * testsuite/libgomp.fortran/target2.f90: New test.
6558         * testsuite/libgomp.fortran/target3.f90: New test.
6559         * testsuite/libgomp.fortran/target4.f90: New test.
6560         * testsuite/libgomp.fortran/target5.f90: New test.
6561         * testsuite/libgomp.fortran/target6.f90: New test.
6562         * testsuite/libgomp.fortran/target7.f90: New test.
6564 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
6566         PR fortran/60928
6567         * testsuite/libgomp.fortran/allocatable9.f90: New test.
6568         * testsuite/libgomp.fortran/allocatable10.f90: New test.
6569         * testsuite/libgomp.fortran/allocatable11.f90: New test.
6570         * testsuite/libgomp.fortran/allocatable12.f90: New test.
6571         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
6572         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
6573         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
6574         * testsuite/libgomp.fortran/associate1.f90: New test.
6575         * testsuite/libgomp.fortran/associate2.f90: New test.
6576         * testsuite/libgomp.fortran/procptr1.f90: New test.
6578 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
6580         * testsuite/libgomp.fortran/simd1.f90: New test.
6581         * testsuite/libgomp.fortran/udr1.f90: New test.
6582         * testsuite/libgomp.fortran/udr2.f90: New test.
6583         * testsuite/libgomp.fortran/udr3.f90: New test.
6584         * testsuite/libgomp.fortran/udr4.f90: New test.
6585         * testsuite/libgomp.fortran/udr5.f90: New test.
6586         * testsuite/libgomp.fortran/udr6.f90: New test.
6587         * testsuite/libgomp.fortran/udr7.f90: New test.
6588         * testsuite/libgomp.fortran/udr8.f90: New test.
6589         * testsuite/libgomp.fortran/udr9.f90: New test.
6590         * testsuite/libgomp.fortran/udr10.f90: New test.
6591         * testsuite/libgomp.fortran/udr11.f90: New test.
6593 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
6595         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
6596         vect_simd_clones effective target.
6597         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
6599 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
6601         PR middle-end/61252
6602         * testsuite/libgomp.c++/simd-9.C: New test.
6604 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
6606         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
6607         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
6608         texts according to their @menu entry positions.
6610 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
6612         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
6613         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
6614         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
6615         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
6616         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
6617         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
6618         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
6619         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
6620         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
6621         * testsuite/libgomp.fortran/depend-1.f90: New test.
6622         * testsuite/libgomp.fortran/depend-2.f90: New test.
6623         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
6624         * testsuite/libgomp.fortran/simd1.f90: New test.
6625         * testsuite/libgomp.fortran/simd2.f90: New test.
6626         * testsuite/libgomp.fortran/simd3.f90: New test.
6627         * testsuite/libgomp.fortran/simd4.f90: New test.
6628         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
6630 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
6632         * testsuite/libgomp.c/simd-10.c: New test.
6633         * testsuite/libgomp.c/simd-11.c: New test.
6634         * testsuite/libgomp.c/simd-12.c: New test.
6635         * testsuite/libgomp.c/simd-13.c: New test.
6637 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
6639         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
6640         atomic type clauses in any order and optional comma in between.
6641         * testsuite/libgomp.c++/atomic-15.C: Likewise.
6642         * testsuite/libgomp.c/atomic-17.c: Likewise.
6644         * testsuite/libgomp.c/simd-7.c: New test.
6645         * testsuite/libgomp.c/simd-8.c: New test.
6646         * testsuite/libgomp.c/simd-9.c: New test.
6647         * testsuite/libgomp.c/loop-16.c: New test.
6649 2014-04-02  Richard Henderson  <rth@redhat.com>
6651         * config/linux/futex.h (futex_wait): Get error value from errno.
6652         (futex_wake): Likewise.
6654 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
6656         PR c++/60331
6657         * testsuite/libgomp.c++/udr-11.C: New test.
6658         * testsuite/libgomp.c++/udr-12.C: New test.
6659         * testsuite/libgomp.c++/udr-13.C: New test.
6660         * testsuite/libgomp.c++/udr-14.C: New test.
6661         * testsuite/libgomp.c++/udr-15.C: New test.
6662         * testsuite/libgomp.c++/udr-16.C: New test.
6663         * testsuite/libgomp.c++/udr-17.C: New test.
6664         * testsuite/libgomp.c++/udr-18.C: New test.
6665         * testsuite/libgomp.c++/udr-19.C: New test.
6667 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6669         Update copyright years
6671 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6673         * hashtab.h: Use the standard form for the copyright notice.
6675 2014-01-02  Tobias Burnus  <burnus@net-b.de>
6677         * libgomp.texi: Bump @copying's copyright year.
6679 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
6681         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
6682         alloca () with __builtin_alloca ().
6683         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
6684         * testsuite/libgomp.c/lock-3.c: Likewise.
6685         * testsuite/libgomp.c/pr48591.c: Likewise.
6687 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
6689         PR testsuite/59534
6690         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
6691         comparisons.
6693 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
6695         PR libgomp/58756
6696         * testsuite/libgomp.c/pr58756.c: New test.
6698 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
6700         PR libgomp/59467
6701         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
6702         !$omp parallel.
6704 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
6706         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
6707         ALWAYS_CFLAGS.
6708         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
6709         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
6710         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
6711         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
6712         Likewise.
6714         * libgomp_g.h: Include <stddef.h> for size_t.
6716         * libgomp.spec.in: Update comment about libgomp's dependencies.
6717         * configure.ac: Likewise.
6718         * configure: Regenerate.
6720 2013-10-16  Tobias Burnus  <burnus@net-b.de>
6722         * libgomp.texi: (Runtime Library Routines): Update references for
6723         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
6724         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
6725         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
6726         (Environment Variables): Update references for OpenMP 4.0. Add
6727         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
6728         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
6729         order.
6731 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
6733         * env.c (parse_bind_var): Initialize value to avoid
6734         (false positive) warning.
6736 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
6738         PR libgomp/58691
6739         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
6740         to check variable.
6741         (gomp_init_num_threads): Move i variable declaration into
6742         #ifdef CPU_ALLOC_SIZE block.
6743         * config/linux/affinity.c (gomp_affinity_init_level): Test
6744         gomp_places_list_len == 0 rather than gomp_places_list == 0
6745         when checking for topology reading error.
6746         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
6747         * env.c (parse_affinity): Add ignore argument, if true, don't populate
6748         gomp_places_list, only parse env var and always return false.
6749         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
6750         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
6751         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
6752         and either of these variables were parsed correctly into a places
6753         list.
6755 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
6756             Jakub Jelinek  <jakub@redhat.com>
6758         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
6759         of 5 loopfn matches.
6760         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
6761         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
6762         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
6763         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
6764         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
6765         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
6766         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
6767         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
6769 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
6771         * Makefile.am (omp_lib.mod): Streamline rule.
6772         * Makefile.in: Regenerate.
6774         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
6775         exceptions.
6777         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
6778         * testsuite/libgomp.fortran/lib1.f90: Likewise.
6779         * testsuite/libgomp.fortran/lib2.f: Likewise.
6780         * testsuite/libgomp.fortran/lib3.f: Likewise.
6782         * configure.ac: Typo fix.
6783         * configure: Regenerate.
6785         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
6786         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
6788         * omp.h.in: Don't touch the user's namespace.
6790 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
6791             Tobias Burnus  <burnus@net-b.de>
6792             Richard Henderson  <rth@redhat.com>
6794         * target.c: New file.
6795         * Makefile.am (libgomp_la_SOURCES): Add target.c.
6796         * Makefile.in: Regenerated.
6797         * libgomp_g.h (GOMP_task): Add depend argument.
6798         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
6799         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
6800         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
6801         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
6802         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
6803         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
6804         GOMP_taskgroup_start, GOMP_taskgroup_end,
6805         GOMP_parallel_sections): New prototypes.
6806         * fortran.c (omp_is_initial_device): Add ialias_redirect.
6807         (omp_is_initial_device_): New function.
6808         (ULP, STR1, STR2, ialias_redirect): Removed.
6809         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
6810         omp_set_default_device_8_, omp_get_default_device_,
6811         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
6812         functions.
6813         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
6814         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
6815         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
6816         @@GOMP_4.0.
6817         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
6818         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
6819         omp_set_default_device, omp_set_default_device_,
6820         omp_set_default_device_8_, omp_get_default_device,
6821         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
6822         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
6823         omp_get_team_num_): Export @@OMP_4.0.
6824         * team.c (struct gomp_thread_start_data): Add place field.
6825         (gomp_thread_start): Clear thr->thread_pool and
6826         thr->task before returning.  Use gomp_team_barrier_wait_final
6827         instead of gomp_team_barrier_wait.  Initialize thr->place.
6828         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
6829         team_cancelled and task_queued_count fields.
6830         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
6831         before calling pthread_exit.
6832         (gomp_free_thread): No longer static.  Use
6833         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
6834         (gomp_team_start): Add flags argument.  Set
6835         thr->thread_pool->threads_busy to nthreads immediately after creating
6836         new pool.  Use gomp_managed_threads_lock instead of
6837         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
6838         (gomp_team_end): Use gomp_managed_threads_lock instead of
6839         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
6840         of gomp_team_barrier_wait.  If team->team_cancelled, call
6841         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
6842         rather than thr->ts.work_share.
6843         (initialize_team): Don't call gomp_sem_init here.
6844         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
6845         caller.
6846         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
6847         * env.c (gomp_global_icv): Add default_device_var, target_data and
6848         bind_var initializers.
6849         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
6850         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
6851         gomp_places_list_len): New variables.
6852         (parse_bind_var, parse_one_place, parse_places_var): New functions.
6853         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
6854         sized places.
6855         (gomp_cancel_var): New global variable.
6856         (parse_int): New function.
6857         (handle_omp_display_env): New function.
6858         (initialize_env): Use it.  Initialize default_device_var.
6859         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
6860         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
6861         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
6862         been successfully parsed (and call gomp_init_affinity in that case).
6863         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6864         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6865         omp_get_team_num, omp_is_initial_device): New functions.
6866         * libgomp.h: Include stdlib.h.
6867         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
6868         Define.
6869         (struct target_mem_desc): Forward declare.
6870         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
6871         and thread_limit_var fields.
6872         (gomp_get_num_devices): New prototype.
6873         (gomp_cancel_var): New extern decl.
6874         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
6875         team_cancelled and task_queued_count fields.  Add comments about
6876         task_{,queued_,running_}count.
6877         (gomp_cancel_kind): New enum.
6878         (gomp_work_share_end_cancel): New prototype.
6879         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
6880         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
6881         and depend fields.
6882         (struct gomp_taskgroup): New type.
6883         (struct gomp_task_depend_entry,
6884         struct gomp_dependers_vec): New types.
6885         (gomp_finish_task): Free depend_hash if non-NULL.
6886         (struct gomp_team_state): Add place_partition_off
6887         and place_partition_len fields.
6888         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
6889         gomp_places_list_len): New extern decls.
6890         (struct gomp_thread): Add place field.
6891         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
6892         (gomp_init_thread_affinity): Add place argument.
6893         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
6894         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
6895         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
6896         gomp_affinity_init_level, gomp_affinity_print_place): New
6897         prototypes.
6898         (gomp_team_start): Add flags argument.
6899         (gomp_thread_limit_var, gomp_remaining_threads_count,
6900         gomp_remaining_threads_lock): Remove.
6901         (gomp_managed_threads_lock): New variable.
6902         (struct gomp_thread_pool): Add threads_busy field.
6903         (gomp_free_thread): New prototype.
6904         * task.c: Include hashtab.h.
6905         (hash_entry_type): New typedef.
6906         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
6907         (gomp_init_task): Clear dependers, depend_hash, depend_count,
6908         copy_ctors_done and taskgroup fields.
6909         (GOMP_task): Add depend argument, handle depend clauses.  If
6910         gomp_team_barrier_cancelled or if it's taskgroup has been
6911         cancelled, don't queue or start new tasks.  Set copy_ctors_done
6912         field if needed.  Initialize taskgroup field.  If copy_ctors_done
6913         and already cancelled, don't discard the task.  If taskgroup is
6914         non-NULL, enqueue the task into taskgroup queue.  Increment
6915         num_children field in taskgroup.  Increment task_queued_count.
6916         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
6917         gomp_task_run_post_remove_taskgroup): New inline functions.
6918         (gomp_task_run_post_handle_depend_hash,
6919         gomp_task_run_post_handle_dependers,
6920         gomp_task_run_post_handle_depend): New functions.
6921         (GOMP_taskwait): Use them.  If more than one new tasks
6922         have been queued, wake other threads if needed.
6923         (gomp_barrier_handle_tasks): Likewise.  If
6924         gomp_team_barrier_cancelled, don't start any new tasks, just free
6925         all tasks.
6926         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
6927         * omp_lib.f90.in
6928         (omp_proc_bind_kind, omp_proc_bind_false,
6929         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
6930         omp_proc_bind_spread): New params.
6931         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6932         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6933         omp_get_team_num, omp_is_initial_device): New interfaces.
6934         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
6935         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
6936         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
6937         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
6938         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
6939         useless use omp_lib_kinds.
6940         * omp.h.in (omp_proc_bind_t): New typedef.
6941         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
6942         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
6943         omp_get_team_num, omp_is_initial_device): New prototypes.
6944         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
6945         through to gomp_team_start.
6946         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
6947         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
6948         Adjust gomp_parallel_loop_start callers.
6949         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
6950         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
6951         GOMP_loop_end_cancel): New functions.
6952         (GOMP_parallel_end): Add ialias_redirect.
6953         * hashtab.h: New file.
6954         * libgomp.texi (Environment Variables): Minor cleanup,
6955         update section refs to OpenMP 4.0rc2.
6956         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
6957         environment variables.
6958         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
6959         team->work_shares_to_free to thr->ts.work_share before calling
6960         free_work_share.
6961         (gomp_work_share_end_cancel): New function.
6962         * config/linux/proc.c: Include errno.h.
6963         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
6964         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
6965         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
6966         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
6967         gomp_cpuset_size is sizeof (cpu_set_t).
6968         (gomp_init_num_threads): Initialize gomp_cpuset_size,
6969         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
6970         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
6971         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
6972         contain any logical CPUs.
6973         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
6974         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
6975         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
6976         pthread_getaffinity_np.  Check gomp_places_list instead of
6977         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
6978         * config/linux/bar.c (gomp_barrier_wait_end,
6979         gomp_barrier_wait_last): Use BAR_* defines.
6980         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
6981         from state where needed.  Set work_share_cancelled to 0 on last
6982         thread.
6983         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
6984         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
6985         functions.
6986         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
6987         Add cpusetsize argument.
6988         (gomp_cpuset_size, gomp_cpusetp): Declare.
6989         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
6990         (affinity_counter): Remove.
6991         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
6992         if CPU_ALLOC_SIZE isn't defined.
6993         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
6994         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
6995         bind current thread to the first place.
6996         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
6997         pthread_setaffinity_np to gomp_places_list[place].
6998         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
6999         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
7000         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
7001         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
7002         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
7003         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
7004         (gomp_barrier_t): Add awaited_final field.
7005         (gomp_barrier_init): Initialize awaited_final field.
7006         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
7007         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
7008         prototypes.
7009         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
7010         defines.
7011         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
7012         gomp_team_barrier_cancelled): New inline functions.
7013         (gomp_barrier_last_thread,
7014         gomp_team_barrier_set_task_pending,
7015         gomp_team_barrier_clear_task_pending,
7016         gomp_team_barrier_set_waiting_for_tasks,
7017         gomp_team_barrier_waiting_for_tasks,
7018         gomp_team_barrier_done): Use BAR_* defines.
7019         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
7020         (gomp_barrier_wait_end): Use BAR_* defines.
7021         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
7022         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
7023         Use BAR_* defines.
7024         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
7025         gomp_team_barrier_cancel): New functions.
7026         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
7027         argument.
7028         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
7029         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
7030         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
7031         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
7032         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
7033         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
7034         (gomp_barrier_t): Add cancellable field.
7035         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
7036         gomp_team_barrier_cancel): New prototypes.
7037         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
7038         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
7039         gomp_team_barrier_cancelled): New inline functions.
7040         (gomp_barrier_wait_start, gomp_barrier_last_thread,
7041         gomp_team_barrier_set_task_pending,
7042         gomp_team_barrier_clear_task_pending,
7043         gomp_team_barrier_set_waiting_for_tasks,
7044         gomp_team_barrier_waiting_for_tasks,
7045         gomp_team_barrier_done): Use BAR_* defines.
7046         * barrier.c (GOMP_barrier_cancel): New function.
7047         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
7048         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
7049         omp_proc_bind_spread): New params.
7050         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
7051         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
7052         omp_get_team_num, omp_is_initial_device): New externals.
7053         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
7054         New functions.
7055         (gomp_resolve_num_threads): Adjust for thread_limit now being in
7056         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
7057         infinity.  If not nested, just return minimum of max_num_threads
7058         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
7059         to the returned value.  Otherwise, don't update atomically
7060         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
7061         (GOMP_parallel_end): Adjust for thread_limit now being in
7062         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
7063         infinity.  Adjust threads_busy in the pool rather than
7064         gomp_remaining_threads_count.  Remember team->nthreads and call
7065         gomp_team_end before adjusting threads_busy, if not nested
7066         afterwards, just set it to 1 non-atomically.  Add ialias.
7067         (GOMP_parallel_start): Adjust gomp_team_start caller.
7068         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
7069         * testsuite/libgomp.c/affinity-1.c: New test.
7070         * testsuite/libgomp.c/atomic-15.c: New test.
7071         * testsuite/libgomp.c/atomic-16.c: New test.
7072         * testsuite/libgomp.c/atomic-17.c: New test.
7073         * testsuite/libgomp.c/cancel-for-1.c: New test.
7074         * testsuite/libgomp.c/cancel-for-2.c: New test.
7075         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
7076         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
7077         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
7078         * testsuite/libgomp.c/cancel-sections-1.c: New test.
7079         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
7080         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
7081         * testsuite/libgomp.c/depend-1.c: New test.
7082         * testsuite/libgomp.c/depend-2.c: New test.
7083         * testsuite/libgomp.c/depend-3.c: New test.
7084         * testsuite/libgomp.c/depend-4.c: New test.
7085         * testsuite/libgomp.c/for-1.c: New test.
7086         * testsuite/libgomp.c/for-1.h: New file.
7087         * testsuite/libgomp.c/for-2.c: New test.
7088         * testsuite/libgomp.c/for-2.h: New file.
7089         * testsuite/libgomp.c/for-3.c: New test.
7090         * testsuite/libgomp.c/pr58392.c: New test.
7091         * testsuite/libgomp.c/simd-1.c: New test.
7092         * testsuite/libgomp.c/simd-2.c: New test.
7093         * testsuite/libgomp.c/simd-3.c: New test.
7094         * testsuite/libgomp.c/simd-4.c: New test.
7095         * testsuite/libgomp.c/simd-5.c: New test.
7096         * testsuite/libgomp.c/simd-6.c: New test.
7097         * testsuite/libgomp.c/target-1.c: New test.
7098         * testsuite/libgomp.c/target-2.c: New test.
7099         * testsuite/libgomp.c/target-3.c: New test.
7100         * testsuite/libgomp.c/target-4.c: New test.
7101         * testsuite/libgomp.c/target-5.c: New test.
7102         * testsuite/libgomp.c/target-6.c: New test.
7103         * testsuite/libgomp.c/target-7.c: New test.
7104         * testsuite/libgomp.c/taskgroup-1.c: New test.
7105         * testsuite/libgomp.c/thread-limit-1.c: New test.
7106         * testsuite/libgomp.c/thread-limit-2.c: New test.
7107         * testsuite/libgomp.c/thread-limit-3.c: New test.
7108         * testsuite/libgomp.c/udr-1.c: New test.
7109         * testsuite/libgomp.c/udr-2.c: New test.
7110         * testsuite/libgomp.c/udr-3.c: New test.
7111         * testsuite/libgomp.c++/affinity-1.C: New test.
7112         * testsuite/libgomp.c++/atomic-10.C: New test.
7113         * testsuite/libgomp.c++/atomic-11.C: New test.
7114         * testsuite/libgomp.c++/atomic-12.C: New test.
7115         * testsuite/libgomp.c++/atomic-13.C: New test.
7116         * testsuite/libgomp.c++/atomic-14.C: New test.
7117         * testsuite/libgomp.c++/atomic-15.C: New test.
7118         * testsuite/libgomp.c++/cancel-for-1.C: New test.
7119         * testsuite/libgomp.c++/cancel-for-2.C: New test.
7120         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
7121         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
7122         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
7123         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
7124         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
7125         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
7126         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
7127         * testsuite/libgomp.c++/cancel-test.h: New file.
7128         * testsuite/libgomp.c++/for-9.C: New test.
7129         * testsuite/libgomp.c++/for-10.C: New test.
7130         * testsuite/libgomp.c++/for-11.C: New test.
7131         * testsuite/libgomp.c++/simd-1.C: New test.
7132         * testsuite/libgomp.c++/simd-2.C: New test.
7133         * testsuite/libgomp.c++/simd-3.C: New test.
7134         * testsuite/libgomp.c++/simd-4.C: New test.
7135         * testsuite/libgomp.c++/simd-5.C: New test.
7136         * testsuite/libgomp.c++/simd-6.C: New test.
7137         * testsuite/libgomp.c++/simd-7.C: New test.
7138         * testsuite/libgomp.c++/simd-8.C: New test.
7139         * testsuite/libgomp.c++/target-1.C: New test.
7140         * testsuite/libgomp.c++/target-2.C: New test.
7141         * testsuite/libgomp.c++/target-2-aux.cc: New file.
7142         * testsuite/libgomp.c++/target-3.C: New test.
7143         * testsuite/libgomp.c++/taskgroup-1.C: New test.
7144         * testsuite/libgomp.c++/udr-1.C: New test.
7145         * testsuite/libgomp.c++/udr-2.C: New test.
7146         * testsuite/libgomp.c++/udr-3.C: New test.
7147         * testsuite/libgomp.c++/udr-4.C: New test.
7148         * testsuite/libgomp.c++/udr-5.C: New test.
7149         * testsuite/libgomp.c++/udr-6.C: New test.
7150         * testsuite/libgomp.c++/udr-7.C: New test.
7151         * testsuite/libgomp.c++/udr-8.C: New test.
7152         * testsuite/libgomp.c++/udr-9.C: New test.
7154 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
7156         PR testsuite/57605
7157         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
7158         ALWAYS_CFLAGS.
7160 2013-09-20  Alan Modra  <amodra@gmail.com>
7162         * configure: Regenerate.
7164 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
7166         * testsuite/libgomp.c/sections-2.c: New test.
7168 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7170         * testsuite/libgomp.fortran/strassen.f90:
7171         Add dg-skip-if aarch64_tiny.
7173 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
7174             Cesar Philippidis  <cesar@codesourcery.com>
7176         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
7177         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
7178         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
7179         * testsuite/libgomp.fortran/fortran.exp: Likewise.
7180         * testsuite/libgomp.graphite/graphite.exp: Likewise.
7181         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
7182         Use dg-runtest rather than gfortran-dg-runtest.
7184 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
7186         * testsuite/libgomp.c/icv-2.c: Extend current handling of
7187         Linux-based x86 systems to cover all GNU systems.
7188         * testsuite/libgomp.c/lock-3.c: Likewise.
7189         * testsuite/libgomp.c/pr48591.c: Likewise.
7191 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
7193         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
7194         GNU/Hurd, as done for Linux-based systems.
7196         * config/posix/ptrlock.h: Fix comment.
7198 2013-05-27  Tobias Burnus  <burnus@net-b.de>
7200         PR fortran/57423
7201         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
7202         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
7203         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
7204         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
7205         omp_destroy_nest_lock): Correct arguments to match the one in
7206         the OpenMP spec.
7207         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
7208         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
7209         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
7210         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
7212 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
7214         * testsuite/libgomp.c/loop-13.c: New test.
7215         * testsuite/libgomp.c/loop-14.c: New test.
7216         * testsuite/libgomp.c/loop-15.c: New test.
7217         * testsuite/libgomp.c++/loop-13.C: New test.
7218         * testsuite/libgomp.c++/loop-14.C: New test.
7219         * testsuite/libgomp.c++/loop-15.C: New test.
7221 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
7223         PR middle-end/56217
7224         * testsuite/libgomp.c++/pr56217.C: New test.
7226 2013-02-01  Alan Modra  <amodra@gmail.com>
7228         * task.c (GOMP_task, GOMP_taskwait): Comment.
7230 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
7231             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
7233         PR libgomp/55561
7234         * config/linux/wait.h (do_spin): Use atomic load for addr.
7235         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
7236         for intptr and ptrlock.
7237         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
7238         for ptrlock.
7240 2013-01-22  Alan Modra  <amodra@gmail.com>
7242         PR libgomp/51376
7243         PR libgomp/56073
7244         * task.c (GOMP_task): Revert 2011-12-09 change.
7245         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
7246         barrier to read task->children..
7247         (gomp_barrier_handle_tasks): ..and matching atomic store with
7248         release barrier here when setting parent->children to NULL.
7250 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
7251             Tobias Burnus  <burnus@net-b.de>
7253         PR driver/55884
7254         * testsuite/libgomp.fortran/fortran.exp: Use
7255         -fintrinsic-modules-path= instead of
7256         -fintrinsic-modules-path.
7258 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
7260         Update copyright years.
7262 2012-12-19  Tobias Burnus  <burnus@net-b.de>
7264         * testsuite/libgomp.fortran/fortran.exp: Set
7265         -fintrinsic-modules-path.
7267 2012-12-19  Tobias Burnus  <burnus@net-b.de>
7269         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
7270         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
7272 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
7274         PR libgomp/55411
7275         * team.c (gomp_free_thread): Decrease gomp_managed_threads
7276         if pool had any threads_used.
7278 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
7280         * testsuite/libgomp.c++/pr24455.C: Use
7281         -Wl,-undefined,dynamic_lookup on darwin.
7283 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
7285         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
7287 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
7289         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
7291 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
7292             Jim MacArthur  <jim.macarthur@arm.com>
7293             Marcus Shawcroft  <marcus.shawcroft@arm.com>
7294             Nigel Stephens  <nigel.stephens@arm.com>
7295             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7296             Richard Earnshaw  <rearnsha@arm.com>
7297             Sofiane Naci  <sofiane.naci@arm.com>
7298             Stephen Thomas  <stephen.thomas@arm.com>
7299             Tejas Belagod  <tejas.belagod@arm.com>
7300             Yufeng Zhang  <yufeng.zhang@arm.com>
7302         * configure.tgt: Add AArch64.
7304 2012-10-04  Jason Merrill  <jason@redhat.com>
7306         * testsuite/libgomp.c++/tls-init1.C: New.
7308 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
7310         * configure: Regenerated.
7312 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
7314         * config/linux/mips/futex.h (sys_futex0): Change to static
7315         function with noinline, nomips16 attributes under MIPS16. Adjust
7316         asm statement to place 'li v0,SYS_futex' immediately before
7317         syscall insn.
7319 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
7321         * libgomp.texi (Library Index): Renamed from "Index" to prevent
7322         conflict with index.html on case-insensitive file systems.
7324 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
7326         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
7327         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
7329 2012-07-02  Richard Guenther  <rguenther@suse.de>
7330             Michael Matz  <matz@suse.de>
7331             Tobias Grosser <tobias@grosser.es>
7332             Sebastian Pop <sebpop@gmail.com>
7334         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
7335         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
7336         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
7337         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
7339 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
7341         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
7343 2012-06-22  Richard Guenther  <rguenther@suse.de>
7345         Merge from graphite branch
7346         2012-01-13  Tobias Grosser  <tobias@grosser.es>
7348         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7349         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
7351 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
7353         PR middle-end/53580
7354         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
7355         use GOMP_barrier () call instead.
7356         * testsuite/libgomp.c/pr26943-3.c: Likewise.
7357         * testsuite/libgomp.c/pr26943-4.c: Likewise.
7358         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
7359         call GOMP_barrier instead.
7360         * testsuite/libgomp.fortran/vla5.f90: Likewise.
7362 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
7364         PR libgomp/52993
7365         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
7366         argument to memset call.
7368 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
7370         * configure: Regenerated.
7372 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7374         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
7376 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7378         PR bootstrap/52812
7379         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
7381 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
7383         PR middle-end/52547
7384         * testsuite/libgomp.c/pr52547.c: New test.
7386 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7388         * testsuite/lib/libgomp.exp: load fortran-modules.exp
7390 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7392         * configure.tgt (mips-sgi-irix6*): Remove.
7394 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7396         * configure.tgt (alpha*-dec-osf*): Remove.
7398         * config/osf/sem.h: Remove.
7399         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
7401 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7403         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
7405 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7407         PR libstdc++/52188
7408         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
7409         Remove ENABLE_SYMVERS_SOL2.
7410         * configure: Regenerate.
7411         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
7412         (PREPROCESS): New variable.
7413         (libgomp.ver): New target.
7414         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
7415         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
7416         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
7417         Use libgomp.ver.
7418         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
7419         * Makefile.in: Regenerate.
7421 2012-02-14  Walter Lee  <walt@tilera.com>
7423         * configure.tgt: Handle tilegx and tilepro.
7424         * config/linux/tile/futex.h: New file.
7426 2012-02-08  Richard Guenther  <rguenther@suse.de>
7428         PR tree-optimization/46886
7429         * testsuite/libgomp.c/pr46886.c: New testcase.
7431 2012-01-25  Matthias Klose  <doko@ubuntu.com>
7433         * config/linux/arm: Remove empty directory.
7434         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
7436 2011-12-09  Alan Modra  <amodra@gmail.com>
7438         PR libgomp/51376
7439         * task.c (GOMP_taskwait): Don't access task->children outside of
7440         task_lock mutex region.
7441         (GOMP_task): Likewise.
7443 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
7445         PR libgomp/51132
7446         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
7447         to file scope.
7448         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
7449         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
7450         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
7451         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
7452         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
7454 2011-12-02  Alan Modra  <amodra@gmail.com>
7456         * config/linux/affinity.c: Use atomic rather than sync builtin.
7457         * config/linux/lock.c: Likewise.
7458         * config/linux/ptrlock.h: Likewise.
7459         * config/linux/ptrlock.c: Likewise.
7460         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
7461         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
7462         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
7463         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
7464         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
7465         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
7466         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
7467         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
7468         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
7469         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
7471 2011-11-30  Alan Modra  <amodra@gmail.com>
7473         PR libgomp/51298
7474         * config/linux/bar.h: Use atomic rather than sync builtins.
7475         * config/linux/bar.c: Likewise.  Add missing acquire
7476         synchronisation on generation field.
7477         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
7478         double unlock.
7480 2011-11-30  Alan Modra  <amodra@gmail.com>
7482         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
7483         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
7484         * config/linux/mutex.h: Use atomic rather than sync builtins.
7485         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
7486         * config/linux/omp-lock.h: Comment fix.
7487         * config/linux/arm/mutex.h: Delete.
7488         * config/linux/powerpc/mutex.h: Delete.
7489         * config/linux/ia64/mutex.h: Delete.
7490         * config/linux/mips/mutex.h: Delete.
7492 2011-11-30  Alan Modra  <amodra@gmail.com>
7494         PR libgomp/51249
7495         * config/linux/sem.h: Rewrite.
7496         * config/linux/sem.c: Rewrite.
7498 2011-11-28  Richard Henderson  <rth@redhat.com>
7500         * libgomp.h (enum memmodel): New.
7502 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
7504         * configure: Regenerate.
7506 2011-10-10  Matthias Klose  <doko@ubuntu.com>
7508         * config/posix95: Remove empty directory.
7510 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
7512         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
7514 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
7516         PR fortran/49792
7517         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
7518         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
7520 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7522         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
7524 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7526         PR libgomp/49965
7527         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
7529 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
7531         * config/linux/proc.h: New.
7532         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
7533         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
7534         (gomp_init_num_threads): Update call to cpuset_popcount.
7535         (get_num_procs): Ditto.
7536         * config/linux/affinity.c (gomp_init_affinity): Call
7537         gomp_cpuset_popcount.
7539 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
7541         PR fortran/42041
7542         PR fortran/46752
7543         * omp.h.in (omp_in_final): New prototype.
7544         * omp_lib.f90.in (omp_in_final): New interface.
7545         (omp_integer_kind, omp_logical_kind): Remove
7546         and replace all its uses in the module with 4.
7547         (openmp_version): Change to 201107.
7548         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
7549         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
7550         kind for the parameters.
7551         (omp_in_final): New external.
7552         (openmp_version): Change to 201107.
7553         * task.c (omp_in_final): New function.
7554         (gomp_init_task): Initialize final_task.
7555         (GOMP_task): Remove unused attribute from flags.  Handle final
7556         tasks.
7557         (GOMP_taskyield): New function.
7558         (omp_in_final): Return true if if (false) or final (true) task
7559         or descendant of final (true).
7560         * fortran.c (omp_in_final_): New function.
7561         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
7562         (GOMP_3.0): Export GOMP_taskyield.
7563         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
7564         variables.
7565         (parse_unsigned_long_list): New function.
7566         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
7567         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
7568         even if parse_affinity returned false.
7569         * config/linux/affinity.c (gomp_init_affinity): Handle
7570         gomp_cpu_affinity_len == 0.
7571         * libgomp_g.h (GOMP_taskyield): New prototype.
7572         * libgomp.h (struct gomp_task): Add final_task field.
7573         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
7574         * team.c (gomp_team_start): Override new task's nthreads_var icv
7575         if list form OMP_NUM_THREADS has been used and it has value for
7576         the new nesting level.
7578         * testsuite/libgomp.c/atomic-11.c: New test.
7579         * testsuite/libgomp.c/atomic-12.c: New test.
7580         * testsuite/libgomp.c/atomic-13.c: New test.
7581         * testsuite/libgomp.c/atomic-14.c: New test.
7582         * testsuite/libgomp.c/reduction-6.c: New test.
7583         * testsuite/libgomp.c/task-5.c: New test.
7584         * testsuite/libgomp.c++/atomic-2.C: New test.
7585         * testsuite/libgomp.c++/atomic-3.C: New test.
7586         * testsuite/libgomp.c++/atomic-4.C: New test.
7587         * testsuite/libgomp.c++/atomic-5.C: New test.
7588         * testsuite/libgomp.c++/atomic-6.C: New test.
7589         * testsuite/libgomp.c++/atomic-7.C: New test.
7590         * testsuite/libgomp.c++/atomic-8.C: New test.
7591         * testsuite/libgomp.c++/atomic-9.C: New test.
7592         * testsuite/libgomp.c++/task-8.C: New test.
7593         * testsuite/libgomp.c++/reduction-4.C: New test.
7594         * testsuite/libgomp.fortran/allocatable7.f90: New test.
7595         * testsuite/libgomp.fortran/allocatable8.f90: New test.
7596         * testsuite/libgomp.fortran/crayptr3.f90: New test.
7597         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
7598         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
7599         * testsuite/libgomp.fortran/pointer1.f90: New test.
7600         * testsuite/libgomp.fortran/pointer2.f90: New test.
7601         * testsuite/libgomp.fortran/task4.f90: New test.
7603 2011-08-02  Tobias Burnus  <burnus@net-b.de>
7605         * libgomp.texi: Update OpenMP spec references to 3.1.
7606         (omp_in_final,OMP_PROC_BIND): New sections.
7607         (OMP_NUM_THREADS): Document that the value can be now a list.
7608         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
7610 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
7612         * config/linux/x86/futex.h: Check __x86_64__ instead of
7613         __LP64__.
7615 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
7617         PR middle-end/49897
7618         PR middle-end/49898
7619         * testsuite/libgomp.c/pr49897-1.c: New test.
7620         * testsuite/libgomp.c/pr49897-2.c: New test.
7621         * testsuite/libgomp.c/pr49898-1.c: New test.
7622         * testsuite/libgomp.c/pr49898-2.c: New test.
7624 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
7626         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
7627         for ia32 instead of ilp32.
7629         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
7630         * testsuite/libgomp.c/atomic-6.c: Likewise.
7632 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
7634         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
7635         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
7637 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7639         PR libgomp/45351
7640         * config/osf/sem.h: New file.
7641         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
7643 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7645         PR target/49541
7646         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
7647         ldflags.
7649 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
7651         * config/linux/wait.h (do_spin): New inline, largely copied
7652         from do_wait, just don't do futex_wait here, instead return true if
7653         it should be done.
7654         (do_wait): Implement using do_spin.
7655         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
7656         to prototype.
7657         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
7658         __sync_bool_compare_and_swap, pass the oldval to
7659         gomp_mutex_lock_slow.
7660         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
7661         If all mutex contenders are just spinning and not sleeping, don't
7662         change state to 2 unnecessarily.  Optimize the loop when state has
7663         already become 2 to use just one atomic operation per loop instead
7664         of two.
7665         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
7666         to prototype.
7667         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
7668         __sync_bool_compare_and_swap, pass the oldval to
7669         gomp_mutex_lock_slow.
7671 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
7673         PR libgomp/49490
7674         * iter.c (gomp_iter_static_next): For chunk size 0
7675         only use n ceil/ nthreads size for the first
7676         n % nthreads threads in the team instead of
7677         all threads except for the last few ones which
7678         get less work or none at all.
7679         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
7680         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
7681         chunk argument, set run_sched_modifier to 0 for static
7682         resp. 1 for other kinds.  If chunk argument is 0
7683         and not static, set value to 1.
7685 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
7687         PR c++/49043
7688         * testsuite/libgomp.c++/pr49043.C: New test.
7690         PR c++/48869
7691         * testsuite/libgomp.c++/pr48869.C: New test.
7693 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
7695         PR fortran/48894
7696         * fortran.c: Include limits.h.
7697         (TO_INT): Define.
7698         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
7699         *set.
7700         (omp_set_num_threads_8_, omp_set_schedule_8_,
7701         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
7702         omp_get_team_size_8_): Use TO_INT macro.
7703         * testsuite/libgomp.fortran/pr48894.f90: New test.
7705 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
7707         PR middle-end/48591
7708         * testsuite/libgomp.c/pr48591.c: New test.
7710 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7712         PR bootstrap/48135
7713         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
7714         * configure: Regenerate.
7716 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
7718         PR fortran/47886
7719         * testsuite/libgomp.fortran/task3.f90: New test.
7721 2011-02-24  Tobias Burnus  <burnus@net-b.de>
7723         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
7725 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
7727         PR libgomp/47854
7728         * libgomp.texi (omp_get_wtime): Don't say time in the past
7729         must be Unix Epoch.
7731 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
7733         PR libgomp/47804
7734         * testsuite/libgomp.fortran/fortran.exp: Check for both
7735         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
7736         but $blddir != "", still append ${blddir}/${lang_library_path}
7737         to ld_library_path.
7739 2011-02-16  Tobias Burnus  <burnus@net-b.de>
7741         PR libgomp/47758
7742         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
7743         of libquadmath.a before adding its libpath to ldflags.
7745 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
7747         PR libgomp/47731
7748         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
7749         to FUTEX_WAIT futex syscall.
7750         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
7752 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7754         * configure: Regenerate.
7756 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
7758         PR libstdc++/36104
7759         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
7761 2011-01-16  Gerald Pfeifer
7763         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
7765 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
7767         PR fortran/46874
7768         * libgomp.fortran/allocatable6.f90: New test.
7770 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7772         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
7773         * configure: Regenerate.
7775 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
7777         PR target/40125
7778         PR lto/46695
7779         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
7780         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
7781         * aclocal.m4: Regenerate.
7782         * configure: Regenerate.
7783         * Makefile.in: Regenerate.
7784         * testsuite/Makefile.in: Regenerate.
7786 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
7788         PR fortran/46753
7789         * libgomp.fortran/pr46753.f90: New test.
7791         PR libgomp/43706
7792         * env.c (initialize_env): Default to spin count 300000
7793         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
7794         is specified.
7796         PR libgomp/45240
7797         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
7798         at the end if sync builtins aren't supported.
7800 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7802         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
7804 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7806         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
7808 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
7810         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
7812 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7813             Tobias Burnus  <burnus@net-b.de>
7815         PR fortran/32049
7816         * configure.ac:
7817         * configure: Regenerate.
7819 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7821         * config/linux/futex.h: New.
7822         * config/linux/arm/mutex.h: New.
7823         * configure.tgt (arm*-*-linux*): Add config path.
7825 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7827         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7829 2010-09-23  Tobias Burnus  <burnus@net-b.de>
7831         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
7832         Change Fortran datatype to LOGICAL.
7833         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
7834         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
7836 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7838         * configure: Regenerate.
7840 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
7842         * libgomp.texi: Add function keyword to a couple of Fortran
7843         interfaces, use integer instead of int for Fortran.
7845 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
7847         * libgomp.texi: Fix spelling and pasto problems throughout.
7848         Adjust prototypes to match code.
7850 2010-07-24  Tobias Burnus  <burnus@net-b.de>
7852         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
7853         silence -fwhole-file warning.
7855 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7857         * configure.tgt (*-*-solaris2.[56]*): Removed.
7859 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7861         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
7862         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
7863         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
7864         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
7865         targetting solaris2*.
7866         * configure: Regenerate.
7867         * config.h.in: Regenerate.
7869         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
7870         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
7871         Add libgomp_version_dep.
7872         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
7873         versioning.
7874         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
7875         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
7876         * Makefile.in: Regenerate.
7878         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
7879         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
7880         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
7881         to common block, protected by
7882         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
7884 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
7886         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
7888 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
7890         PR bootstrap/43170
7891         * configure: Regenerate.
7893 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7895         PR other/43620
7896         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
7897         * configure: Regenerate.
7898         * Makefile.in: Regenerate.
7899         * testsuite/Makefile.in: Regenerate.
7901 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
7903         PR c/43893
7904         * testsuite/libgomp.c/pr43893.c: New test.
7905         * testsuite/libgomp.c++/pr43893.C: New test.
7907 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7909         PR middle-end/43570
7910         * testsuite/libgomp.fortran/vla8.f90: New test.
7912 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7914         PR libgomp/43706
7915         * config/linux/affinity.c (gomp_init_affinity): Decrease
7916         gomp_available_cpus if affinity mask confines the process to fewer
7917         CPUs.
7918         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
7919         non-NULL, just return gomp_available_cpus.
7921         PR libgomp/43569
7922         * sections.c (gomp_sections_init): Initialize ws->mode.
7924 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7926         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
7927         not unused bar variable.
7928         * configure: Regenerate.
7930 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7932         * Makefile.in: Regenerate.
7933         * aclocal.m4: Regenerate.
7934         * testsuite/Makefile.in: Regenerate.
7936 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7938         PR libgomp/42942
7939         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
7940         (initialize_env): Adjust callers.
7941         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
7942         when the argument is 0.
7944         * testsuite/libgomp.c/pr42942.c: New test.
7946 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7948         PR middle-end/42644
7949         PR middle-end/42130
7950         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
7951         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
7953 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7955         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
7956         * testsuite/libgomp.c++/task-6.C: Likewise.
7958 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
7960         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
7962 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
7964         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
7965         * configure: Regenerate.
7967 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7969         PR fortran/42866
7970         * testsuite/libgomp.fortran/allocatable5.f90: New test.
7972 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
7974         * configure.ac: Test for executability of GFORTRAN.
7975         * configure: Regenerate.
7977 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7979         * configure: Regenerate.
7981 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7983         PR libgomp/42602
7984         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
7986 2010-01-03  Richard Guenther  <rguenther@suse.de>
7988         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
7990 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
7992         * testsuite/libgomp.graphite/pr4118.c: New.
7994 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7996         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
7997         for darwin, protect the test with require-effective-target tls_runtime.
7998         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
8000 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
8002         PR target/41605
8003         * testsuite/lib/libgomp.exp: Provide -B options to allow for
8004         link spec %s substitutions for static libraries.
8006 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
8008         PR testsuite/42135
8009         * libgomp.graphite/force-parallel-2.c: Reduce array size.
8011 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8013         * Makefile.in: Regenerate.
8014         * configure: Regenerate.
8015         * testsuite/Makefile.in: Regenerate.
8017 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
8019         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
8020         settings for LC_ALL and LANG.
8022 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
8024         PR fortran/42162
8025         * testsuite/libgomp.fortran/pr42162.f90: New test.
8027 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
8029         PR middle-end/42029
8030         * testsuite/libgomp.c/pr42029.c: New test.
8032 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
8034         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
8035         *s.  Accept ld version without text in ()s.
8036         * configure: Regenerated.
8038 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
8040         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
8042 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8044         PR libgomp/41418
8045         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
8046         or a hyphen (happens with fortran language disabled).
8047         * configure: Regenerate.
8049 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8051         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
8052         use sed script portable to Solaris /bin/sed for extracting ld
8053         version.
8054         * configure: Regenerate.
8056 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
8058         * testsuite/libgomp.graphite/bounds.c: New test.
8060 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8062         * Makefile.am (libgomp_la_LINK): New.
8063         * Makefile.in: Regenerate.
8065 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8067         * configure.ac (AC_PREREQ): Bump to 2.64.
8069 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8071         * Makefile.am (install-html, install-pdf): Remove.
8072         * Makefile.in: Regenerate.
8074         * Makefile.in: Regenerate.
8075         * aclocal.m4: Regenerate.
8076         * config.h.in: Regenerate.
8077         * configure: Regenerate.
8078         * testsuite/Makefile.in: Regenerate.
8080 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8082         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
8083         * Makefile.in: Regenerate.
8085 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
8087         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
8088         * Makefile.in: Regenerate.
8090 2009-08-19  Tobias Burnus  <burnus@net-b.de>
8092         PR fortran/41102
8093         omp_lib.h.in: Fix -std=f95 errors.
8095 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
8097         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
8098         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
8099         * testsuite/libgomp.graphite/graphite.exp: New.
8101 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
8103         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
8104         only build.
8106 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
8108         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
8109         needed memory barrier semantics.
8110         * config/linux/mips/mutex.h: New file.
8112 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8114         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
8116 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
8118         * configure: Regenerate.
8120 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
8122         PR testsuite/40699
8123         PR testsuite/40707
8124         PR testsuite/40709
8125         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
8126         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
8127         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
8129 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
8131         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
8132         options when choosing a multilib.
8134 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
8136         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
8137         ld_library_path.  Use add_path.  Add just find_libgcc_s to
8138         ld_library_path, not every libgcc multilib directory.
8139         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
8140         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
8141         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
8142         Use add_path.
8143         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
8145 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
8147         * Makefile.am (LTLDFLAGS): Define.
8148         (LINK): Define.
8149         * Makefile.in: Regenerate.
8151 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
8153         PR fortran/39718
8154         * testsuite/libgomp.fortran/fortran.exp: Don't link with
8155         libgfortranbegin, check existence of libgfortran.a instead of
8156         libgfortranbegin.a.
8158 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
8160         PR libgomp/40174
8161         * team.c (gomp_thread_start): Destroy thr->release semaphore.
8162         (gomp_free_pool_helper): Likewise.
8164 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
8165             Jakub Jelinek  <jakub@redhat.com>
8167         PR fortran/35423
8168         * testsuite/libgomp.fortran/workshare2.f90: New test.
8170 2009-04-09  Nick Clifton  <nickc@redhat.com>
8172         * iter.c: Change copyright header to refer to version 3 of the
8173         GNU General Public License with version 3.1 of the GCC Runtime
8174         Library Exception and to point readers at the COPYING3 and
8175         COPYING3.RUNTIME files and the FSF's license web page.
8176         * alloc.c: Likewise.
8177         * barrier.c: Likewise.
8178         * config/bsd/proc.c: Likewise.
8179         * config/linux/affinity.c: Likewise.
8180         * config/linux/alpha/futex.h: Likewise.
8181         * config/linux/bar.c: Likewise.
8182         * config/linux/bar.h: Likewise.
8183         * config/linux/ia64/futex.h: Likewise.
8184         * config/linux/ia64/mutex.h: Likewise.
8185         * config/linux/lock.c: Likewise.
8186         * config/linux/mips/futex.h: Likewise.
8187         * config/linux/mutex.c: Likewise.
8188         * config/linux/mutex.h: Likewise.
8189         * config/linux/powerpc/futex.h: Likewise.
8190         * config/linux/proc.c: Likewise.
8191         * config/linux/ptrlock.c: Likewise.
8192         * config/linux/ptrlock.h: Likewise.
8193         * config/linux/s390/futex.h: Likewise.
8194         * config/linux/sem.c: Likewise.
8195         * config/linux/sem.h: Likewise.
8196         * config/linux/sparc/futex.h: Likewise.
8197         * config/linux/wait.h: Likewise.
8198         * config/linux/x86/futex.h: Likewise.
8199         * config/mingw32/proc.c: Likewise.
8200         * config/mingw32/time.c: Likewise.
8201         * config/posix/affinity.c: Likewise.
8202         * config/posix/bar.c: Likewise.
8203         * config/posix/bar.h: Likewise.
8204         * config/posix/lock.c: Likewise.
8205         * config/posix/mutex.h: Likewise.
8206         * config/posix/proc.c: Likewise.
8207         * config/posix/ptrlock.h: Likewise.
8208         * config/posix/sem.c: Likewise.
8209         * config/posix/sem.h: Likewise.
8210         * config/posix/time.c: Likewise.
8211         * config/posix95/lock.c: Likewise.
8212         * critical.c: Likewise.
8213         * env.c: Likewise.
8214         * error.c: Likewise.
8215         * fortran.c: Likewise.
8216         * iter_ull.c: Likewise.
8217         * libgomp.h: Likewise.
8218         * libgomp_f.h.in: Likewise.
8219         * libgomp_g.h: Likewise.
8220         * loop.c: Likewise.
8221         * loop_ull.c: Likewise.
8222         * omp.h.in: Likewise.
8223         * omp_lib.f90.in: Likewise.
8224         * omp_lib.h.in: Likewise.
8225         * ordered.c: Likewise.
8226         * parallel.c: Likewise.
8227         * sections.c: Likewise.
8228         * single.c: Likewise.
8229         * task.c: Likewise.
8230         * team.c: Likewise.
8231         * work.c: Likewise.
8233 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
8235         * testsuite/config/default.exp: Change copyright header to refer to
8236         version 3 of the GNU General Public License and to point readers
8237         at the COPYING3 file and the FSF's license web page.
8239 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
8241         PR middle-end/39573
8242         * libgomp.c++/pr39573.C: New test.
8244 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
8246         PR other/39591
8247         * testsuite/libgomp.c/pr39591-1.c: New test.
8248         * testsuite/libgomp.c/pr39591-2.c: New test.
8249         * testsuite/libgomp.c/pr39591-3.c: New test.
8251 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
8253         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
8254         * testsuite/libgomp.c/atomic-6.c: Ditto.
8256 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8258         PR c/39495
8259         * testsuite/libgomp.c/loop-12.c: New test.
8260         * testsuite/libgomp.c/loop-11.c: New test.
8261         * testsuite/libgomp.c++/loop-11.C: New test.
8262         * testsuite/libgomp.c++/loop-12.C: New test.
8263         * testsuite/libgomp.c++/for-8.C: New test.
8265 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8267         * configure: Regenerate.
8269 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8271         PR middle-end/39154
8272         * testsuite/libgomp.c/pr39154.c: New test.
8274 2009-01-30  Ian Lance Taylor  <iant@google.com>
8276         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
8277         libgomp_ld_is_gold.  Get gold version number.
8278         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
8279         * configure: Rebuild.
8281 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
8283         * testsuite/lib/libgomp.exp: Add -B option for targets that
8284         use libgfortran.a%s in their specs.
8286 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
8288         PR libgomp/38086
8289         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
8290         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
8291         HAVE_AS_SYMVER_DIRECTIVE is not defined.
8292         * configure: Regenerated.
8293         * config.h.in: Likewise.
8295 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
8297         PR c++/38650
8298         * testsuite/libgomp.c/pr38650.c: New test.
8299         * testsuite/libgomp.c++/pr38650.C: New test.
8301 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
8303         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
8305 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
8307         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
8309 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8311         * configure: Regenerate.
8313 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
8315         PR middle-end/36802
8316         * testsuite/libgomp.c/pr36802-1.c: New test.
8317         * testsuite/libgomp.c/pr36802-2.c: New test.
8318         * testsuite/libgomp.c/pr36802-3.c: New test.
8320 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
8322         PR libgomp/38270
8323         * config/linux/powerpc/mutex.h: New.
8325 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
8327         PR c++/38257
8328         * testsuite/libgomp.c++/for-7.C: New test.
8330         PR c++/38348
8331         * testsuite/libgomp.c++/for-6.C: New test.
8333 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
8335         PR testsuite/28870
8336         * testsuite/lib/libgomp.exp: Include new timeout library files.
8337         (libgomp_target_compile): Set timeout value from new proc.
8339 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
8341         PR libgomp/37938
8342         * config/linux/ia64/mutex.h: New.
8344 2008-11-04  Tobias Burnus  <burnus@net-b.de>
8346         PR libgomp/37935
8347         * libgomp.texi (Runtime library routines, environment variables):
8348         Update for OpenMP version 3.0.
8350 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
8351             Steve Ellcey  <sje@cup.hp.com>
8353         * configure: Regenerate for new libtool.
8354         * Makefile.in: Ditto.
8355         * testsuite/Makefile.in: Ditto.
8357 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
8358             Andreas Tobler  <a.tobler@schweiz.org>
8360         * config/bsd/proc.c: New file.
8361         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
8362         * configure.ac: Check for header <sys/sysctl.h>
8363         * configure: Regenerate.
8364         * config.h.in: Likewise.
8366 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
8368         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
8370 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8372         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
8373         * Makefile.in: Regenerated.
8374         * testsuite/Makefile.in: Regenerated.
8376 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
8378         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
8379         depend on blddir if blddir exists.
8380         (libgomp_target_compile): Likewise.
8381         * testsuite/libgomp.c++/c++.exp: Likewise.
8382         * testsuite/libgomp.fortran/fortran.exp: Likewise.
8384 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8386         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
8387         Do not list GPL as Invariant Section.
8389 2008-07-28  Ilie Garbacea  <ilie@mips.com>
8390             Chao-ying Fu  <fu@mips.com>
8392         * configure.tgt: Enable futex for MIPS.
8393         * config/linux/mips/futex.h: New file.
8395 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
8397         * team.c (gomp_team_end): Free team immediately if it has
8398         just one thread.
8400 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
8402         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
8403         * testsuite/libgomp.fortran/fortran.exp: Same.
8404         * testsuite/libgomp.c/c.exp: Same.
8405         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
8406         directory to library path first.
8408 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
8410         * env.c (parse_stacksize): Add cast to avoid warning.
8411         (parse_spincount): Likewise.
8413 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
8415         * testsuite/libgomp.c/loop-10.c: New test.
8416         * libgomp.c/loop-3.c (main): Add lastprivate clause.
8417         * libgomp.c++/loop-6.C (main): Likewise.
8419         PR debug/36617
8420         * testsuite/libgomp.c/debug-1.c: New test.
8422 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
8424         * testsuite/libgomp.c/nqueens-1.c: New test.
8426         PR c++/36523
8427         * testsuite/libgomp.c++/task-7.C: New function.
8429 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8431         * configure: Regenerate.
8433 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8435         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
8436         mutex when HAVE_SYNC_BUILTINS isn't defined.
8438 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8440         * libgomp.texi (omp_test_lock): Fix typo.
8442 2008-06-12  Tobias Burnus  <burnus@net-b.de>
8444         * omp_lib.f90.in: Add "implicit none".
8446 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
8448         PR middle-end/36506
8449         * testsuite/libgomp.c/reduction-5.c: New test.
8451 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
8453         * libgomp.h (struct gomp_task): Add in_tied_task field.
8454         * task.c (gomp_init_task): Initialize it.
8455         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
8456         unconditionally.  Don't call gomp_team_barrier_wake if
8457         current task is implicit or if(0) from implicit and number of
8458         running tasks is equal to nthreads - 1.
8460         PR libgomp/36471
8461         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
8462         omp_get_team_size_8): Fix pastos.
8464         PR libgomp/36469
8465         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
8466         * configure: Regenerated.
8467         * config.h.in: Regenerated.
8468         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
8469         defined.
8471 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
8473         PR bootstrap/36452
8474         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
8475         (GOMP_loop_ull_dynamic_start): Likewise.
8476         (GOMP_loop_ull_guided_start): Likewise.
8477         (GOMP_loop_ull_ordered_static_start): Likewise.
8478         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
8479         (GOMP_loop_ull_ordered_guided_start): Likewise.
8481 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8482             Richard Henderson  <rth@redhat.com>
8483             Ulrich Drepper  <drepper@redhat.com>
8484             Jakob Blomer  <jakob.blomer@ira.uka.de>
8486         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
8487         Substitute also OMP_*LOCK_25*.
8488         * configure: Regenerated.
8489         * config.h.in: Regenerated.
8490         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
8491         ptrlock.c and task.c.
8492         * Makefile.in: Regenerated.
8493         * testsuite/Makefile.in: Regenerated.
8494         * task.c: New file.
8495         * loop_ull.c: New file.
8496         * iter_ull.c: New file.
8497         * libgomp.h: Include ptrlock.h.
8498         (enum gomp_task_kind): New type.
8499         (struct gomp_team): Add task_lock, task_queue, task_count,
8500         task_running_count, single_count fields.  Add
8501         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
8502         Remove work_share_lock, generation_mask,
8503         oldest_live_gen, num_live_gen and init_work_shares fields, add
8504         work work_share_list_alloc, work_share_list_free and work_share_chunk
8505         fields.  Change work_shares from pointer to pointers into an array.
8506         Change ordered_release field into gomp_sem_t ** from flexible array
8507         member.  Add implicit_task and initial_work_shares fields.
8508         Move close to the end of the struct.
8509         (struct gomp_team_state): Add single_count, last_work_share,
8510         active_level and level fields, remove work_share_generation.
8511         (gomp_barrier_handle_tasks): New prototype.
8512         (gomp_finish_task): New inline function.
8513         (struct gomp_work_share): Move chunk_size, end, incr into
8514         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
8515         next_ll fields.  Reshuffle fields.  Add next_alloc,
8516         next_ws, next_free and inline_ordered_team_ids fields, change
8517         ordered_team_ids into pointer from flexible array member.
8518         Add mode field.  Put lock and next into a different cache line
8519         from most of the write-once fields.
8520         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
8521         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
8522         gomp_iter_ull_guided_next): New prototypes.
8523         (gomp_new_icv): New prototype.
8524         (struct gomp_thread): Add thread_pool and task fields.
8525         (struct gomp_thread_pool): New type.
8526         (gomp_new_team): New prototype.
8527         (gomp_team_start): Change type of last argument.
8528         (gomp_new_work_share): Removed.
8529         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
8530         (gomp_work_share_init_done): New static inline.
8531         (gomp_throttled_spin_count_var, gomp_available_cpus,
8532         gomp_managed_threads): New extern decls.
8533         (gomp_init_task): New prototype.
8534         (gomp_spin_count_var): New extern var decl.
8535         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
8536         or no alias support, or if not PIC.
8537         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
8538         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
8539         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
8540         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
8541         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
8542         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
8543         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
8544         gomp_test_nest_lock_25): New prototypes.
8545         (omp_lock_symver, strong_alias): Define.
8546         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
8547         decls.
8548         (gomp_end_task): New.
8549         (struct gomp_task_icv, gomp_global_icv): New.
8550         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
8551         (struct gomp_task): New.
8552         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
8553         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
8554         (gomp_icv): New.
8555         (gomp_schedule_type): Reorder enum to match
8556         omp_sched_t.
8557         * team.c (struct gomp_thread_start_data): Add thread_pool and task
8558         fields.
8559         (gomp_thread_start): Add gomp_team_barrier_wait call.
8560         For non-nested case remove clearing of docked thread thr fields.
8561         Use pool fields instead of global gomp_* variables.  Use
8562         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
8563         Create tasks for each member thread.
8564         (free_team): Only destroy team barrier, task_lock here and free it.
8565         (gomp_free_thread): Free last_team if non-NULL.
8566         (gomp_team_end): Call gomp_team_barrier_wait instead of
8567         gomp_barrier_wait.  For nested case call one extra
8568         gomp_barrier_wait.  Move here some destruction from free_team.
8569         Call free_team on pool->last_team if any, rather than freeing
8570         current team.  Destroy work_share_list_free_lock ifndef
8571         HAVE_SYNC_BUILTINS.
8572         (gomp_new_icv): New function.
8573         (gomp_threads, gomp_threads_size, gomp_threads_used,
8574         gomp_threads_dock): Removed.
8575         (gomp_thread_destructor): New variable.
8576         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
8577         functions.
8578         (gomp_team_start): Create new pool if current thread doesn't have
8579         one.  Use pool fields instead of global gomp_* variables.
8580         Initialize thread_pool field for new threads.  Clear single_count.
8581         Change last argument from ws to team, don't create
8582         new team, set ts.work_share to &team->work_shares[0] and clear
8583         ts.last_work_share.  Don't clear ts.work_share_generation.
8584         If number of threads changed, adjust atomically gomp_managed_threads.
8585         Use gomp_init_task instead of gomp_new_task,
8586         set thr->task to the corresponding implicit_task array entry.
8587         Create tasks for each member thread.  Initialize ts.level.
8588         (initialize_team): Call pthread_key_create on
8589         gomp_thread_destructor.
8590         (team_destructor): New function.
8591         (new_team): Removed.
8592         (gomp_new_team): New function.
8593         (free_team): Free gomp_work_share blocks chained through next_alloc,
8594         instead of freeing work_shares and destroying work_share_lock.
8595         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
8596         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
8597         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
8598         of gomp_barrier_wait.
8599         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
8600         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
8601         if gomp_work_share_start returned true.  Don't unlock ws->lock.
8602         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
8603         of gomp_barrier_wait.
8604         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
8605         gomp_work_share_init_done if gomp_work_share_start returned true.
8606         Don't unlock ws->lock.
8607         * work.c: Include stddef.h.
8608         (free_work_share): Use work_share_list_free_lock instead
8609         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
8610         Call gomp_fini_work_share and then either free ws if orphaned, or
8611         put it into work_share_list_free list of the current team.
8612         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
8613         functions.
8614         (gomp_work_share_start, gomp_work_share_end,
8615         gomp_work_share_end_nowait): Rewritten.
8616         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
8617         (openmp_version): Set to 200805.
8618         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
8619         omp_sched_guided, omp_sched_auto): New parameters.
8620         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8621         omp_set_max_active_levels, omp_get_max_active_levels,
8622         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8623         omp_get_active_level): New interfaces.
8624         * omp_lib.h.in (openmp_version): Set to 200805.
8625         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
8626         omp_sched_guided, omp_sched_auto): New parameters.
8627         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8628         omp_set_max_active_levels, omp_get_max_active_levels,
8629         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8630         omp_get_active_level): New externals.
8631         * loop.c: Include limits.h.
8632         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
8633         GFS_AUTO.
8634         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
8635         Likewise.  Use gomp_icv.
8636         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
8637         ts.static_trip here.
8638         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
8639         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
8640         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
8641         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
8642         don't unlock ws->lock, otherwise lock it.
8643         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
8644         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
8645         (gomp_parallel_loop_start): Call gomp_new_team instead of
8646         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
8647         Adjust gomp_team_start caller.  Pass 0 as second argument to
8648         gomp_resolve_num_threads.
8649         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
8650         If adding ws->chunk_size nthreads + 1 times after end won't
8651         overflow, set ws->mode to 1.
8652         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
8653         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
8654         GOMP_loop_ull_ordered_static_start,
8655         GOMP_loop_ull_ordered_dynamic_start,
8656         GOMP_loop_ull_ordered_guided_start,
8657         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
8658         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
8659         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
8660         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
8661         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
8662         prototypes.
8663         * libgomp.map: Export lock routines also @@OMP_2.0.
8664         (GOMP_loop_ordered_dynamic_first,
8665         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
8666         GOMP_loop_ordered_static_first): Remove.
8667         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
8668         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
8669         GOMP_loop_ull_ordered_dynamic_next,
8670         GOMP_loop_ull_ordered_dynamic_start,
8671         GOMP_loop_ull_ordered_guided_next,
8672         GOMP_loop_ull_ordered_guided_start,
8673         GOMP_loop_ull_ordered_runtime_next,
8674         GOMP_loop_ull_ordered_runtime_start,
8675         GOMP_loop_ull_ordered_static_next,
8676         GOMP_loop_ull_ordered_static_start,
8677         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
8678         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
8679         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
8680         (omp_set_schedule, omp_get_schedule,
8681         omp_get_thread_limit, omp_set_max_active_levels,
8682         omp_get_max_active_levels, omp_get_level,
8683         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
8684         omp_set_schedule_, omp_set_schedule_8_,
8685         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
8686         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
8687         omp_get_max_active_levels_, omp_get_level_,
8688         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
8689         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
8690         New exports @@OMP_3.0.
8691         * omp.h.in (omp_sched_t): New type.
8692         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8693         omp_set_max_active_levels, omp_get_max_active_levels,
8694         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
8695         omp_get_active_level): New prototypes.
8696         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
8697         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
8698         gomp_thread_limit_var, gomp_remaining_threads_count,
8699         gomp_remaining_threads_lock): New variables.
8700         (parse_spincount): New function.
8701         (initialize_env): Call gomp_init_num_threads unconditionally.
8702         Initialize gomp_available_cpus.  Call parse_spincount,
8703         initialize gomp_{,throttled_}spin_count_var
8704         depending on presence and value of OMP_WAIT_POLICY and
8705         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
8706         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
8707         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
8708         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
8709         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
8710         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
8711         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
8712         (gomp_global_icv): New.
8713         (parse_schedule): Use it.  Parse "auto".
8714         (omp_set_num_threads): Use gomp_icv.
8715         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
8716         Likewise.
8717         (omp_get_max_threads): Move from parallel.c.
8718         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
8719         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
8720         add ialias.
8721         (parse_stacksize, parse_wait_policy): New functions.
8722         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
8723         both wrappers for compatibility and new locks.
8724         (omp_set_schedule, omp_get_schedule,
8725         omp_get_thread_limit, omp_set_max_active_levels,
8726         omp_get_max_active_levels, omp_get_level,
8727         omp_get_ancestor_thread_num, omp_get_team_size,
8728         omp_get_active_level): New ialias_redirect.
8729         (omp_set_schedule_, omp_set_schedule_8_,
8730         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
8731         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
8732         omp_get_max_active_levels_, omp_get_level_,
8733         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
8734         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
8735         New functions.
8736         * parallel.c: Include limits.h.
8737         (gomp_resolve_num_threads): Add count argument.  Rewritten.
8738         (GOMP_parallel_start): Call gomp_new_team and pass that as last
8739         argument to gomp_team_start.  Pass 0 as second argument to
8740         gomp_resolve_num_threads.
8741         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
8742         if gomp_thread_limit_var != ULONG_MAX.
8743         (omp_in_parallel): Implement using ts.active_level.
8744         (omp_get_max_threads): Move to env.c.
8745         (omp_get_level, omp_get_ancestor_thread_num,
8746         omp_get_team_size, omp_get_active_level): New functions,
8747         add ialias.
8748         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
8749         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
8750         gomp_iter_dynamic_next instead of the _locked variant and don't take
8751         lock around it, otherwise acquire it before calling
8752         gomp_iter_dynamic_next_locked.
8753         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
8754         gomp_iter_dynamic_next instead of the _locked variant and don't take
8755         lock around it.
8756         (GOMP_parallel_sections_start): Call gomp_new_team instead of
8757         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
8758         Adjust gomp_team_start caller.  Pass count as second argument to
8759         gomp_resolve_num_threads, don't adjust num_threads after the call.
8760         Use gomp_icv.
8761         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
8762         ws->chunk_size by incr.
8763         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
8764         code.
8765         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
8766         types.
8767         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
8768         (omp_check_defines): Check even the compat defines.
8769         * config/linux/ptrlock.c: New file.
8770         * config/linux/ptrlock.h: New file.
8771         * config/linux/wait.h: New file.
8772         * config/posix/ptrlock.c: New file.
8773         * config/posix/ptrlock.h: New file.
8774         * config/linux/bar.h (gomp_team_barrier_wait,
8775         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
8776         (gomp_team_barrier_set_task_pending,
8777         gomp_team_barrier_clear_task_pending,
8778         gomp_team_barrier_set_waiting_for_tasks,
8779         gomp_team_barrier_waiting_for_tasks,
8780         gomp_team_barrier_done): New inlines.
8781         (gomp_barrier_t): Rewritten.
8782         (gomp_barrier_state_t): New typedef.
8783         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
8784         gomp_barrier_wait_start): Rewritten.
8785         (gomp_barrier_wait_end): Change second argument to
8786         gomp_barrier_state_t.
8787         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
8788         inlines.
8789         * config/linux/bar.c: Include wait.h instead of libgomp.h and
8790         futex.h.
8791         (gomp_barrier_wait_end): Rewritten.
8792         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
8793         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
8794         * config/posix/bar.h (gomp_barrier_t): Add generation field.
8795         (gomp_barrier_state_t): New typedef.
8796         (gomp_team_barrier_wait,
8797         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
8798         (gomp_barrier_wait_start): Or all but low 2 bits from generation
8799         into the return value.  Return gomp_barrier_state_t.
8800         (gomp_team_barrier_set_task_pending,
8801         gomp_team_barrier_clear_task_pending,
8802         gomp_team_barrier_set_waiting_for_tasks,
8803         gomp_team_barrier_waiting_for_tasks,
8804         gomp_team_barrier_done): New inlines.
8805         (gomp_barrier_wait_end): Change second argument to
8806         gomp_barrier_state_t.
8807         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
8808         inlines.
8809         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
8810         (gomp_barrier_wait_end): Change second argument to
8811         gomp_barrier_state_t.
8812         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
8813         gomp_team_barrier_wake): New functions.
8814         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
8815         futex.h.
8816         (gomp_futex_wake, gomp_futex_wait): New variables.
8817         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
8818         * config/linux/lock.c: Rewrite to make locks task owned,
8819         for backwards compatibility provide the old entrypoints
8820         if symbol versioning.  Include wait.h instead of libgomp.h and
8821         futex.h.
8822         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
8823         * config/posix95/lock.c: Rewrite to make locks task owned,
8824         for backwards compatibility provide the old entrypoints
8825         if symbol versioning.
8826         * config/posix/lock.c: Rewrite to make locks task owned,
8827         for backwards compatibility provide the old entrypoints
8828         if symbol versioning.
8829         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
8830         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
8831         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
8832         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8833         (sys_futex0): Return error code.
8834         (futex_wake, futex_wait): If ENOSYS was returned, clear
8835         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8836         (cpu_relax, atomic_write_barrier): New static inlines.
8837         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8838         (futex_wake, futex_wait): If ENOSYS was returned, clear
8839         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8840         (cpu_relax, atomic_write_barrier): New static inlines.
8841         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8842         (sys_futex0): Return error code.
8843         (futex_wake, futex_wait): If ENOSYS was returned, clear
8844         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8845         (cpu_relax, atomic_write_barrier): New static inlines.
8846         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8847         (sys_futex0): Return error code.
8848         (futex_wake, futex_wait): If ENOSYS was returned, clear
8849         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8850         (cpu_relax, atomic_write_barrier): New static inlines.
8851         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8852         (sys_futex0): Return error code.
8853         (futex_wake, futex_wait): If ENOSYS was returned, clear
8854         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8855         (cpu_relax, atomic_write_barrier): New static inlines.
8856         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
8857         (sys_futex0): Return error code.
8858         (futex_wake, futex_wait): If ENOSYS was returned, clear
8859         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
8860         (cpu_relax, atomic_write_barrier): New static inlines.
8861         * config/linux/sem.c: Include wait.h instead of libgomp.h and
8862         futex.h.
8863         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
8864         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
8865         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
8866         types.
8867         (omp_nest_lock_t): Change owner into void *, add lock field.
8868         * config/posix95/omp-lock.h: Include semaphore.h.
8869         (omp_lock_25_t, omp_nest_lock_25_t): New types.
8870         (omp_lock_t): Use sem_t instead of mutex if semaphores
8871         aren't broken.
8872         (omp_nest_lock_t): Likewise.  Change owner to void *.
8873         * config/posix/omp-lock.h: Include semaphore.h.
8874         (omp_lock_25_t, omp_nest_lock_25_t): New types.
8875         (omp_lock_t): Use sem_t instead of mutex if semaphores
8876         aren't broken.
8877         (omp_nest_lock_t): Likewise.  Add owner field.
8879 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
8881         * testsuite/libgomp.c/collapse-1.c: New test.
8882         * testsuite/libgomp.c/collapse-2.c: New test.
8883         * testsuite/libgomp.c/collapse-3.c: New test.
8884         * testsuite/libgomp.c/icv-1.c: New test.
8885         * testsuite/libgomp.c/icv-2.c: New test.
8886         * testsuite/libgomp.c/lib-2.c: New test.
8887         * testsuite/libgomp.c/lock-1.c: New test.
8888         * testsuite/libgomp.c/lock-2.c: New test.
8889         * testsuite/libgomp.c/lock-3.c: New test.
8890         * testsuite/libgomp.c/loop-4.c: New test.
8891         * testsuite/libgomp.c/loop-5.c: New test.
8892         * testsuite/libgomp.c/loop-6.c: New test.
8893         * testsuite/libgomp.c/loop-7.c: New test.
8894         * testsuite/libgomp.c/loop-8.c: New test.
8895         * testsuite/libgomp.c/loop-9.c: New test.
8896         * testsuite/libgomp.c/nested-3.c: New test.
8897         * testsuite/libgomp.c/nestedfn-6.c: New test.
8898         * testsuite/libgomp.c/sort-1.c: New test.
8899         * testsuite/libgomp.c/task-1.c: New test.
8900         * testsuite/libgomp.c/task-2.c: New test.
8901         * testsuite/libgomp.c/task-3.c: New test.
8902         * testsuite/libgomp.c/task-4.c: New test.
8903         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
8904         to C++ testsuite default compiler options.
8905         * testsuite/libgomp.c++/collapse-1.C: New test.
8906         * testsuite/libgomp.c++/collapse-2.C: New test.
8907         * testsuite/libgomp.c++/ctor-10.C: New test.
8908         * testsuite/libgomp.c++/for-1.C: New test.
8909         * testsuite/libgomp.c++/for-2.C: New test.
8910         * testsuite/libgomp.c++/for-3.C: New test.
8911         * testsuite/libgomp.c++/for-4.C: New test.
8912         * testsuite/libgomp.c++/for-5.C: New test.
8913         * testsuite/libgomp.c++/loop-8.C: New test.
8914         * testsuite/libgomp.c++/loop-9.C: New test.
8915         * testsuite/libgomp.c++/loop-10.C: New test.
8916         * testsuite/libgomp.c++/task-1.C: New test.
8917         * testsuite/libgomp.c++/task-2.C: New test.
8918         * testsuite/libgomp.c++/task-3.C: New test.
8919         * testsuite/libgomp.c++/task-4.C: New test.
8920         * testsuite/libgomp.c++/task-5.C: New test.
8921         * testsuite/libgomp.c++/task-6.C: New test.
8922         * testsuite/libgomp.fortran/allocatable1.f90: New test.
8923         * testsuite/libgomp.fortran/allocatable2.f90: New test.
8924         * testsuite/libgomp.fortran/allocatable3.f90: New test.
8925         * testsuite/libgomp.fortran/allocatable4.f90: New test.
8926         * testsuite/libgomp.fortran/collapse1.f90: New test.
8927         * testsuite/libgomp.fortran/collapse2.f90: New test.
8928         * testsuite/libgomp.fortran/collapse3.f90: New test.
8929         * testsuite/libgomp.fortran/collapse4.f90: New test.
8930         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
8931         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
8932         * testsuite/libgomp.fortran/lib4.f90: New test.
8933         * testsuite/libgomp.fortran/lock-1.f90: New test.
8934         * testsuite/libgomp.fortran/lock-2.f90: New test.
8935         * testsuite/libgomp.fortran/nested1.f90: New test.
8936         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
8937         * testsuite/libgomp.fortran/strassen.f90: New test.
8938         * testsuite/libgomp.fortran/tabs1.f90: New test.
8939         * testsuite/libgomp.fortran/tabs2.f: New test.
8940         * testsuite/libgomp.fortran/task1.f90: New test.
8941         * testsuite/libgomp.fortran/task2.f90: New test.
8942         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
8943         * testsuite/libgomp.fortran/vla5.f90: Likewise.
8944         * testsuite/libgomp.c/pr26943-2.c: Likewise.
8945         * testsuite/libgomp.c/pr26943-3.c: Likewise.
8946         * testsuite/libgomp.c/pr26943-4.c: Likewise.
8948 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
8950         PR c++/36308
8951         * testsuite/libgomp.c++/ctor-11.C: New test.
8952         * testsuite/libgomp.c++/ctor-12.C: New test.
8954 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
8956         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
8958 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
8960         PR middle-end/36106
8961         * testsuite/libgomp.c/atomic-5.c: New test.
8962         * testsuite/libgomp.c/atomic-6.c: New test.
8963         * testsuite/libgomp.c/autopar-1.c: New test.
8965 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8967         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
8968         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
8969         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
8970         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
8971         * configure: Regenerate.
8972         * Makefile.in, testsuite/Makefile.in: Likewise.
8974 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
8976         PR bootstrap/35457
8977         * aclocal.m4: Regenerate.
8978         * configure: Regenerate.
8980 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8982         PR middle-end/35611
8983         * testsuite/libgomp.c/atomic-4.c: New test.
8985         PR libgomp/35625
8986         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
8987         (gomp_iter_guided_next): Likewise.
8988         * testsuite/libgomp.c/pr35625.c: New test.
8990 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8992         * aclocal.m4: Regenerate.
8993         * configure: Likewise.
8994         * Makefile.in: Likewise.
8995         * testsuite/Makefile.in: Likewise.
8997 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8999         PR middle-end/35185
9000         * testsuite/libgomp.c++/pr35185.C: New test.
9002 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
9004         PR middle-end/35549
9005         * testsuite/libgomp.c/pr35549.c: New test.
9007 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9009         * testsuite/libgomp.c/atomic-3.c: New test.
9011 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9013         PR fortran/33197
9014         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
9015         .F08 file suffixes.
9017 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
9019         PR libgomp/33131
9020         * configure.ac: Add ACX_HEADER_STRING.
9021         * env.c: Include strings.h.
9022         * aclocal.m4: Regenerate.
9023         * config.h.in: Regenerate.
9024         * configure: Regenerate.
9025         * Makefile.in: Regenerate.
9026         * testsuite/Makefile.in: Regenerate.
9028 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
9030         PR middle-end/35196
9031         * testsuite/libgomp.c/pr35196.c: New test.
9033         PR middle-end/35130
9034         * testsuite/libgomp.fortran/pr35130.f90: New test.
9035         * testsuite/libgomp.c/pr35130.c: New test.
9037 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9039         PR middle-end/33880
9040         * testsuite/libgomp.c/pr33880.c: New test.
9041         * testsuite/libgomp.fortran/pr33880.f90: New test.
9043 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
9045         * configure: Regenerate.
9047 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
9049         * configure.ac: Move futex checking into ../config/futex.m4.
9050         * configure: Rebuilt.
9051         * aclocal.m4: Rebuilt.
9052         * Makefile.in: Rebuilt.
9054         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
9055         2007-10-15 ../config/tls.m4 change.
9057 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
9059         PR c++/34513
9060         * testsuite/libgomp.c/pr34513.c: New test.
9061         * testsuite/libgomp.c++/pr34513.C: New test.
9063 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
9065         PR target/32765
9066         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
9068 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
9070         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
9072 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
9074         * testsuite/libgomp.c/private-1.c: New test.
9076 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
9077             Paolo Bonzini  <bonzini@gnu.org>
9079         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
9080         instead of 'VPATH ='.
9081         * Makefile.in: Regenerate.
9083 2007-11-23  Matthias Klose  <doko@ubuntu.com>
9085         * configure.ac: Adjust makeinfo version check.
9086         * configure: Regenerate.
9088 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
9090         PR fortran/34020
9091         * testsuite/libgomp.fortran/pr34020.f90: New test.
9093 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
9095         PR c++/33894
9096         * testsuite/libgomp.c++/atomic-1.C: New test.
9098 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
9100         PR libgomp/33275
9101         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
9102         Make x and y integers rather than (implicit) reals.  Add private (j)
9103         clause to the last omp parallel.
9105 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
9107         * configure: Regenerate following changes to ../config/tls.m4.
9109 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
9111         * testsuite/libgomp.fortran/stack.f90: New test.
9113 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
9115         * config/mingw32/proc.c: New file.
9117 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
9119         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
9120         (main): Use __get_cpuid to get i386 target fetaures.
9121         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
9122         (main): Use __get_cpuid to get x86_64 target fetaures.
9124 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
9126         PR target/32765
9127         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
9128         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
9130 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
9132         PR fortran/32550
9133         * testsuite/libgomp.fortran/pr32550.f90: New test.
9134         * testsuite/libgomp.fortran/crayptr2.f90: New test.
9136 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
9138         * aclocal.m4: Regenerated.
9140 2007-07-05  Tobias Burnus  <burnus@net-b.de>
9142         PR fortran/32359
9143         * testsuite/libgomp.fortran/pr32359.f90: New.
9145 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
9147         PR libgomp/32468
9148         * sections.c (GOMP_parallel_sections_start): Only decrease
9149         number of threads to COUNT if dyn_var is true.
9150         * testsuite/libgomp.c/pr32468.c: New test.
9152 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9154         PR libgomp/26308
9155         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
9157 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
9159         PR middle-end/32362
9160         * testsuite/libgomp.c/pr32362-1.c: New test.
9161         * testsuite/libgomp.c/pr32362-2.c: New test.
9162         * testsuite/libgomp.c/pr32362-3.c: New test.
9164 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
9166         * team.c (gomp_team_start): Fix setting up thread_attr
9167         stack size.
9169 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
9171         * configure: Regenerate.
9173 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
9175         * Makefile.in: Regenerate.
9176         * configure: Regenerate.
9177         * aclocal.m4: Regenerate.
9178         * testsuite/Makefile.in: Regenerate.
9180 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
9182         * config/linux/proc.c: New file.
9184         PR libgomp/28482
9185         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
9187 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
9189         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
9191 2007-04-16  Matthias Klose  <doko@debian.org>
9193         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
9194         flags if not building with -m64.
9195         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
9196         flag for i?86-*-* targets, if current target matches -m64.
9198 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
9200         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
9201         * Makefile.in: Regenerate.
9203 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9205         PR testsuite/31369
9206         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
9207         ld_library_path.
9208         * testsuite/libgomp.fortran/fortran.exp: Likewise.
9210 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
9212         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
9213         decls.
9214         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
9215         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
9216         (parse_affinity): New function.
9217         (initialize_env): Call it and gomp_init_affinity.
9218         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
9219         create new pthread_attr_t and call gomp_init_thread_affinity
9220         on it for each thread before passing the attribute to pthread_create.
9221         * config/linux/affinity.c: New file.
9222         * config/posix/affinity.c: New file.
9223         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
9224         * configure: Rebuilt.
9225         * config.h.in: Rebuilt.
9226         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
9227         * Makefile.in: Rebuilt.
9229 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
9231         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
9232         *-*-darwin*.
9233         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
9234         and use it if found.
9236 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
9238         * testsuite/config/default.exp: New file.
9239         * testsuite/lib/libgomp.exp: New file.
9240         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
9241         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
9242         load_lib *, load_gcc_lib *): Move to libgomp.exp.
9243         (libgomp_load): Remove.
9244         * testsuite/lib/libgomp.exp (libgomp_init): Compute
9245         always_ld_library_path, not ld_library_path.  Set additional_flags
9246         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
9247         (target_compile): Do not call libgomp_init.  Append lang_library_path
9248         and lang_link_flags to options.
9249         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
9250         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
9251         here.
9252         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
9253         always_ld_library_path.  Set LD_LIBRARY_PATH here.
9254         * testsuite/libgomp.fortran/fortran.exp: Ditto.
9255         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
9256         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
9257         CX8 flag.
9258         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
9259         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
9260         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
9261         * testsuite/libgomp.c/pr29947-1.c: Ditto.
9262         * testsuite/libgomp.c/atomic-10.c: Ditto.
9264 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
9266         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
9267         dg-final cleanup-modules line.
9268         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
9269         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
9270         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
9271         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
9272         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
9273         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
9274         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
9276 2007-03-18  Andreas Schwab  <schwab@suse.de>
9278         * acinclude.m4: Adjust regular expression for ld version
9279         extraction.
9280         * configure: Regenerate.
9282 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9284         * Makefile.am: Add install-pdf target as copied from
9285         automake v1.10 rules.
9286         * Makefile.in: Regenerate
9288 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
9290         PR libgomp/28486
9291         * configure: Regenerate.
9293         PR c++/30703
9294         * testsuite/libgomp.c++/pr30703.C: New test.
9296 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
9298         Revert:
9299         2006-07-05  Eric Christopher  <echristo@apple.com>
9300         * configure.ac: Depend addition of -pthread on host OS.
9301         * configure: Regenerate.
9303 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9305         * libgomp.texi: Fix spacing after abbreviations.
9307 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
9309         PR libgomp/30546
9310         * configure.ac: Add check for makeinfo
9311         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
9312         if an appropiate version of makeinfo is found.
9313         * aclocal.m4: Regenerated.
9314         * configure: Regenerated.
9315         * Makefile.in: Regenerated.
9316         * testsuite/Makefile.in: Regenerated.
9318 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
9320         PR libgomp/30540
9321         * libgomp.texi: More about implementation-dependent settings.
9323 2007-01-26  Tobias Burnus  <burnus@net-b.de>
9325         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
9327 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
9329         PR middle-end/30494
9330         * testsuite/libgomp.c/pr30494.c: New test.
9332 2007-01-15  Tom Tromey  <tromey@redhat.com>
9334         * configure: Rebuilt.
9335         * configure.ac: Fixed comment.
9337 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
9339         * libgomp.texi: Document implementation specific default values of
9340         environment variables.
9342 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
9344         PR libgomp/28209
9345         * libgomp.texi: New file.
9346         * configure.ac: Add --enable-generated-files-in-srcdir option.
9347         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
9348         files to srcdir.
9349         * Makefile.in: Regenerated.
9350         * config.h.in: Regenerated.
9351         * testsuite/Makefile.in: Regenerated.
9352         * NOTES: Removed.
9354 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
9356         PR libgomp/29949
9357         * env.c (omp_set_num_threads): Set illegal thread count to 1.
9359 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9361         * configure: Regenerate.
9363 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
9365         PR libgomp/29947
9366         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
9367         start if there shouldn't be any loop iterations.
9368         (gomp_loop_ordered_static_start): Remove start == end test.
9369         * testsuite/libgomp.c/pr29947-1.c: New test.
9370         * testsuite/libgomp.c/pr29947-2.c: New test.
9372 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
9374         * configure.tgt: Force initial-exec TLS model on Linux only.
9376 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
9378         * configure: Regenerated.
9380 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
9382         * env.c (parse_schedule): Reject out of range values.
9383         (parse_unsigned_long): Reject out of range, negative or zero values.
9385 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
9387         PR fortran/29629
9388         * testsuite/libgomp.fortran/pr29629.f90: New test.
9390 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
9392         PR libgomp/29494
9393         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
9394         * config/posix95: New directory.
9395         * config/posix95/omp-lock.h: New file.
9396         * config/posix95/lock.c: Likewise.
9398 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
9400         * aclocal.m4: Regenerate.
9401         * configure: Regenerate.
9403 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
9405         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
9406         '<' to '<='.
9408 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
9410         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
9411         test.
9412         * configure: Regenerate.
9413         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
9415 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
9417         PR middle-end/25261
9418         PR middle-end/28790
9419         * testsuite/libgomp.c/nestedfn-4.c: New test.
9420         * testsuite/libgomp.c/nestedfn-5.c: New test.
9421         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
9423         PR fortran/29097
9424         * testsuite/libgomp.fortran/condinc1.f: New test.
9425         * testsuite/libgomp.fortran/condinc2.f: New test.
9426         * testsuite/libgomp.fortran/condinc3.f90: New test.
9427         * testsuite/libgomp.fortran/condinc4.f90: New test.
9428         * testsuite/libgomp.fortran/condinc1.inc: New file.
9430 2006-09-18  Tom Tromey  <tromey@redhat.com>
9432         * configure: Rebuilt.
9434 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
9436         PR c/28768
9437         PR preprocessor/14634
9438         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
9439         to AC_DEFINE.
9440         * configure: Regenerate.
9442 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
9444         * testsuite/libgomp.fortran/reduction3.f90: Change
9445         -2147483648 to -huge(i)-1 to avoid overflow.
9446         * testsuite/libgomp.fortran/reduction4.f90: Change
9447         Z'ffffffff' to not(0) to avoid overflow.
9449 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
9451         PR libgomp/25938
9452         * Makefile.am (libsubincludedir): New.
9453         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
9454         * Makefile.in: Regenerate.
9456 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
9458         PR libgomp/28725
9459         * env.c: Include ctype.h.
9460         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
9461         leading and/or trailing whitespace and compare strings case
9462         insensitively.
9464 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
9466         PR fortran/28390
9467         * testsuite/libgomp.fortran/pr28390.f: New test.
9469 2006-07-05  Eric Christopher  <echristo@apple.com>
9471         * configure.ac: Depend addition of -pthread on host OS.
9472         * configure: Regenerate.
9474 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
9476         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
9477         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
9478         defined.
9480 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
9482         PR libgomp/26175
9483         PR libgomp/26477
9484         * configure.ac: If neither --enable-linux-futex nor
9485         --disable-linux-futex is passed, determine the default by checking
9486         for compiling and/or running against NPTL.  With --enable-linux-futex,
9487         check if SYS_gettid and SYS_futex are defined.
9488         * configure: Rebuilt.
9490 2006-06-14  Richard Henderson  <rth@redhat.com>
9492         PR libgomp/28008
9493         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
9494         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
9496 2006-06-09  Richard Henderson  <rth@redhat.com>
9498         * env.c (gomp_nthreads_var): Change to unsigned long.
9499         (gomp_run_sched_chunk): Likewise.
9500         (parse_unsigned_long): Rename from parse_num_threads and generalize.
9501         (initialize_env): Initialize gomp_thread_attr.
9502         * libgomp.h (gomp_nthreads_var): Update decl.
9503         (gomp_run_sched_chunk): Likewise.
9504         (gomp_thread_attr): Declare.
9505         * team.c (gomp_thread_attr): Export.
9506         (initialize_team): Don't initialize it.
9508 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
9510         PR fortran/27916
9511         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
9512         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
9514 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9516         * config/mingw32/time.c: New file.
9517         * configure.tgt: Use it.
9519 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
9521         * Makefile.am: Add install-html target. Add install-html to .PHONY
9522         * Makefile.in: Regenerate.
9524 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9526         PR libgomp/27612
9527         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
9528         * testsuite/libgomp.c/critical-1.c: Likewise.
9529         * testsuite/libgomp.c/loop-1.c: Likewise.
9530         * testsuite/libgomp.c/loop-2.c: Likewise.
9531         * testsuite/libgomp.c/single-1.c: Likewise.
9532         * testsuite/libgomp.c/ordered-1.c: Likewise.
9533         * testsuite/libgomp.c/ordered-2.c: Likewise.
9535 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
9537         PR middle-end/27416
9538         * libgomp.fortran/pr27416-1.f90: New test.
9540 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
9542         PR fortran/27395
9543         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
9544         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
9546 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
9548         PR c++/26943
9549         * testsuite/libgomp.c/pr26943-1.c: New test.
9550         * testsuite/libgomp.c/pr26943-2.c: New test.
9551         * testsuite/libgomp.c/pr26943-3.c: New test.
9552         * testsuite/libgomp.c/pr26943-4.c: New test.
9553         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
9554         * testsuite/libgomp.c++/pr26943.C: New test.
9556 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
9558         PR middle-end/27337
9559         * testsuite/libgomp.c++/pr27337.C: New test.
9561 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
9563         PR c/26171
9564         * testsuite/libgomp.c/pr26171.c: New test.
9566 2006-04-25  Richard Henderson  <rth@redhat.com>
9568         PR libgomp/25865
9569         * configure.ac: Use GCC_CHECK_TLS.
9570         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
9571         * Makefile.in, aclocal.m4, configure: Regenerate.
9573 2006-04-10  Matthias Klose  <doko@debian.org>
9575         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
9576         directory names containing underscores.
9578 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
9580         PR c++/26691
9581         * testsuite/libgomp.c++/pr26691.C: New test.
9583 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
9585         * testsuite/libgomp.fortran/retval2.f90: New test.
9587 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
9589         * testsuite/libgomp.c++: New directory.
9591 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
9593         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
9594         * config/posix/sem.c: Implement the above.
9596 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
9598         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
9599         define HAVE_BROKEN_POSIX_SEMAPHORES.
9600         * configure: Rebuilt.
9601         * config.h.in: Rebuilt.
9603 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9605         PR bootstrap/26161
9606         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
9607         for the other pthread check.
9608         * configure: Regenerate.
9609         * config.h.in: Regenerate.
9611 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
9613         PR libgomp/25938
9614         PR libgomp/25984
9615         * Makefile.am (fincludedir): New variable.
9616         (nodist_include_HEADERS): Remove Fortran files.
9617         (nodist_finclude_HEADERS): New variable.
9618         * Makefile.in: Regenerated.
9620 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
9622         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
9623         Remove tests for returning assumed character length arrays.
9625 2006-02-12  Roger Sayle  <roger@eyesopen.com>
9626             John David Anglin  <dave@hiauly1.hia.nrc.ca>
9628         PR libgomp/25936
9629         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
9631 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
9633         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
9635 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9637         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
9638         part of LD_LIBRARY_PATH manually.
9640 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
9642         PR libgomp/25852
9643         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
9644         libgomp_init.
9646 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
9648         PR libgomp/25884
9649         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
9650         * configure.ac (PERL): Don't set.
9651         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
9652         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
9653         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
9654         * omp.h.in: Wrap the new configure substitutions with @ characters.
9655         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
9656         * aclocal.m4, configure, Makefile.in: Regenerate.
9657         * mkomp_h.pl: Delete.
9659 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
9661         PR libgomp/25259
9662         * configure.ac: Use GCC_HEADER_STDINT.
9663         * libgomp.h: Include gstdint.h.
9664         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
9665         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
9667 2006-01-24  Richard Henderson  <rth@redhat.com>
9669         PR libgomp/25942
9670         * configure.ac: Add AM_MAINTAINER_MODE.
9671         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
9673 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
9675         * Makefile.in: Regenerate.
9676         * testsuite/Makefile.in: Regenerate.
9677         * aclocal.m4: Regenerate.
9679 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
9681         * config/posix/proc.c: Conditional include of sys/loadavg.h for
9682         Solaris.
9683         * configure.ac: Add check for loadavg.h.
9684         (link_gomp): Adjust comment.
9685         * configure: Regenerate.
9686         * config.h.in: Regenerate.
9688 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
9690         PR libgomp/25877
9691         * configure.ac: Remove check for alloca.h.
9692         * configure: Regenerate.
9693         * config.h.in: Regenerate.
9694         * libgomp.h: define gomp_alloca to be __builtin_alloca.
9695         * team.c: Remove use of alloca.h.
9696         Call gomp_alloca instead of alloca.
9698 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
9700         PR libgomp/25877
9701         * team.c: Add include of alloca.h.
9702         * configure.ac: Add check for alloca.h.
9703         * configure: Regenerate.
9704         * config.h.in: Regenerate.
9706 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
9708         PR fortran/25219
9709         * testsuite/libgomp.fortran/pr25219.f90: New test.
9711 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
9713         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
9714         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
9715         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
9716         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
9717         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
9718         testsuite/libgomp.fortran/threadprivate1.f90,
9719         testsuite/libgomp.fortran/threadprivate2.f90,
9720         testsuite/libgomp.fortran/threadprivate3.f90,
9721         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
9722         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
9723         testsuite/libgomp.fortran/omp_parse3.f90: Change required
9724         effective-target to TLS runtime.
9726         * testsuite/libgomp.fortran/pr25162.f: Require
9727         effective-target TLS runtime.
9729 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
9731         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
9732         * testsuite/libgomp.c/nestedfn-3.c: New test.
9734 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
9736         PR fortran/25162
9737         * testsuite/libgomp.fortran/pr25162.f: New test.
9739 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
9741         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
9742         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
9744 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
9746         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
9747         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
9748         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
9749         single.c, team.c, work.c, config/linux/alpha/futex.h,
9750         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
9751         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
9752         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
9753         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
9754         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
9755         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
9756         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
9757         FSF address.
9759 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
9761         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
9762         to nodist_noinst_HEADERS.
9763         * Makefile.in: Rebuilt.
9765         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
9766         add integer count field.
9767         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
9768         omp_nest_lock_t type change.
9769         (omp_init_nest_lock): Likewise.  Initialize count to 0.
9770         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
9771         Increment count.
9772         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
9773         Decrement count.
9774         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
9775         Increment count if successful and return the new nesting level.
9776         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
9777         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
9778         * testsuite/libgomp.c/lib-1.c: New test.
9779         * testsuite/libgomp.fortran/lib1.f90: New test.
9780         * testsuite/libgomp.fortran/lib2.f: New test.
9781         * testsuite/libgomp.fortran/lib3.f: New test.
9783 2005-11-17  Richard Henderson  <rth@redhat.com>
9785         PR 24845
9786         * Makefile.am (nodist_toolexeclib_HEADERS): New.
9787         * configure.ac (link_gomp): New.  Substitute it.
9788         (AC_CONFIG_FILES): Add libgomp.spec.
9789         * libgomp.spec.in: New file.
9790         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
9791         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
9793 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
9795         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
9796         reduction(-:var) behaving the same as reduction(+:var).
9797         * testsuite/libgomp.c/reduction-4.c: New test.
9799 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
9801         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
9802         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
9803         testsuite/libgomp.c/copyin-3.c,
9804         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
9805         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
9806         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
9807         testsuite/libgomp.c++/pr24455.C,
9808         testsuite/libgomp.fortran/threadprivate1.f90,
9809         testsuite/libgomp.fortran/threadprivate2.f90,
9810         testsuite/libgomp.fortran/threadprivate3.f90,
9811         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
9812         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
9813         testsuite/libgomp.fortran/omp_parse3.f90: Require
9814         effective-target TLS.
9816 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
9818         * HEADER: Remove.
9820 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
9822         PR libgomp/24797
9823         * team.c (initialize_team): Pass NULL rather than free as
9824         pthread_key_create destructor.  Initialize thread specific data
9825         pointer in initial thread to a static local variable rather than
9826         malloced memory.
9828 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
9830         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
9831         its location to ld_library_path.
9833 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
9835         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
9837 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
9839         * testsuite/libgomp.c: Rename from libgomp.dg.
9841 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
9843         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
9844         threadprivate variable 'i'.
9846 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
9848         * config/linux/s390/futex.h: New file.
9849         * configure.tgt: Use it.
9851         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
9852         before the parallel.
9854 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
9856         PR c++/24734
9857         * testsuite/libgomp.c++/master-1.C: New test.
9859 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
9861         * testsuite/libgomp.dg/copyin-3.c: New test.
9863 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
9865         * testsuite/libgomp.fortran/retval1.f90: New test.
9866         * testsuite/libgomp.fortran/vla7.f90: New test.
9868 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
9870         * testsuite/libgomp.fortran/vla2.f90: New test.
9871         * testsuite/libgomp.fortran/vla3.f90: New test.
9872         * testsuite/libgomp.fortran/vla4.f90: New test.
9873         * testsuite/libgomp.fortran/vla5.f90: New test.
9874         * testsuite/libgomp.fortran/vla6.f90: New test.
9876 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
9878         * config/linux/sparc/futex.h: New file.
9879         * configure.tgt: Use it.
9880         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
9882         * critical.c: Include stdlib.h.
9883         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
9884         ignoring return value.
9885         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
9886         LIBGOMP_CHECK_SYNC_BUILTINS check.
9887         * configure: Rebuilt.
9889 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
9891         * testsuite/libgomp.fortran/vla1.f90: New test.
9893 2005-10-31  Richard Henderson  <rth@redhat.com>
9895         * testsuite/libgomp.fortran/character2.f90: Fix race condition
9896         setting 's' in different threads.
9898 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
9900         * libgomp.h (attribute_hidden, ialias): Define.
9901         * config/posix/proc.c (omp_get_num_procs): Add ialias.
9902         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
9903         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
9904         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
9905         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
9906         omp_test_lock, omp_test_nest_lock): Likewise.
9907         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
9908         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
9909         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
9910         omp_test_lock, omp_test_nest_lock): Likewise.
9911         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
9912         omp_get_dynamic, omp_get_nested): Likewise.
9913         * parallel.c (omp_get_num_threads, omp_get_max_threads,
9914         omp_get_thread_num, omp_in_parallel): Likewise.
9915         * fortran.c (ialias_redirect): Define.
9916         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
9917         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
9918         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
9919         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
9920         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
9921         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
9922         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
9923         omp_get_wtime): Add ialias_redirect.
9925 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
9927         * fortran.c: Include stdlib.h.
9929 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
9931         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
9932         * Makefile.in: Regenerated.
9934 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
9936         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
9937         * libgomp_f.h.in (omp_check_defines): New function.
9938         * env.c: Include libgomp_f.h.
9939         (initialize_env): Call omp_check_defines.
9941         * testsuite/libgomp.dg/copyin-2.c: New test.
9942         * testsuite/libgomp.c++/copyin-2.C: New test.
9943         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
9945         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
9946         * testsuite/libgomp.fortran/sharing2.f90: New test.
9948         * testsuite/libgomp.dg/copyin-1.c: New test.
9949         * testsuite/libgomp.c++/copyin-1.C: New test.
9951 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
9953         * testsuite/libgomp.fortran/crayptr1.f90: New test.
9955         * testsuite/libgomp.fortran/workshare1.f90: New test.
9957         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
9958         only test.
9959         * libgomp.fortran/sharing1.f90: New test.
9961 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
9963         PR c++/24502
9964         * testsuite/libgomp.c++/loop-7.C: New test.
9966         * testsuite/libgomp.dg/nestedfn-2.c: New test.
9968         * testsuite/libgomp.dg/nestedfn-1.c: New test.
9969         * testsuite/libgomp.fortran/reduction6.f90: New test.
9970         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
9972 2005-10-23  Richard Henderson  <rth@redhat.com>
9974         * testsuite/libgomp.c++/ctor-1.C: New.
9975         * testsuite/libgomp.c++/ctor-2.C: New.
9976         * testsuite/libgomp.c++/ctor-3.C: New.
9977         * testsuite/libgomp.c++/ctor-4.C: New.
9978         * testsuite/libgomp.c++/ctor-5.C: New.
9979         * testsuite/libgomp.c++/ctor-6.C: New.
9980         * testsuite/libgomp.c++/ctor-7.C: New.
9981         * testsuite/libgomp.c++/ctor-8.C: New.
9982         * testsuite/libgomp.c++/ctor-9.C: New.
9984 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
9986         PR 24455
9987         * testsuite/libgomp.c++/pr24455-1.C: New test.
9988         * testsuite/libgomp.c++/pr24455.C: New test.
9989         * testsuite/libgomp.dg/pr24455-1.c: New test.
9990         * testsuite/libgomp.dg/pr24455.c: New test.
9992 2005-10-20  Richard Henderson  <rth@redhat.com>
9994         * testsuite/libgomp.c++/loop-6.C: New.
9995         * testsuite/libgomp.dg/loop-3.c: New.
9997 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
9999         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
10000         explicitly private.
10001         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
10002         explicitly shared.
10004 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
10006         * testsuite/libgomp.fortran/jacobi.f: New test.
10008 2005-10-19  Richard Henderson  <rth@redhat.com>
10010         * configure.tgt (i?86-linux): Default to with_arch instead of
10011         CFLAGS.  Add -mtune to match target_cpu.
10012         (x86_64-linux): Tune to i686.
10014         * fortran.c (omp_test_nest_lock_): Fix typo.
10016 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
10018         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
10019         gomp_ordered_sync): Do nothing if team->nthreads == 1.
10020         * testsuite/libgomp.dg/ordered-3.c: New test.
10022         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
10023         Remove volatile keyword.
10025         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
10026         in COMMON block to avoid warnings on 64-bit targets.
10028 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
10030         * testsuite/libgomp.dg/shared-3.c: New test.
10032 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
10034         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
10035         * testsuite/libgomp.fortran/reduction5.f90: New test.
10037 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
10039         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
10040         dg-options.
10041         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
10042         flush loop now that __sync_synchronize has proper memory barrier.
10043         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
10044         Add -ffixed-form to dg-options.
10046 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
10048         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
10049         from subdirectories.
10050         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
10051         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
10052         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
10053         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
10054         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
10055         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
10056         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
10057         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
10058         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
10059         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
10060         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
10061         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
10062         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
10063         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
10064         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
10065         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
10066         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
10067         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
10068         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
10069         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
10070         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
10071         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
10072         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
10073         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
10074         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
10076 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
10078         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
10079         lang_library_path exists.  Use find instead of glob to gather tests.
10080         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
10082 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
10084         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
10085         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
10086         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
10087         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
10088         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
10089         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
10090         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
10091         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
10092         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
10093         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
10094         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
10095         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
10096         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
10098 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
10100         * testsuite/libgomp.dg/vla-1.c: New test.
10102         * testsuite/libgomp.fortran/reference2.f90: New test.
10104         * testsuite/libgomp.fortran/character2.f90: Remove explicit
10105         declaration of omp_get_thread_num.
10106         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
10107         use omp_lib.
10109         * testsuite/libgomp.fortran/reduction1.f90: New test.
10110         * testsuite/libgomp.fortran/reduction2.f90: New test.
10111         * testsuite/libgomp.fortran/reduction3.f90: New test.
10112         * testsuite/libgomp.fortran/reduction4.f90: New test.
10114 2005-10-13  Richard Henderson  <rth@redhat.com>
10116         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
10117         * Makefile.in: Regenerate.
10118         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
10119         * libgomp.h: Include bar.h.
10120         (struct gomp_barrier): Remove.
10121         (struct gomp_team): Add barrier.  Replace master_barrier with
10122         master_release.  Replace threads with ordered_release.
10123         (struct gomp_thread): Replace barrier with release.
10124         * ordered.c (gomp_ordered_first): Update for ordered_release change.
10125         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
10126         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
10127         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
10128         (GOMP_single_copy_end): Likewise.
10129         * team.c (gomp_threads_dock): New.
10130         (gomp_barrier_init, gomp_barrier_destroy): Remove.
10131         (gomp_thread_start): Use gomp_barrier_wait.
10132         (new_team, free_team): Update for gomp_team changes.
10133         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
10134         (gomp_team_end): Use gomp_barrier_wait.
10135         (initialize_team): Update for gomp_thread changes.
10136         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
10137         (gomp_work_share_end_nowait): Use atomic ops when available.
10138         * config/linux/bar.c, config/linux/bar.h: New files.
10139         * config/posix/bar.c, config/posix/bar.h: New files.
10141 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
10143         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
10144         * testsuite/libgomp.dg/single-2.c: New test.
10146         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
10147         lang_link_flags): Unset, so that they aren't inherited from previously
10148         sourced *.exp.
10150         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
10152 2005-10-12  Richard Henderson  <rth@redhat.com>
10154         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
10155         (libgomp_init): Use lang_test_file, lang_library_path, and
10156         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
10158         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
10159         (lang_test_file, lang_link_flags): New.
10160         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
10162         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
10163         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
10164         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
10165         testsuite/libgomp.c++/parallel-1.C,
10166         testsuite/libgomp.c++/reduction-1.C,
10167         testsuite/libgomp.c++/reduction-2.C,
10168         testsuite/libgomp.c++/reduction-3.C,
10169         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
10170         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
10171         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
10172         New files, largely cribbed from the C testsuite.
10174 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
10176         * testsuite/libgomp.fortran/character1.f90: New test.
10177         * testsuite/libgomp.fortran/character2.f90: New test.
10179         * testsuite/libgomp.dg/nested-1.c: New test.
10180         * testsuite/libgomp.dg/nested-2.c: New test.
10181         * testsuite/libgomp.fortran/do1.f90: New test.
10182         * testsuite/libgomp.fortran/do2.f90: New test.
10184         * testsuite/libgomp.fortran/reference1.f90: New test.
10186 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
10188         * testsuite/libgomp.dg/reduction-1.c: New test.
10189         * testsuite/libgomp.dg/reduction-2.c: New test.
10190         * testsuite/libgomp.dg/reduction-3.c: New test.
10192 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
10194         * testsuite/libgomp.dg/atomic-1.c: New test.
10195         * testsuite/libgomp.dg/atomic-2.c: New test.
10197 2005-10-09  Richard Henderson  <rth@redhat.com>
10199         * critical.c (atomic_lock): New.
10200         (initialize_critical): Initialize it.
10201         (GOMP_atomic_start, GOMP_atomic_end): New.
10202         * libgomp.map: Export them.
10203         * libgomp_g.h: Declare them.
10205         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
10207 2005-10-02  Richard Henderson  <rth@redhat.com>
10209         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
10210         to XCFLAGS instead of CFLAGS.
10212 2005-09-30  Richard Henderson  <rth@redhat.com>
10214         * configure.ac: Determine whether -pthread or -lpthread is needed.
10215         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
10216         * Makefine.in, configure: Rebuild.
10218 2005-09-28  Richard Henderson  <rth@redhat.com>
10220         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
10221         * testsuite/libgomp.dg/omp-single-3.c: New test.
10223 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
10225         * testsuite/libgomp.dg/omp-single-2.c: New test.
10226         * testsuite/libgomp.dg/shared-2.c: Fix return code.
10228 2005-09-27  Richard Henderson  <rth@redhat.com>
10230         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
10231         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
10233 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
10235         * testsuite/libgomp.dg/omp-loop03.c: New test.
10237 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
10239         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
10241 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
10243         * testsuite/libgomp.dg/omp-single-1.c: New test.
10244         * testsuite/libgomp.dg/shared-1.c: Return 0.
10245         Add prototype for abort.
10246         * testsuite/libgomp.dg/shared-2.c: Likewise.
10248 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
10250         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
10251         constructs.
10253 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
10255         * testsuite/libgomp.dg/shared-1.c: New test.
10256         * testsuite/libgomp.dg/shared-2.c: New test.
10258 2005-09-24  Richard Henderson  <rth@redhat.com>
10260         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
10262 2005-09-24  Richard Henderson  <rth@redhat.com>
10264         * iter.c (gomp_iter_static_next): Round up when computing number
10265         of iterations.  Don't bother distributing a remainder equally.
10267         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
10268         Don't call srand.  Zero b before testing.
10269         (main): New.
10271 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
10273         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
10274         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
10276 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
10278         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
10279         without !$omp end do, followed immediately by subroutine end.
10281 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
10283         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
10285 2005-09-22  Richard Henderson  <rth@redhat.com>
10287         * critical.c (GOMP_critical_name_start): Change argument to void**.
10288         Reuse the pointer space if the mutex fits.
10289         (GOMP_critical_name_end): Likewise.
10290         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
10291         * libgomp_g.h (GOMP_critical_name_start): Update decl.
10292         (GOMP_critical_name_end): Likewise.
10293         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
10294         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
10296 2005-09-20  Richard Henderson  <rth@redhat.com>
10298         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
10299         (create_lock_lock): New.
10300         (initialize_critical): Initialize it.
10301         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
10302         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
10304 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
10306         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
10308 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
10310         * testsuite/libgomp.dg/omp-loop01.c: New test.
10311         * testsuite/libgomp.dg/omp-loop02.c: New test.
10313 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
10315         * configure.ac (AC_PROG_FC): Add.
10316         (USE_FORTRAN): New automake conditional.
10317         * configure: Rebuilt.
10318         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
10319         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
10320         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
10321         Add rules to build them.
10322         * Makefile.in: Rebuilt.
10323         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
10324         OMP_NEST_LOCK_KIND.
10325         * libgomp.map: Add Fortran wrappers.
10326         * libgomp_f.h.in: New file.
10327         * omp_lib.h.in: New file.
10328         * omp_lib.f90.in: New file.
10329         * fortran.c: New file.
10330         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
10331         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
10332         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
10333         libgfortran has been built.
10334         * testsuite/libgomp.fortran/fortran.exp: New file.
10335         * testsuite/libgomp.fortran/omp_cond1.f: New test.
10336         * testsuite/libgomp.fortran/omp_cond2.f: New test.
10337         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
10338         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
10339         * testsuite/libgomp.fortran/omp_hello.f: New test.
10340         * testsuite/libgomp.fortran/omp_orphan.f: New test.
10341         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
10342         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
10343         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
10344         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
10345         * testsuite/libgomp.fortran/omp_reduction.f: New test.
10346         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
10347         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
10349 2005-08-30  Richard Henderson  <rth@redhat.com>
10351         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
10352         function for when aliases are not usable.
10353         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
10354         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
10355         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
10356         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
10357         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
10358         GOMP_loop_ordered_guided_next): Likewise.
10359         * ordered.c (GOMP_ordered_start): Likewise.
10361 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
10363         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
10364         * testsuite/libgomp.dg/omp_hello.c: Fix return code
10365         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
10366         * testsuite/libgomp.dg/omp_orphan.c: Likewise
10367         * testsuite/libgomp.dg/omp_reduction.c: Likewise
10368         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
10369         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
10370         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
10371         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
10373 2005-07-07  Eric Christopher  <echristo@redhat.com>
10374             Diego Novillo  <dnovillo@redhat.com>
10376         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
10377         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
10378         up code.
10379         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
10380         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
10381         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
10382         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
10383         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
10384         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
10385         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
10387 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
10389         * TOPLEVEL.patch: Remove.
10391 2005-05-16  Richard Henderson  <rth@redhat.com>
10393         * configure.ac: Test for clock_gettime.
10394         * config.h.in, configure: Rebuild.
10395         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
10396         (omp_get_wtime): Use clock_gettime if available.
10397         (omp_get_wtick): Use clock_getres if available.
10399 2005-05-11  Richard Henderson  <rth@redhat.com>
10401         * config/linux/ia64/futex.h: New file.
10402         * configure.tgt: Use it.
10404         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
10406 2005-05-07  Richard Henderson  <rth@redhat.com>
10408         * config/linux/powerpc/futex.h: New file.
10409         * configure.tgt: Use it.
10411         * config/linux/i486/futex.h: Merge ...
10412         * config/linux/x86_64/futex.h: ... into ...
10413         * config/linux/x86/futex.h: ... here.
10414         * configure.tgt: Update to match.
10416 2005-05-06  Richard Henderson  <rth@redhat.com>
10418         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
10419         * config/linux/i486/futex.h: Likewise.
10420         * config/linux/x86_64/futex.h: Likewise.
10422         * config/linux/lock.c: New file.
10423         * config/linux/omp-lock.h: New file.
10425         * critical.c, env.h: Don't include omp.h
10426         * config/posix/lock.c: Include libgomp.h instead of omp.h.
10427         * config/posix/time.c: Likewise.
10428         * config/posix/omp-lock.h: New file.
10429         * libgomp.h: Include omp-lock.h and omp.h.
10430         * Makefile.am (nodist_include_HEADERS): New.
10431         (omp.h): New rule.
10432         * configure.ac (PERL): New.
10433         * mkomp_h.pl: New file.
10434         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
10435         with templates.
10436         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
10438         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
10439         build directory.  Re-add -march=i486 hack.
10441         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
10442         (libgomp_link_flags): Remove.
10443         (libgomp_initialized): Remove.
10444         (libgomp_init): Don't protect from reinitialization.  Copy code
10445         from libstdc++ for getting the multilib set correctly.
10447 2005-05-05  Richard Henderson  <rth@redhat.com>
10449         * config/linux/alpha/futex.h: New file.
10450         * configure.tgt (alpha*-*-linux*): Use it.
10452         * config/posix/mutex.c: New file.
10453         * config/posix/sem.c: Use libgomp.h.
10455         * configure.tgt (x86_64-linux): Also test CC for -m32.
10456         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
10458         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
10459         after $gccpath.
10461         * Makefile.am (SUBDIRS): New.
10462         (libgomp_la_LDFLAGS): Add -lpthread.
10463         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
10464         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
10466         * libgomp_g.h: New file.
10467         * libgomp.h: Split out all public declarations to libgomp_g.h.
10468         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
10469         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
10470         * config/linux/sem.h: Likewise.
10471         * config/posix/sem.h: Likewise.
10473         * Makefile.am (AM_LDFLAGS): New.
10474         (libgomp_version_script): Split out from ...
10475         (libgomp_la_LDFLAGS): ... here.
10476         (libgomp_version_info): New.
10477         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
10478         (LIBGOMP_ENABLE): New.
10479         (LIBGOMP_CHECK_LINKER_FEATURES): New.
10480         (LIBGOMP_ENABLE_SYMVERS): New.
10481         * configure.ac (AC_INIT): Version 1.0.
10482         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
10483         (enable-linux-futex): Likewise.  Rename from enable-futex.
10484         (libtool_VERSION): New.
10485         (LIBGOMP_ENABLE_SYMVERS): Use it.
10486         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
10487         * Makefile.in, aclocal.m4, configure: Rebuild.
10489         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
10490         (gomp_mutex_unlock_slow): Fix typo.
10491         * config/linux/sem.c: Similarly.
10492         (gomp_sem_post_slow): Fix typo.
10493         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
10494         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
10495         [__PIC__] (sys_futex0): Don't use tmp output in asm.
10497         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
10498         (libgomp_la_LDFLAGS): Add top_srcdir to path.
10499         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
10500         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
10501         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
10502         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
10503         LDFLAGS.  Pull enable_futex check to top-level.
10504         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
10505         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
10507         First attempt at real configury.
10508         * Makefile, config.h: Remove file.
10509         * Makefile.am, Makefile.in: New file.
10510         * acinclude.m4 aclocal.m4: New file.
10511         * configure.ac, configure.tgt, configure: New file.
10513         * config/posix/lock.c: Rename from sys-lock.c.
10514         * config/posix/mutex.h: Rename from sys-mutex.h.
10515         * config/posix/sem.c: Rename from sys-sem.c.
10516         * config/posix/sem.h: Rename from sys-sem.h.
10517         * config/posix/proc.c: Rename from sys-proc.c.
10518         * config/posix/time.c: Rename from sys-proc.c.
10520         * config/linux/mutex.c: New file.
10521         * config/linux/mutex.h: New file.
10522         * config/linux/sem.c: New file.
10523         * config/linux/sem.h: New file.
10524         * config/linux/i486/futex.h: New file.
10525         * config/linux/x86_64/futex.h: New file.
10527 2005-05-04  Richard Henderson  <rth@redhat.com>
10529         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
10530         * libgomp.h: Declare them.
10531         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
10532         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
10534 2005-05-04  Richard Henderson  <rth@redhat.com>
10536         * libgomp-1 code drop
10538 2005-05-04  Richard Henderson  <rth@redhat.com>
10540         * iter.c (gomp_iter_static_next): Return tri-state on 0.
10541         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
10542         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
10543         (gomp_iter_static_next): Update.
10544         (gomp_ordered_static_next): Update.
10545         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
10546         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
10547         totally empty range.
10548         (gomp_loop_ordered_static_next): Refine test for calling
10549         gomp_ordered_static_next.
10550         * testsuite/ordered-1.c: Add case for more threads than iterations.
10552         * iter.c (gomp_iter_runtime_next_locked): Remove.
10553         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
10554         gomp_loop_guided_start, gomp_loop_ordered_static_start,
10555         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
10556         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
10557         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
10558         gomp_loop_ordered_guided_next): Downcase name, make static, add
10559         an external alias with the old name.
10560         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
10561         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
10562         switch and call one of the above static functions.
10563         * libgomp.h: Update.
10565         * work.c (gomp_work_share_start): Lock the mutex for !first too.
10566         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
10567         GOMP_loop_guided_start, GOMP_loop_runtime_start,
10568         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
10569         GOMP_loop_ordered_guided_start): Update to match.
10570         * sections.c (GOMP_sections_start): Likewise.
10571         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
10573         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
10574         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
10575         Use bounds check instead of modulus.
10576         (gomp_ordered_sync): Split out of GOMP_ordered_start.
10577         (gomp_ordered_last): Don't sync with ordered_owner here.
10578         (gomp_ordered_next): Likewise.
10579         (gomp_ordered_static_loop_next): Likewise.
10580         * loop.c, libgomp.h: Update to match.
10582         * libgomp.h (GOMP_barrier): Declare.
10584         * testsuite/barrier-1.c: New file.
10585         * testsuite/critical-1.c: New file.
10586         * testsuite/ordered-2.c: New file.
10587         * testsuite/ordered-1.c: New file.
10588         * testsuite/sections-1.c: New file.
10589         * testsuite/single-1.c: New file.
10590         * testsuite/Makefile (TESTS): Add them.
10592 2005-05-04  Richard Henderson  <rth@redhat.com>
10594         * libgomp.h (struct gomp_work_share): Add ordered_owner.
10595         * loop.c (GOMP_loop_static_start): If not the startup thread,
10596         acquire the mutex to wait for initialization complete.
10597         (GOMP_loop_ordered_static_start): Likewise.
10598         (GOMP_loop_ordered_runtime_start): Likewise.
10599         (GOMP_loop_ordered_static_first): Remove.
10600         (GOMP_loop_ordered_dynamic_first): Remove.
10601         (GOMP_loop_ordered_guided_first): Remove.
10602         (GOMP_loop_ordered_runtime_first): Remove.
10603         * ordered.c (gomp_ordered_loop_first): Post to own release when
10604         we're the first thread.
10605         (gomp_ordered_loop_last): Wait on release if not owner.
10606         (gomp_ordered_loop_next): Likewise.
10607         (gomp_ordered_static_loop_init): New.
10608         (gomp_ordered_static_loop_next): Use ordered_owner.
10609         (GOMP_ordered_start): Likewise.
10610         * work.c (gomp_new_work_share): Initialize ordered_owner.
10612 2005-05-03  Richard Henderson  <rth@redhat.com>
10614         * Makefile (OPT): New.
10615         (CFLAGS): Use it.
10617         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
10618         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
10619         * libgomp.h, libgomp.map, NOTES: Update to match.
10621         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
10622         Add initialized and thr members.
10623         (gomp_thread_start): Pause when initially spawned to wait for
10624         the whole team to be created.
10625         (gomp_team_start): Release team members at the end.
10627         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
10628         (f_foo_1): Use GOMP_loop_end.
10629         (f_foo_2): Use GOMP_loop_end_nowait.
10631         * testsuite/loop-2.c: New file.
10632         * testsuite/Makefile (TESTS): Add it.
10634 2005-05-03  Richard Henderson  <rth@redhat.com>
10636         * iter.c (gomp_iter_static_next): Fix overflow check typo.
10637         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
10638         * team.c (new_team): Initialize oldest_live_gen to 1 if no
10639         initial work_share.
10641         * testsuite/Makefile: New file.
10642         * testsuite/loop-1.c: New file.
10644 2005-05-03  Richard Henderson  <rth@redhat.com>
10646         Initial implementation and checkin.
10648 Copyright (C) 2005-2018 Free Software Foundation, Inc.
10650 Copying and distribution of this file, with or without modification,
10651 are permitted in any medium without royalty provided the copyright
10652 notice and this notice are preserved.