[Fortran] OpenACC – permit common blocks in some clauses
[official-gcc.git] / libgomp / ChangeLog
blob351df1153fdeec4e08fcff8e4762a0d06f410b08
1 2019-10-25  Cesar Philippidis <cesar@codesourcery.com>
2             Tobias Burnus  <tobias@codesourcery.com>
4         * testsuite/libgomp.oacc-fortran/common-block-1.f90: New test.
5         * testsuite/libgomp.oacc-fortran/common-block-2.f90: New test.
6         * testsuite/libgomp.oacc-fortran/common-block-3.f90: New test.
8 2019-10-14  Jakub Jelinek  <jakub@redhat.com>
10         PR libgomp/92081
11         * testsuite/libgomp.fortran/target-simd.f90: Iterate from 1 rather
12         than 0.
14 2019-10-11  Tobias Burnus  <tobias@codesourcery.com>
16         * testsuite/libgomp.fortran/use_device_addr-1.f90: New.
17         * testsuite/libgomp.fortran/use_device_addr-2.f90: New.
19 2019-10-09  Thomas Schwinge  <thomas@codesourcery.com>
21         PR middle-end/92036
22         * testsuite/libgomp.oacc-c-c++-common/data-firstprivate-1.c: New
23         file.
25 2019-10-09  Tobias Burnus  <tobias@codesourcery.com>
27         PR testsuite/91884
28         * testsuite/libgomp.fortran/fortran.exp: Conditionally
29         add -lquadmath.
30         * testsuite/libgomp.oacc-fortran/fortran.exp: Ditto.
32 2019-10-09  Jakub Jelinek  <jakub@redhat.com>
34         PR libgomp/92028
35         * target.c (gomp_map_vars_internal): Readd the previous
36         GOMP_MAP_USE_DEVICE_PTR handling code in the first loop,
37         though do that just in the !not_found_cnt case.
39 2019-10-08  Tobias Burnus  <tobias@codesourcery.com>
41         * gfortran.dg/gomp/target-simd.f90: New.
43 2019-10-02  Julian Brown  <julian@codesourcery.com>
44             Cesar Philippidis  <cesar@codesourcery.com>
46         * libgomp.h (OFFSET_INLINED, OFFSET_POINTER, OFFSET_STRUCT): Define.
47         * target.c (FIELD_TGT_EMPTY): Define.
48         (gomp_map_val): Use OFFSET_* macros instead of magic constants.  Write
49         as switch instead of list of ifs.
50         (gomp_map_vars_internal): Use OFFSET_* and FIELD_TGT_EMPTY macros.
52 2019-10-02  Andreas Tobler  <andreast@gcc.gnu.org>
54         * testsuite/libgomp.oacc-c-c++-common/loop-default.h: Remove alloca.h
55         include. Replace alloca () with __builtin_alloca ().
56         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Likewise.
58 2019-10-01  Jakub Jelinek  <jakub@redhat.com>
60         * configure.ac: Remove GCC_HEADER_STDINT(gstdint.h).
61         * libgomp.h: Include <stdint.h> instead of "gstdint.h".
62         * oacc-parallel.c: Don't include "libgomp_g.h".
63         * plugin/plugin-hsa.c: Include <stdint.h> instead of "gstdint.h".
64         * plugin/plugin-nvptx.c: Don't include "gstdint.h".
65         * aclocal.m4: Regenerated.
66         * config.h.in: Regenerated.
67         * configure: Regenerated.
68         * Makefile.in: Regenerated.
70 2019-09-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
72         * libgomp_g.h: Include stdint.h instead of gstdint.h.
74 2019-09-27  Maciej W. Rozycki  <macro@wdc.com>
76         * configure: Regenerate.
78 2019-09-13  Tobias Burnus  <tobias@codesourcery.com>
80         * plugin/plugin-hsa.c (hsa_warn, hsa_fatal, hsa_error): Ensure
81         string is initialized.
83 2019-09-06  Florian Weimer  <fweimer@redhat.com>
85         * configure: Regenerate.
87 2019-09-03  Chung-Lin Tang  <cltang@codesourcery.com>
89         PR other/79543
90         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Fix GNU ld --version
91         scanning to conform to the GNU Coding Standards.
92         * configure: Regenerate.
94 2019-08-28  Jakub Jelinek  <jakub@redhat.com>
96         PR libgomp/91530
97         * testsuite/libgomp.c/scan-21.c: New test.
98         * testsuite/libgomp.c/scan-22.c: New test.
100 2019-08-27  Jakub Jelinek  <jakub@redhat.com>
102         PR libgomp/91530
103         * testsuite/libgomp.c/scan-11.c: Add -msse2 option for sse2_runtime
104         targets.
105         * testsuite/libgomp.c/scan-12.c: Likewise.
106         * testsuite/libgomp.c/scan-13.c: Likewise.
107         * testsuite/libgomp.c/scan-14.c: Likewise.
108         * testsuite/libgomp.c/scan-15.c: Likewise.
109         * testsuite/libgomp.c/scan-16.c: Likewise.
110         * testsuite/libgomp.c/scan-17.c: Likewise.
111         * testsuite/libgomp.c/scan-18.c: Likewise.
112         * testsuite/libgomp.c/scan-19.c: Likewise.
113         * testsuite/libgomp.c/scan-20.c: Likewise.
114         * testsuite/libgomp.c++/scan-9.C: Likewise.
115         * testsuite/libgomp.c++/scan-10.C: Likewise.
116         * testsuite/libgomp.c++/scan-11.C: Likewise.
117         * testsuite/libgomp.c++/scan-12.C: Likewise.
118         * testsuite/libgomp.c++/scan-14.C: Likewise.
119         * testsuite/libgomp.c++/scan-15.C: Likewise.
120         * testsuite/libgomp.c++/scan-13.C: Likewise.  Use sse2_runtime
121         instead of i?86-*-* x86_64-*-* as target for scan-tree-dump-times.
122         * testsuite/libgomp.c++/scan-16.C: Likewise.
124 2019-08-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
126         PR fortran/91473
127         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add
128         -std=legacy so invalid code in the test case is accepted.
130 2019-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
132         PR fortran/91422
133         * testsuite/libgomp.oacc-fortran/routine-7.f90: Correct array
134         dimension.
136 2019-08-08  Jakub Jelinek  <jakub@redhat.com>
138         * target.c (gomp_map_vars_internal): For GOMP_MAP_USE_DEVICE_PTR
139         perform the lookup in the first loop only if !not_found_cnt, otherwise
140         perform lookups for it in the second loop guarded with
141         if (not_found_cnt || has_firstprivate).
142         * testsuite/libgomp.c/target-37.c: New test.
143         * testsuite/libgomp.c++/target-22.C: New test.
145 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
147         * testsuite/libgomp.c/target-18.c (struct S): New type.
148         (foo): Use use_device_addr clause instead of use_device_ptr clause
149         where required by OpenMP 5.0, add further tests for both use_device_ptr
150         and use_device_addr clauses.
151         * testsuite/libgomp.c++/target-9.C (struct S): New type.
152         (foo): Use use_device_addr clause instead of use_device_ptr clause
153         where required by OpenMP 5.0, add further tests for both use_device_ptr
154         and use_device_addr clauses.  Add t and u arguments.
155         (main): Adjust caller.
157 2019-08-06  Jakub Jelinek  <jakub@redhat.com>
159         * testsuite/libgomp.c++/loop-13.C: New test.
160         * testsuite/libgomp.c++/loop-14.C: New test.
161         * testsuite/libgomp.c++/loop-15.C: New test.
163 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
165         PR middle-end/91301
166         * testsuite/libgomp.c++/for-27.C: New test.
168 2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
170         * testsuite/libgomp.fortran/reduction4.f90: Update BOZ usage.
171         * testsuite/libgomp.fortran/reduction5.f90: Ditto.
173 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
175         * testsuite/libgomp.c-c++-common/loop-1.c: New test.
177 2019-07-08  Jakub Jelinek  <jakub@redhat.com>
179         * testsuite/libgomp.c++/scan-13.C: Replace xfail with target x86.
180         * testsuite/libgomp.c++/scan-16.C: Likewise.
182 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
184         * testsuite/libgomp.c/scan-19.c: New test.
185         * testsuite/libgomp.c/scan-20.c: New test.
187         * testsuite/libgomp.c/scan-11.c: New test.
188         * testsuite/libgomp.c/scan-12.c: New test.
189         * testsuite/libgomp.c/scan-13.c: New test.
190         * testsuite/libgomp.c/scan-14.c: New test.
191         * testsuite/libgomp.c/scan-15.c: New test.
192         * testsuite/libgomp.c/scan-16.c: New test.
193         * testsuite/libgomp.c/scan-17.c: New test.
194         * testsuite/libgomp.c/scan-18.c: New test.
195         * testsuite/libgomp.c++/scan-9.C: New test.
196         * testsuite/libgomp.c++/scan-10.C: New test.
197         * testsuite/libgomp.c++/scan-11.C: New test.
198         * testsuite/libgomp.c++/scan-12.C: New test.
199         * testsuite/libgomp.c++/scan-13.C: New test.
200         * testsuite/libgomp.c++/scan-14.C: New test.
201         * testsuite/libgomp.c++/scan-15.C: New test.
202         * testsuite/libgomp.c++/scan-16.C: New test.
204 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
206         * testsuite/libgomp.c/scan-9.c: New test.
207         * testsuite/libgomp.c/scan-10.c: New test.
209 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
211         * testsuite/libgomp.c++/scan-1.C: New test.
212         * testsuite/libgomp.c++/scan-2.C: New test.
213         * testsuite/libgomp.c++/scan-3.C: New test.
214         * testsuite/libgomp.c++/scan-4.C: New test.
215         * testsuite/libgomp.c++/scan-5.C: New test.
216         * testsuite/libgomp.c++/scan-6.C: New test.
217         * testsuite/libgomp.c++/scan-7.C: New test.
218         * testsuite/libgomp.c++/scan-8.C: New test.
219         * testsuite/libgomp.c/scan-1.c: New test.
220         * testsuite/libgomp.c/scan-2.c: New test.
221         * testsuite/libgomp.c/scan-3.c: New test.
222         * testsuite/libgomp.c/scan-4.c: New test.
223         * testsuite/libgomp.c/scan-5.c: New test.
224         * testsuite/libgomp.c/scan-6.c: New test.
225         * testsuite/libgomp.c/scan-7.c: New test.
226         * testsuite/libgomp.c/scan-8.c: New test.
228 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
230         * testsuite/libgomp.oacc-c++/firstprivate-mappings-1.C: New file.
231         * testsuite/libgomp.oacc-c-c++-common/firstprivate-mappings-1.c:
232         Likewise.
234         * testsuite/libgomp.fortran/allocatable3.f90: Add missing results
235         check.
237 2019-06-18  Cesar Philippidis  <cesar@codesourcery.com>
239         * testsuite/libgomp.oacc-fortran/allocatable-array-1.f90: New
240         file.
242 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
244         PR fortran/90743
245         * oacc-parallel.c (GOACC_parallel_keyed): Handle NULL mapping
246         case.
247         * testsuite/libgomp.fortran/target-allocatable-1-1.f90: New file.
248         * testsuite/libgomp.fortran/target-allocatable-1-2.f90: Likewise.
249         * testsuite/libgomp.oacc-fortran/allocatable-1-1.f90: Likewise.
250         * testsuite/libgomp.oacc-fortran/allocatable-1-2.f90: Likewise.
252         PR testsuite/90861
253         * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Update.
255         PR middle-end/90862
256         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Update.
258 2019-06-16  Tom de Vries  <tdevries@suse.de>
260         PR tree-optimization/89376
261         * testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test.
263 2019-06-15  Tom de Vries  <tdevries@suse.de>
265         PR tree-optimization/89713
266         * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Expect no bar.sync.
267         * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Same.
269 2019-06-15  Jakub Jelinek  <jakub@redhat.com>
271         PR middle-end/90779
272         * testsuite/libgomp.c/pr90779.c: New test.
273         * testsuite/libgomp.fortran/pr90779.f90: New test.
275 2019-06-15  Tom de Vries  <tdevries@suse.de>
277         PR tree-optimization/90009
278         * testsuite/libgomp.oacc-c-c++-common/pr90009.c: New test.
280 2019-06-13  Feng Xue  <fxue@os.amperecomputing.com>
282         PR tree-optimization/89713
283         * testsuite/libgomp.oacc-c-c++-common/pr84955-1.c: New test.
285 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
287         PR target/90811
288         * testsuite/libgomp.c/pr90811.c: New test.
290 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
292         * testsuite/libgomp.c++/lastprivate-conditional-1.C: New test.
293         * testsuite/libgomp.c++/lastprivate-conditional-2.C: New test.
295 2019-06-04  Jakub Jelinek  <jakub@redhat.com>
297         * testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c: New test.
298         * testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c: New test.
299         * testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c: New test.
300         * testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c: New test.
302 2019-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
304         * configure.ac: Call AX_COUNT_CPUS.
305         Substitute CPU_COUNT.
306         * testsuite/Makefile.am (check-am): Use CPU_COUNT as processor
307         count fallback.
308         * aclocal.m4: Regenerate.
309         * configure: Regenerate.
310         * Makefile.in, testsuite/Makefile.in: Regenerate.
312 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
314         * testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: Rename
315         to ...
316         * testsuite/libgomp.c-c++-common/lastprivate-conditional-4.c: ... this.
317         * testsuite/libgomp.c-c++-common/lastprivate-conditional-5.c: New test.
318         * testsuite/libgomp.c-c++-common/lastprivate-conditional-6.c: New test.
320 2019-05-27  Jakub Jelinek  <jakub@redhat.com>
322         * testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test.
324         * testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.
326         PR libgomp/90641
327         * work.c (gomp_init_work_share): Instead of aligning final ordered
328         value to multiples of long long alignment, align to that the
329         first part (ordered team ids) and if inline_ordered_team_ids
330         is not on a long long alignment boundary within the structure,
331         use __alignof__ (long long) - 1 pad size always.
332         * loop.c (GOMP_loop_start): Fix *mem computation if
333         inline_ordered_team_ids is not aligned on long long alignment boundary
334         within the structure.
335         * loop-ull.c (GOMP_loop_ull_start): Likewise.
336         * sections.c (GOMP_sections2_start): Likewise.
338 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
340         * testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test.
341         * testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test.
343         PR libgomp/90585
344         * plugin/plugin-hsa.c: Include gstdint.h.  Include inttypes.h only if
345         HAVE_INTTYPES_H is defined.
346         (print_uint64_t): New typedef.
347         (PRIu64): Define if HAVE_INTTYPES_H is not defined.
348         (print_kernel_dispatch, run_kernel): Use PRIu64 macro instead of
349         "lu", cast uint64_t HSA_DEBUG and fprintf arguments to print_uint64_t.
350         (release_kernel_dispatch): Likewise.  Cast shadow->debug to uintptr_t
351         before casting to void *.
352         * plugin/plugin-nvptx.c: Include gstdint.h instead of stdint.h.
353         * oacc-mem.c: Don't include config.h nor stdint.h.
354         * target.c: Don't include config.h.
355         * oacc-cuda.c: Likewise.
356         * oacc-host.c: Don't include stdint.h.
358 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
360         PR libgomp/90527
361         * alloc.c (_GNU_SOURCE): Define.
363 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
365         * acc_prof.h: New file.
366         * oacc-profiling.c: Likewise.
367         * Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES):
368         Add these, respectively.
369         * Makefile.in: Regenerate.
370         * env.c (initialize_env): Call goacc_profiling_initialize.
371         * oacc-plugin.c (GOMP_PLUGIN_goacc_thread)
372         (GOMP_PLUGIN_goacc_profiling_dispatch): New functions.
373         * oacc-plugin.h (GOMP_PLUGIN_goacc_thread)
374         (GOMP_PLUGIN_goacc_profiling_dispatch): Declare.
375         * libgomp.map (OACC_2.5.1): Add acc_prof_lookup,
376         acc_prof_register, acc_prof_unregister, and acc_register_library.
377         (GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and
378         GOMP_PLUGIN_goacc_thread.
379         * oacc-int.h (struct goacc_thread): Add prof_info, api_info,
380         prof_callbacks_enabled members.
381         (goacc_prof_enabled, goacc_profiling_initialize)
382         (_goacc_profiling_dispatch_p, _goacc_profiling_setup_p)
383         (goacc_profiling_dispatch): Declare.
384         (GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P)
385         (GOACC_PROFILING_SETUP_P): Define.
386         * oacc-async.c (acc_async_test, acc_async_test_all, acc_wait)
387         (acc_wait_async, acc_wait_all, acc_wait_all_async): Update for
388         OpenACC Profiling Interface.
389         * oacc-cuda.c (acc_get_current_cuda_device)
390         (acc_get_current_cuda_context, acc_get_cuda_stream)
391         (acc_set_cuda_stream): Likewise.
392         * oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device)
393         (acc_init, acc_set_device_type, acc_get_device_type)
394         (acc_get_device_num, goacc_lazy_initialize): Likewise.
395         * oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device)
396         (acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data)
397         (acc_unmap_data, present_create_copy, delete_copyout)
398         (update_dev_host): Likewise.
399         * oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start)
400         (GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait):
401         Likewise.
402         * plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free)
403         (GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
404         Likewise.
405         * libgomp.texi: Update.
406         * testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New
407         file.
408         * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
409         * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
410         Likewise.
411         * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
412         Likewise.
413         * testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
414         Likewise.
415         * testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
416         Likewise.
418 2019-05-13  Chung-Lin Tang <cltang@codesourcery.com>
420         * libgomp-plugin.h (struct goacc_asyncqueue): Declare.
421         (struct goacc_asyncqueue_list): Likewise.
422         (goacc_aq): Likewise.
423         (goacc_aq_list): Likewise.
424         (GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
425         (GOMP_OFFLOAD_openacc_async_test): Remove.
426         (GOMP_OFFLOAD_openacc_async_test_all): Remove.
427         (GOMP_OFFLOAD_openacc_async_wait): Remove.
428         (GOMP_OFFLOAD_openacc_async_wait_async): Remove.
429         (GOMP_OFFLOAD_openacc_async_wait_all): Remove.
430         (GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
431         (GOMP_OFFLOAD_openacc_async_set_async): Remove.
432         (GOMP_OFFLOAD_openacc_exec): Adjust declaration.
433         (GOMP_OFFLOAD_openacc_cuda_get_stream): Likewise.
434         (GOMP_OFFLOAD_openacc_cuda_set_stream): Likewise.
435         (GOMP_OFFLOAD_openacc_async_exec): Declare.
436         (GOMP_OFFLOAD_openacc_async_construct): Declare.
437         (GOMP_OFFLOAD_openacc_async_destruct): Declare.
438         (GOMP_OFFLOAD_openacc_async_test): Declare.
439         (GOMP_OFFLOAD_openacc_async_synchronize): Declare.
440         (GOMP_OFFLOAD_openacc_async_serialize): Declare.
441         (GOMP_OFFLOAD_openacc_async_queue_callback): Declare.
442         (GOMP_OFFLOAD_openacc_async_host2dev): Declare.
443         (GOMP_OFFLOAD_openacc_async_dev2host): Declare.
445         * libgomp.h (struct acc_dispatch_t): Define 'async' sub-struct.
446         (gomp_acc_insert_pointer): Adjust declaration.
447         (gomp_copy_host2dev): New declaration.
448         (gomp_copy_dev2host): Likewise.
449         (gomp_map_vars_async): Likewise.
450         (gomp_unmap_tgt): Likewise.
451         (gomp_unmap_vars_async): Likewise.
452         (gomp_fini_device): Likewise.
454         * oacc-async.c (get_goacc_thread): New function.
455         (get_goacc_thread_device): New function.
456         (lookup_goacc_asyncqueue): New function.
457         (get_goacc_asyncqueue): New function.
458         (acc_async_test): Adjust code to use new async design.
459         (acc_async_test_all): Likewise.
460         (acc_wait): Likewise.
461         (acc_wait_async): Likewise.
462         (acc_wait_all): Likewise.
463         (acc_wait_all_async): Likewise.
464         (goacc_async_free): New function.
465         (goacc_init_asyncqueues): Likewise.
466         (goacc_fini_asyncqueues): Likewise.
467         * oacc-cuda.c (acc_get_cuda_stream): Adjust code to use new async
468         design.
469         (acc_set_cuda_stream): Likewise.
470         * oacc-host.c (host_openacc_exec): Adjust parameters, remove 'async'.
471         (host_openacc_register_async_cleanup): Remove.
472         (host_openacc_async_exec): New function.
473         (host_openacc_async_test): Adjust parameters.
474         (host_openacc_async_test_all): Remove.
475         (host_openacc_async_wait): Remove.
476         (host_openacc_async_wait_async): Remove.
477         (host_openacc_async_wait_all): Remove.
478         (host_openacc_async_wait_all_async): Remove.
479         (host_openacc_async_set_async): Remove.
480         (host_openacc_async_synchronize): New function.
481         (host_openacc_async_serialize): New function.
482         (host_openacc_async_host2dev): New function.
483         (host_openacc_async_dev2host): New function.
484         (host_openacc_async_queue_callback): New function.
485         (host_openacc_async_construct): New function.
486         (host_openacc_async_destruct): New function.
487         (struct gomp_device_descr host_dispatch): Remove initialization of old
488         interface, add intialization of new async sub-struct.
489         * oacc-init.c (acc_shutdown_1): Adjust to use gomp_fini_device.
490         (goacc_attach_host_thread_to_device): Remove old async code usage.
491         * oacc-int.h (goacc_init_asyncqueues): New declaration.
492         (goacc_fini_asyncqueues): Likewise.
493         (goacc_async_copyout_unmap_vars): Likewise.
494         (goacc_async_free): Likewise.
495         (get_goacc_asyncqueue): Likewise.
496         (lookup_goacc_asyncqueue): Likewise.
497         * oacc-mem.c (memcpy_tofrom_device): Adjust code to use new async
498         design.
499         (present_create_copy): Adjust code to use new async design.
500         (delete_copyout): Likewise.
501         (update_dev_host): Likewise.
502         (gomp_acc_insert_pointer): Add async parameter, adjust code to use new
503         async design.
504         (gomp_acc_remove_pointer): Adjust code to use new async design.
505         * oacc-parallel.c (GOACC_parallel_keyed): Adjust code to use new async
506         design.
507         (GOACC_enter_exit_data): Likewise.
508         (goacc_wait): Likewise.
509         (GOACC_update): Likewise.
510         * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Change to assert fail
511         when called, warn as obsolete in comment.
512         * target.c (goacc_device_copy_async): New function.
513         (gomp_copy_host2dev): Remove 'static', add goacc_asyncqueue parameter,
514         add goacc_device_copy_async case.
515         (gomp_copy_dev2host): Likewise.
516         (gomp_map_vars_existing): Add goacc_asyncqueue parameter, adjust code.
517         (gomp_map_pointer): Likewise.
518         (gomp_map_fields_existing): Likewise.
519         (gomp_map_vars_internal): New always_inline function, renamed from
520         gomp_map_vars.
521         (gomp_map_vars): Implement by calling gomp_map_vars_internal.
522         (gomp_map_vars_async): Implement by calling gomp_map_vars_internal,
523         passing goacc_asyncqueue argument.
524         (gomp_unmap_tgt): Remove static, add attribute_hidden.
525         (gomp_unref_tgt): New function.
526         (gomp_unmap_vars_internal): New always_inline function, renamed from
527         gomp_unmap_vars.
528         (gomp_unmap_vars): Implement by calling gomp_unmap_vars_internal.
529         (gomp_unmap_vars_async): Implement by calling
530         gomp_unmap_vars_internal, passing goacc_asyncqueue argument.
531         (gomp_fini_device): New function.
532         (gomp_exit_data): Adjust gomp_copy_dev2host call.
533         (gomp_load_plugin_for_device): Remove old interface, adjust to load
534         new async interface.
535         (gomp_target_fini): Adjust code to call gomp_fini_device.
537         * plugin/plugin-nvptx.c (struct cuda_map): Remove.
538         (struct ptx_stream): Remove.
539         (struct nvptx_thread): Remove current_stream field.
540         (cuda_map_create): Remove.
541         (cuda_map_destroy): Remove.
542         (map_init): Remove.
543         (map_fini): Remove.
544         (map_pop): Remove.
545         (map_push): Remove.
546         (struct goacc_asyncqueue): Define.
547         (struct nvptx_callback): Define.
548         (struct ptx_free_block): Define.
549         (struct ptx_device): Remove null_stream, active_streams, async_streams,
550         stream_lock, and next fields.
551         (enum ptx_event_type): Remove.
552         (struct ptx_event): Remove.
553         (ptx_event_lock): Remove.
554         (ptx_events): Remove.
555         (init_streams_for_device): Remove.
556         (fini_streams_for_device): Remove.
557         (select_stream_for_async): Remove.
558         (nvptx_init): Remove ptx_events and ptx_event_lock references.
559         (nvptx_attach_host_thread_to_device): Remove CUDA_ERROR_NOT_PERMITTED
560         case.
561         (nvptx_open_device): Add free_blocks initialization, remove
562         init_streams_for_device call.
563         (nvptx_close_device): Remove fini_streams_for_device call, add
564         free_blocks destruct code.
565         (event_gc): Remove.
566         (event_add): Remove.
567         (nvptx_exec): Adjust parameters and code.
568         (nvptx_free): Likewise.
569         (nvptx_host2dev): Remove.
570         (nvptx_dev2host): Remove.
571         (nvptx_set_async): Remove.
572         (nvptx_async_test): Remove.
573         (nvptx_async_test_all): Remove.
574         (nvptx_wait): Remove.
575         (nvptx_wait_async): Remove.
576         (nvptx_wait_all): Remove.
577         (nvptx_wait_all_async): Remove.
578         (nvptx_get_cuda_stream): Remove.
579         (nvptx_set_cuda_stream): Remove.
580         (GOMP_OFFLOAD_alloc): Adjust code.
581         (GOMP_OFFLOAD_free): Likewise.
582         (GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
583         (GOMP_OFFLOAD_openacc_exec): Adjust parameters and code.
584         (GOMP_OFFLOAD_openacc_async_test_all): Remove.
585         (GOMP_OFFLOAD_openacc_async_wait): Remove.
586         (GOMP_OFFLOAD_openacc_async_wait_async): Remove.
587         (GOMP_OFFLOAD_openacc_async_wait_all): Remove.
588         (GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
589         (GOMP_OFFLOAD_openacc_async_set_async): Remove.
590         (cuda_free_argmem): New function.
591         (GOMP_OFFLOAD_openacc_async_exec): New plugin hook function.
592         (GOMP_OFFLOAD_openacc_create_thread_data): Adjust code.
593         (GOMP_OFFLOAD_openacc_cuda_get_stream): Adjust code.
594         (GOMP_OFFLOAD_openacc_cuda_set_stream): Adjust code.
595         (GOMP_OFFLOAD_openacc_async_construct): New plugin hook function.
596         (GOMP_OFFLOAD_openacc_async_destruct): New plugin hook function.
597         (GOMP_OFFLOAD_openacc_async_test): Remove and re-implement.
598         (GOMP_OFFLOAD_openacc_async_synchronize): New plugin hook function.
599         (GOMP_OFFLOAD_openacc_async_serialize): New plugin hook function.
600         (GOMP_OFFLOAD_openacc_async_queue_callback): New plugin hook function.
601         (cuda_callback_wrapper): New function.
602         (cuda_memcpy_sanity_check): New function.
603         (GOMP_OFFLOAD_host2dev): Remove and re-implement.
604         (GOMP_OFFLOAD_dev2host): Remove and re-implement.
605         (GOMP_OFFLOAD_openacc_async_host2dev): New plugin hook function.
606         (GOMP_OFFLOAD_openacc_async_dev2host): New plugin hook function.
608 2019-05-07  Thomas Schwinge  <thomas@codesourcery.com>
610         PR target/87835
611         * testsuite/libgomp.oacc-c-c++-common/pr87835.c: Update.
613 2019-05-06  Thomas Schwinge  <thomas@codesourcery.com>
615         * oacc-parallel.c: Add comments to legacy entry points (GCC 5).
617 2019-03-27  Kevin Buettner  <kevinb@redhat.com>
619         * team.c (gomp_team_start): Initialize pool->threads[0].
621 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
623         * testsuite/libgomp.oacc-c++/c++.exp: Specify
624         "-foffload=$offload_target".
625         * testsuite/libgomp.oacc-c/c.exp: Likewise.
626         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
627         * testsuite/lib/libgomp.exp
628         (check_effective_target_openacc_nvidia_accel_configured): Remove,
629         as (conceptually) merged into
630         check_effective_target_openacc_nvidia_accel_selected.  Adjust all
631         users.
633         * plugin/configfrag.ac: Populate and AC_SUBST offload_targets.
634         * testsuite/libgomp-test-support.exp.in: Adjust.
635         * testsuite/lib/libgomp.exp: Likewise.  Don't populate
636         openacc_device_types_s.
637         (offload_target_to_openacc_device_type): New proc.
638         * testsuite/libgomp.oacc-c++/c++.exp: Adjust.
639         * testsuite/libgomp.oacc-c/c.exp: Likewise.
640         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
641         * Makefile.in: Regenerate.
642         * configure: Likewise.
643         * testsuite/Makefile.in: Likewise.
645         * plugin/configfrag.ac: Populate and AC_SUBST offload_plugins
646         instead of offload_targets, and AC_DEFINE_UNQUOTED OFFLOAD_PLUGINS
647         instead of OFFLOAD_TARGETS.
648         * target.c (gomp_target_init): Adjust.
649         * testsuite/libgomp-test-support.exp.in: Likewise.
650         * testsuite/lib/libgomp.exp: Likewise.  Populate
651         openacc_device_types_s instead of offload_targets_s_openacc.
652         (check_effective_target_openacc_nvidia_accel_selected)
653         (check_effective_target_openacc_host_selected): Adjust.
654         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
655         * testsuite/libgomp.oacc-c/c.exp: Likewise.
656         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
657         * Makefile.in: Regenerate.
658         * config.h.in: Likewise.
659         * configure: Likewise.
660         * testsuite/Makefile.in: Likewise.
662         * testsuite/lib/libgomp.exp: Error out for unknown offload target.
663         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.  Report if
664         "offloading: supported, but hardware not accessible".
665         * testsuite/libgomp.oacc-c/c.exp: Likewise.
666         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
668 2019-02-19  Chung-Lin Tang <cltang@codesourcery.com>
670         PR c/87924
671         * oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to
672         goacc_wait().
673         (goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call
674         and related adjustment.
676 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
678         PR c++/88988
679         * testsuite/libgomp.c++/pr88988.C: New test.
681 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
683         PR middle-end/89002
684         * testsuite/libgomp.c/pr89002.c: New test.
686 2019-01-28  Richard Biener  <rguenther@suse.de>
688         PR testsuite/89064
689         PR tree-optimization/86865
690         * testsuite/libgomp.graphite/force-parallel-5.c: XFAIL.
692 2019-01-24  Tom de Vries  <tdevries@suse.de>
694         * plugin/plugin-nvptx.c (GOMP_OFFLOAD_fini_device): Free ptx_devices
695         once instantiated_devices drops to 0.
697 2019-01-23  Tom de Vries  <tdevries@suse.de>
699         PR target/PR88946
700         * plugin/plugin-nvptx.c (cuda_map_destroy): Use CUDA_CALL_NOCHECK for
701         cuMemFree.
702         (nvptx_exec): Don't call map_push if mapnum == 0.
703         * testsuite/libgomp.oacc-c-c++-common/pr88946.c: New test.
705 2019-01-23  Tom de Vries  <tdevries@suse.de>
707         PR target/88941
708         PR target/88939
709         * plugin/plugin-nvptx.c (cuda_map_destroy): Handle map->active case.
710         (map_fini): Remove "assert (!s->map->active)".
711         * testsuite/libgomp.oacc-c-c++-common/pr88941.c: New test.
713 2019-01-23  Tom de Vries  <tdevries@suse.de>
715         PR target/87835
716         * plugin/plugin-nvptx.c (map_push): Fix adding of allocated element.
717         * testsuite/libgomp.oacc-c-c++-common/pr87835.c: New test.
719 2019-01-15  Tom de Vries  <tdevries@suse.de>
721         PR target/80547
722         * testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c:
723         New test.
725 2019-01-12  Tom de Vries  <tdevries@suse.de>
727         * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: New test.
728         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: New test.
729         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: New test.
730         * testsuite/libgomp.oacc-fortran/gemm-2.f90: New test.
732 2019-01-12  Tom de Vries  <tdevries@suse.de>
734         * plugin/plugin-nvptx.c (nvptx_exec): Update error message.
736 2019-01-12  Tom de Vries  <tdevries@suse.de>
738         * testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c: New test.
739         * testsuite/libgomp.oacc-c-c++-common/vector-length-64-2.c: New test.
740         * testsuite/libgomp.oacc-c-c++-common/vector-length-64-3.c: New test.
742 2019-01-12  Tom de Vries  <tdevries@suse.de>
744         PR target/85486
745         * testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: New test.
746         * testsuite/libgomp.oacc-c-c++-common/pr85486.c: New test.
748 2019-01-12  Tom de Vries  <tdevries@suse.de>
750         PR target/85381
751         * testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: New test.
752         * testsuite/libgomp.oacc-c-c++-common/pr85381.c: New test.
754 2019-01-12  Tom de Vries  <tdevries@suse.de>
756         * testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: New test.
757         * testsuite/libgomp.oacc-fortran/gemm.f90: New test.
758         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-10.c: New test.
760 2019-01-12  Tom de Vries  <tdevries@suse.de>
762         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: New test.
763         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: New test.
764         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: New test.
766 2019-01-12  Tom de Vries  <tdevries@suse.de>
768         * plugin/plugin-nvptx.c (nvptx_exec): Update insufficient hardware
769         resources diagnostic.
771 2019-01-12  Tom de Vries  <tdevries@suse.de>
773         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect
774         vector length to be 128.
775         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector
776         length 2097152 to be reduced to 1024 instead of 32.
778 2019-01-11  Thomas Schwinge  <thomas@codesourcery.com>
779             James Norris  <jnorris@codesourcery.com>
781         * libgomp.texi: Better distinguish OpenACC and OpenMP "Runtime
782         Library Routines", and "Environment Variables".
784 2019-01-11  Tom de Vries  <tdevries@suse.de>
786         * plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and
787         num_workers 16.
789 2019-01-11  Tom de Vries  <tdevries@suse.de>
791         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Remove
792         -foffload=-w.
793         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Same.
794         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Same.
795         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Same.
796         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Same.
798 2019-01-11  Tom de Vries  <tdevries@suse.de>
800         * testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c: New
801         test.
803 2019-01-10  Nathan Sidwell  <nathan@acm.org>
804             Julian Brown  <julian@codesourcery.com>
806         PR lto/71959
807         * testsuite/libgomp.oacc-c++/pr71959-aux.cc: New.
808         * testsuite/libgomp.oacc-c++/pr71959.C: New.
810 2019-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
812         * config/rtems/bar.c: Include "../linux/bar.c" and delete copy
813         and paste code.
815 2019-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
817         * config/rtems/affinity-fmt.c: New file.  Include affinity-fmt.c,
818         undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
819         write.
821 2019-01-09  Tom de Vries  <tdevries@suse.de>
823         PR target/88756
824         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (ng, nw, vl): Use
825         #define instead of "const int".
826         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c (ng, nw, vl): Same.
827         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c (ng, nw, vl): Same.
828         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (ng, nw, vl): Same.
829         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c (ng, nw, vl): Same.
831 2019-01-09  Tom de Vries  <tdevries@suse.de>
833         * plugin/plugin-nvptx.c (nvptx_exec): Make sure to launch with at least
834         one worker.
836 2019-01-07  Tom de Vries  <tdevries@suse.de>
838         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Fix
839         GOMP_OPENACC_DIM argument.
841 2019-01-03  Tom de Vries  <tdevries@suse.de>
843         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: New test.
844         * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: New test.
846 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
848         Update copyright years.
850 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
852         * libgomp.texi: Bump @copying's copyright year.
854 2018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
856         * oacc-parallel.c (GOACC_parallel_keyed, GOACC_parallel)
857         (GOACC_data_start, GOACC_enter_exit_data, GOACC_update)
858         (GOACC_declare): Redefine the "device" argument to "flags".
860 2018-12-28  Thomas Schwinge  <thomas@codesourcery.com>
861             Cesar Philippidis  <cesar@codesourcery.com>
863         * target.c (struct gomp_coalesce_chunk): New structure.
864         (struct gomp_coalesce_buf): Update the chunks member to use that
865         type.  Adjust all users.
867 2018-12-19  Tom de Vries  <tdevries@suse.de>
869         * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: New test.
870         * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: New test.
871         * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: New test.
873 2018-12-19  Tom de Vries  <tdevries@suse.de>
875         * testsuite/lib/libgomp.exp: Add load_lib of scanoffloadrtl.exp.
876         * testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c: Move from
877         gcc/testsuite/gcc.dg/goacc.
878         * testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c: Same.
880 2018-12-14  Thomas Schwinge  <thomas@codesourcery.com>
881             Chung-Lin Tang  <cltang@codesourcery.com>
883         * oacc-mem.c (acc_present_or_create): Remove definition and change
884         to alias of acc_create.
885         (acc_present_or_copyin): Remove definition and change to alias of
886         acc_copyin.
887         * oacc-parallel.c (GOACC_enter_exit_data): Call acc_create instead
888         of acc_present_or_create.
889         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Remove.
890         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
891         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
892         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
893         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
894         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
895         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
896         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
897         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
898         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
899         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
900         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
901         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
902         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
903         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
904         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
906 2018-12-14  Thomas Schwinge  <thomas@codesourcery.com>
908         PR libgomp/88495
909         * plugin/plugin-nvptx.c (nvptx_wait_async): Don't refuse
910         "identical parameters".
911         * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Update.
912         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Remove.
914         PR libgomp/88484
915         * oacc-parallel.c (GOACC_wait): Correct handling for "async >= 0".
916         * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: New file.
918         PR libgomp/88407
919         * plugin/plugin-nvptx.c (nvptx_async_test, nvptx_wait)
920         (nvptx_wait_async): Unseen async-argument is a no-op.
921         * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Update.
922         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Likewise.
923         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
924         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
925         * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
926         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Merge into...
927         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: ... this.  Update.
928         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Merge into...
929         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: ... this.  Update
931         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Revise.
932         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
934 2018-12-14  Chung-Lin Tang  <cltang@codesourcery.com>
936         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust.
937         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
938         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
940 2018-12-14  Thomas Schwinge  <thomas@codesourcery.com>
942         PR libgomp/88370
943         * libgomp.texi (acc_get_current_cuda_context, acc_get_cuda_stream)
944         (acc_set_cuda_stream): Clarify.
945         * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
946         "async_valid_p".
947         * plugin/plugin-nvptx.c (nvptx_set_cuda_stream): Refuse "async ==
948         acc_async_sync".
949         * testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c: New file.
950         * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Likewise.
951         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Update.
952         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
954 2018-12-14  Tom de Vries  <tdevries@suse.de>
956         * testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c: New test.
957         * testsuite/libgomp.c-c++-common/function-not-offloaded.c: New test.
958         * testsuite/libgomp.c-c++-common/variable-not-offloaded.c: New test.
959         * testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: New test.
960         * testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c: New test.
962 2018-12-13  Tom de Vries  <tdevries@suse.de>
964         * affinity-fmt.c (gomp_print_string): New function, factored out of ...
965         (omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
966         * fortran.c (omp_display_affinity_): ... here.
967         * libgomp.h (gomp_print_string): Declare.
968         * config/nvptx/affinity-fmt.c: New file.  Include affinity-fmt.c,
969         undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
970         write.
972 2018-12-13  Jakub Jelinek  <jakub@redhat.com>
974         PR libgomp/88460
975         * testsuite/libgomp.c++/for-24.C (results): Include it in
976         omp declare target region.
977         (main): Use map (always, tofrom: results) instead of
978         map (tofrom: results).
980 2018-12-12  Jakub Jelinek  <jakub@redhat.com>
982         PR fortran/88463
983         * testsuite/libgomp.fortran/pr88463-1.f90: New test.
984         * testsuite/libgomp.fortran/pr88463-2.f90: New test.
986         * testsuite/libgomp.c-c++-common/for-16.c: New test.
988 2018-12-12  Andreas Schwab  <schwab@suse.de>
990         * config/linux/ia64/futex.h (sys_futex0): Don't mark r12 as
991         clobbered.
993 2018-12-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
995         PR fortran/88411
996         * testsuite/libgomp.fortran/async_io_8.f90: New test.
998 2018-12-09  Thomas Schwinge  <thomas@codesourcery.com>
999             Jakub Jelinek  <jakub@redhat.com>
1001         * target.c (gomp_map_vars): Call gomp_copy_host2dev instead of
1002         devicep->host2dev_func.
1004 2018-12-08  Jakub Jelinek  <jakub@redhat.com>
1006         PR libgomp/87995
1007         * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require
1008         tls_runtime effective target.
1009         (t): New threadprivate variable.
1010         (main): Set t in threads which execute iterations of the worksharing
1011         loop.  Propagate that to the task after the loop and don't abort
1012         if the current taskgroup hasn't been cancelled.
1014 2018-12-02  Jakub Jelinek  <jakub@redhat.com>
1016         * testsuite/libgomp.c/task-reduction-3.c: New test.
1018         * testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c: New test.
1020 2018-11-30  Cesar Philippidis  <cesar@codesourcery.com>
1022         PR libgomp/88288
1023         * oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs.
1024         * testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test.
1026 2018-11-30  Thomas Schwinge  <thomas@codesourcery.com>
1028         * testsuite/libgomp.oacc-fortran/lib-16-2.f90: New file.
1030 2018-10-19  Richard Biener  <rguenther@suse.de>
1032         PR tree-optimization/88182
1033         * testsuite/libgomp.c++/pr88182.C: Move to g++.dg/gomp.
1035 2018-11-26  Jakub Jelinek  <jakub@redhat.com>
1037         * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Drop dejagnu.
1038         (RUNTEST): Don't define.
1039         (RUNTESTDEFAULTFLAGS): Add.
1040         (check-DEJAGNU, site.exp, distclean-DEJAGNU): New goals.
1041         (distclean-am): Depend on distclean-DEJAGNU.
1042         (check-am): If -j% option is present in MFLAGS and if
1043         `getconf _NPROCESSORS_ONLN` is more than 8, export OMP_NUM_THREADS=8.
1044         (.PHONY): Add check-DEJAGNU and distclean-DEJAGNU.
1045         * testsuite/Makefile.in: Regenerated.
1047 2018-11-26  Richard Biener  <rguenther@suse.de>
1049         PR tree-optimization/88182
1050         * testsuite/libgomp.c++/pr88182.C: New testcase.
1052 2018-11-20  Jakub Jelinek  <jakub@redhat.com>
1054         PR bootstrap/88106
1055         * config/mingw32/affinity-fmt.c: New file.
1057 2018-11-09  Jakub Jelinek  <jakub@redhat.com>
1059         * affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H.
1060         (gomp_display_affinity): Use __builtin_choose_expr to handle
1061         properly handle argument having integral, or pointer or some other
1062         type.  If inttypes.h is available and PRIx64 is defined, use PRIx64
1063         with uint64_t type instead of %llx and unsigned long long.
1065         * testsuite/libgomp.c-c++-common/task-reduction-13.c: New test.
1066         * testsuite/libgomp.c-c++-common/task-reduction-14.c: New test.
1068 2018-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1070         * affinity.c: Include <string.h>, <stdio.h>.
1071         (gomp_display_affinity_place): Remove cpusetp.
1072         * teams.c: Include <limits.h>.
1074 2018-11-08  Jakub Jelinek  <jakub@redhat.com>
1076         * testsuite/libgomp.c-c++-common/task-reduction-8.c (bar): Add
1077         in_reduction clause for s[0].
1079         * affinity.c (gomp_display_affinity_place): New function.
1080         * affinity-fmt.c: New file.
1081         * alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
1082         * config/linux/affinity.c (gomp_display_affinity_place): New function.
1083         * config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
1084         Move these functions to ...
1085         * config/nvptx/teams.c: ... here.  New file.
1086         * config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
1087         New functions.
1088         * config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
1089         functions.
1090         * configure.ac: Check for aligned_alloc, posix_memalign, memalign
1091         and _aligned_malloc.
1092         (HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
1093         * configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
1094         * env.c (gomp_display_affinity_var, gomp_affinity_format_var,
1095         gomp_affinity_format_len): New variables.
1096         (parse_schedule): Parse monotonic and nonmonotonic modifiers in
1097         OMP_SCHEDULE variable.  Set GFS_MONOTONIC for monotonic schedules.
1098         (handle_omp_display_env): Display monotonic/nonmonotonic schedule
1099         modifiers.  Display (non-default) chunk sizes.  Print
1100         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
1101         (initialize_env): Don't call pthread_attr_setdetachstate.  Handle
1102         OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
1103         * fortran.c: Include stdio.h and string.h.
1104         (omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
1105         (omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
1106         (omp_set_affinity_format_, omp_get_affinity_format_,
1107         omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
1108         omp_pause_resource_all_): New functions.
1109         * icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
1110         switch.
1111         * icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
1112         functions to ...
1113         * teams.c: ... here.  New file.
1114         * libgomp_g.h: Include gstdint.h.
1115         (GOMP_loop_nonmonotonic_runtime_start,
1116         GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
1117         GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
1118         GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
1119         GOMP_parallel_loop_nonmonotonic_runtime,
1120         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
1121         GOMP_loop_ull_nonmonotonic_runtime_start,
1122         GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
1123         GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
1124         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
1125         GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
1126         GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
1127         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
1128         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
1129         GOMP_teams_reg): Declare.
1130         * libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
1131         gomp_aligned_alloc uses fallback implementation.
1132         (gomp_aligned_alloc, gomp_aligned_free): Declare.
1133         (enum gomp_schedule_type): Add GFS_MONOTONIC.
1134         (struct gomp_doacross_work_share): Add extra field.
1135         (struct gomp_work_share): Add task_reductions field.
1136         (struct gomp_taskgroup): Add workshare and reductions fields.
1137         (GOMP_NEEDS_THREAD_HANDLE): Define if needed.
1138         (gomp_thread_handle): New typedef.
1139         (gomp_display_affinity_place, gomp_set_affinity_format,
1140         gomp_display_string, gomp_display_affinity,
1141         gomp_display_affinity_thread): Declare.
1142         (gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
1143         (gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
1144         gomp_workshare_task_reduction_register): Declare.
1145         (gomp_team_start): Add taskgroup argument.
1146         (gomp_pause_host): Declare.
1147         (gomp_init_work_share, gomp_work_share_start): Change bool argument
1148         to size_t.
1149         (gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
1150         * libgomp.map (GOMP_5.0): Export GOMP_loop_start,
1151         GOMP_loop_ordered_start, GOMP_loop_doacross_start,
1152         GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
1153         GOMP_loop_ull_doacross_start,
1154         GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
1155         GOMP_loop_maybe_nonmonotonic_runtime_next,
1156         GOMP_loop_maybe_nonmonotonic_runtime_start,
1157         GOMP_loop_nonmonotonic_runtime_next,
1158         GOMP_loop_nonmonotonic_runtime_start,
1159         GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
1160         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
1161         GOMP_loop_ull_nonmonotonic_runtime_next,
1162         GOMP_loop_ull_nonmonotonic_runtime_start,
1163         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
1164         GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
1165         GOMP_taskgroup_reduction_register,
1166         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
1167         GOMP_teams_reg and GOMP_taskwait_depend.
1168         (OMP_5.0): Export omp_pause_resource{,_all}{,_},
1169         omp_{capture,display}_affinity{,_}, and
1170         omp_[gs]et_affinity_format{,_}.
1171         * loop.c: Include string.h.
1172         (GOMP_loop_runtime_next): Add ialias.
1173         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
1174         (gomp_loop_static_start, gomp_loop_dynamic_start,
1175         gomp_loop_guided_start, gomp_loop_ordered_static_start,
1176         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
1177         gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
1178         gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
1179         or gomp_doacross_init callers.
1180         (gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
1181         GOMP_loop_doacross_start): New functions.
1182         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
1183         GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
1184         Mask off GFS_MONOTONIC bit.
1185         (GOMP_loop_maybe_nonmonotonic_runtime_next,
1186         GOMP_loop_maybe_nonmonotonic_runtime_start,
1187         GOMP_loop_nonmonotonic_runtime_next,
1188         GOMP_loop_nonmonotonic_runtime_start,
1189         GOMP_parallel_loop_maybe_nonmonotonic_runtime,
1190         GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
1191         functions.
1192         (gomp_parallel_loop_start): Pass NULL as taskgroup to
1193         gomp_team_start.
1194         * loop_ull.c: Include string.h.
1195         (GOMP_loop_ull_runtime_next): Add ialias.
1196         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
1197         (gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
1198         gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
1199         gomp_loop_ull_ordered_dynamic_start,
1200         gomp_loop_ull_ordered_guided_start,
1201         gomp_loop_ull_doacross_static_start,
1202         gomp_loop_ull_doacross_dynamic_start,
1203         gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
1204         and gomp_doacross_ull_init callers.
1205         (gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
1206         GOMP_loop_ull_doacross_start): New functions.
1207         (GOMP_loop_ull_runtime_start,
1208         GOMP_loop_ull_ordered_runtime_start,
1209         GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
1210         (GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
1211         GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
1212         GOMP_loop_ull_nonmonotonic_runtime_next,
1213         GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
1214         * Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
1215         * omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
1216         (omp_pause_resource_t, omp_depend_t): New typedefs.
1217         (enum omp_lock_hint_t): Renamed to ...
1218         (enum omp_sync_hint_t): ... this.  Define omp_sync_hint_*
1219         enumerators using numbers and omp_lock_hint_* as their aliases.
1220         (omp_lock_hint_t): New typedef.  Rename to ...
1221         (omp_sync_hint_t): ... this.
1222         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
1223         omp_sync_hint_t instead of omp_lock_hint_t.
1224         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
1225         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
1226         Declare.
1227         (omp_target_is_present, omp_target_disassociate_ptr):
1228         Change first argument from void * to const void *.
1229         (omp_target_memcpy, omp_target_memcpy_rect): Change second argument
1230         from void * to const void *.
1231         (omp_target_associate_ptr): Change first and second arguments from
1232         void * to const void *.
1233         * omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
1234         omp_pause_hard): New parameters.
1235         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
1236         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
1237         New interfaces.
1238         * omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
1239         omp_pause_hard): New parameters.
1240         (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
1241         omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
1242         New externals.
1243         * ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
1244         EXTRA argument.  If not needed to prepare array, if extra is 0,
1245         clear ws->doacross, otherwise allocate just doacross structure and
1246         extra payload.  If array is needed, allocate also extra payload.
1247         (GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
1248         GOMP_doacross_ull_wait): Handle doacross->array == NULL like
1249         doacross == NULL.
1250         * parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
1251         gomp_team_start.
1252         (GOMP_parallel): Likewise.  Formatting fix.
1253         (GOMP_parallel_reductions): New function.
1254         (GOMP_cancellation_point): If taskgroup has workshare
1255         flag set, check cancelled of prev taskgroup if any.
1256         (GOMP_cancel): If taskgroup has workshare flag set, set cancelled
1257         on prev taskgroup if any.
1258         * sections.c: Include string.h.
1259         (GOMP_taskgroup_reduction_register): Add ialias_redirect.
1260         (GOMP_sections_start): Adjust gomp_work_share_start caller.
1261         (GOMP_sections2_start): New function.
1262         (GOMP_parallel_sections_start, GOMP_parallel_sections):
1263         Pass NULL as taskgroup to gomp_team_start.
1264         * single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
1265         gomp_work_share_start callers.
1266         * target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
1267         If taskgroup has workshare flag set, check cancelled on prev
1268         taskgroup if any.  Guard all cancellation tests with
1269         gomp_cancel_var test.
1270         (omp_target_is_present, omp_target_disassociate_ptr):
1271         Change ptr argument from void * to const void *.
1272         (omp_target_memcpy): Change src argument from void * to const void *.
1273         (omp_target_memcpy_rect): Likewise.
1274         (omp_target_memcpy_rect_worker): Likewise.  Use const char * casts
1275         instead of char * where needed.
1276         (omp_target_associate_ptr): Change host_ptr and device_ptr arguments
1277         from void * to const void *.
1278         (omp_pause_resource, omp_pause_resource_all): New functions.
1279         * task.c (gomp_task_handle_depend): Handle new depend array format
1280         in addition to the old.  Handle mutexinoutset kinds the same as
1281         inout for now, handle unspecified kinds.
1282         (gomp_create_target_task): If taskgroup has workshare flag set, check
1283         cancelled on prev taskgroup if any.  Guard all cancellation tests with
1284         gomp_cancel_var test.  Handle new depend array format count in
1285         addition to the old.
1286         (GOMP_task): Likewise.  Adjust function comment.
1287         (gomp_task_run_pre): If taskgroup has workshare flag set, check
1288         cancelled on prev taskgroup if any.  Guard all cancellation tests with
1289         gomp_cancel_var test.
1290         (GOMP_taskwait_depend): New function.
1291         (gomp_task_maybe_wait_for_dependencies): Handle new depend array
1292         format in addition to the old.  Handle mutexinoutset kinds the same as
1293         inout for now, handle unspecified kinds.  Fix a function comment typo.
1294         (gomp_taskgroup_init): New function.
1295         (GOMP_taskgroup_start): Use it.
1296         (gomp_reduction_register, gomp_create_artificial_team,
1297         GOMP_taskgroup_reduction_register,
1298         GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
1299         gomp_parallel_reduction_register,
1300         gomp_workshare_task_reduction_register,
1301         gomp_workshare_taskgroup_start,
1302         GOMP_workshare_task_reduction_unregister): New functions.
1303         * taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
1304         check cancelled on prev taskgroup if any.  Guard all cancellation
1305         tests with gomp_cancel_var test.  Handle GOMP_TASK_FLAG_REDUCTION flag
1306         by calling GOMP_taskgroup_reduction_register.
1307         * team.c (gomp_thread_attr): Remove comment.
1308         (struct gomp_thread_start_data): Add handle field.
1309         (gomp_thread_start): Call pthread_detach.
1310         (gomp_new_team): Adjust gomp_init_work_share caller.
1311         (gomp_free_pool_helper): Call pthread_detach.
1312         (gomp_team_start): Add taskgroup argument, initialize implicit
1313         tasks' taskgroup field to that.  Don't call
1314         pthread_attr_setdetachstate.  Handle OMP_DISPLAY_AFFINITY env var.
1315         (gomp_team_end): Determine nesting by thr->ts.level != 0
1316         rather than thr->ts.team != NULL.
1317         (gomp_pause_pool_helper, gomp_pause_host): New functions.
1318         * work.c (alloc_work_share): Use gomp_aligned_alloc instead of
1319         gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
1320         (gomp_init_work_share): Change ORDERED argument from bool to size_t,
1321         if more than 1 allocate also extra payload at the end of array.  Never
1322         keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
1323         (gomp_work_share_start): Change ORDERED argument from bool to size_t,
1324         return true instead of ws.
1325         * Makefile.in: Regenerated.
1326         * configure: Regenerated.
1327         * config.h.in: Regenerated.
1328         * testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
1329         in some cases.
1330         * testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
1331         * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
1332         * testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
1333         * testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
1334         * testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
1335         * testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
1336         * testsuite/libgomp.c-c++-common/depobj-1.c: New test.
1337         * testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
1338         * testsuite/libgomp.c-c++-common/for-10.c: New test.
1339         * testsuite/libgomp.c-c++-common/for-11.c: New test.
1340         * testsuite/libgomp.c-c++-common/for-12.c: New test.
1341         * testsuite/libgomp.c-c++-common/for-13.c: New test.
1342         * testsuite/libgomp.c-c++-common/for-14.c: New test.
1343         * testsuite/libgomp.c-c++-common/for-15.c: New test.
1344         * testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
1345         define a different N(test), don't define N(f0) to N(f14), but instead
1346         define N(f20) to N(f34) using != comparisons.
1347         * testsuite/libgomp.c-c++-common/for-7.c: New test.
1348         * testsuite/libgomp.c-c++-common/for-8.c: New test.
1349         * testsuite/libgomp.c-c++-common/for-9.c: New test.
1350         * testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
1351         * testsuite/libgomp.c-c++-common/pause-1.c: New test.
1352         * testsuite/libgomp.c-c++-common/pause-2.c: New test.
1353         * testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
1354         * testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
1355         * testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
1356         * testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
1357         * testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
1358         * testsuite/libgomp.c-c++-common/simd-1.c: New test.
1359         * testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
1360         * testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
1361         * testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
1362         * testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
1363         * testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
1364         * testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
1365         * testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
1366         * testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
1367         * testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
1368         * testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
1369         * testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
1370         * testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
1371         * testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
1372         * testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
1373         * testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
1374         * testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
1375         * testsuite/libgomp.c++/depend-1.C: New test.
1376         * testsuite/libgomp.c++/depend-iterator-1.C: New test.
1377         * testsuite/libgomp.c++/depobj-1.C: New test.
1378         * testsuite/libgomp.c++/for-16.C: New test.
1379         * testsuite/libgomp.c++/for-21.C: New test.
1380         * testsuite/libgomp.c++/for-22.C: New test.
1381         * testsuite/libgomp.c++/for-23.C: New test.
1382         * testsuite/libgomp.c++/for-24.C: New test.
1383         * testsuite/libgomp.c++/for-25.C: New test.
1384         * testsuite/libgomp.c++/for-26.C: New test.
1385         * testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
1386         * testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
1387         * testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
1388         * testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
1389         * testsuite/libgomp.c++/task-reduction-10.C: New test.
1390         * testsuite/libgomp.c++/task-reduction-11.C: New test.
1391         * testsuite/libgomp.c++/task-reduction-12.C: New test.
1392         * testsuite/libgomp.c++/task-reduction-13.C: New test.
1393         * testsuite/libgomp.c++/task-reduction-14.C: New test.
1394         * testsuite/libgomp.c++/task-reduction-15.C: New test.
1395         * testsuite/libgomp.c++/task-reduction-16.C: New test.
1396         * testsuite/libgomp.c++/task-reduction-17.C: New test.
1397         * testsuite/libgomp.c++/task-reduction-18.C: New test.
1398         * testsuite/libgomp.c++/task-reduction-19.C: New test.
1399         * testsuite/libgomp.c/task-reduction-1.c: New test.
1400         * testsuite/libgomp.c++/task-reduction-1.C: New test.
1401         * testsuite/libgomp.c/task-reduction-2.c: New test.
1402         * testsuite/libgomp.c++/task-reduction-2.C: New test.
1403         * testsuite/libgomp.c++/task-reduction-3.C: New test.
1404         * testsuite/libgomp.c++/task-reduction-4.C: New test.
1405         * testsuite/libgomp.c++/task-reduction-5.C: New test.
1406         * testsuite/libgomp.c++/task-reduction-6.C: New test.
1407         * testsuite/libgomp.c++/task-reduction-7.C: New test.
1408         * testsuite/libgomp.c++/task-reduction-8.C: New test.
1409         * testsuite/libgomp.c++/task-reduction-9.C: New test.
1410         * testsuite/libgomp.c/teams-1.c: New test.
1411         * testsuite/libgomp.c/teams-2.c: New test.
1412         * testsuite/libgomp.c/thread-limit-4.c: New test.
1413         * testsuite/libgomp.c/thread-limit-5.c: New test.
1414         * testsuite/libgomp.fortran/display-affinity-1.f90: New test.
1416 2018-11-06  Chung-Lin Tang <cltang@codesourcery.com>
1418         * oacc-mem.c (memcpy_tofrom_device): New function, combined from
1419         acc_memcpy_to/from_device functions, now with async parameter.
1420         (acc_memcpy_to_device): Modify to use memcpy_tofrom_device.
1421         (acc_memcpy_from_device): Likewise.
1422         (acc_memcpy_to_device_async): New API function.
1423         (acc_memcpy_from_device_async): Likewise.
1424         (present_create_copy): Add async parameter and async setting/unsetting.
1425         (acc_create): Adjust present_create_copy call.
1426         (acc_copyin): Likewise.
1427         (acc_present_or_create): Likewise.
1428         (acc_present_or_copyin): Likewise.
1429         (acc_create_async): New API function.
1430         (acc_copyin_async): New API function.
1431         (delete_copyout): Add async parameter and async setting/unsetting.
1432         (acc_delete): Adjust delete_copyout call.
1433         (acc_copyout): Likewise.
1434         (acc_delete_async): New API function.
1435         (acc_copyout_async): Likewise.
1436         (update_dev_host): Add async parameter and async setting/unsetting.
1437         (acc_update_device): Adjust update_dev_host call.
1438         (acc_update_self): Likewise.
1439         (acc_update_device_async): New API function.
1440         (acc_update_self_async): Likewise.
1441         * openacc.h (acc_copyin_async): Declare new API function.
1442         (acc_create_async): Likewise.
1443         (acc_copyout_async): Likewise.
1444         (acc_delete_async): Likewise.
1445         (acc_update_device_async): Likewise.
1446         (acc_update_self_async): Likewise.
1447         (acc_memcpy_to_device_async): Likewise.
1448         (acc_memcpy_from_device_async): Likewise.
1449         * openacc_lib.h (acc_copyin_async_32_h): New subroutine.
1450         (acc_copyin_async_64_h): New subroutine.
1451         (acc_copyin_async_array_h): New subroutine.
1452         (acc_create_async_32_h): New subroutine.
1453         (acc_create_async_64_h): New subroutine.
1454         (acc_create_async_array_h): New subroutine.
1455         (acc_copyout_async_32_h): New subroutine.
1456         (acc_copyout_async_64_h): New subroutine.
1457         (acc_copyout_async_array_h): New subroutine.
1458         (acc_delete_async_32_h): New subroutine.
1459         (acc_delete_async_64_h): New subroutine.
1460         (acc_delete_async_array_h): New subroutine.
1461         (acc_update_device_async_32_h): New subroutine.
1462         (acc_update_device_async_64_h): New subroutine.
1463         (acc_update_device_async_array_h): New subroutine.
1464         (acc_update_self_async_32_h): New subroutine.
1465         (acc_update_self_async_64_h): New subroutine.
1466         (acc_update_self_async_array_h): New subroutine.
1467         * openacc.f90 (acc_copyin_async_32_h): New subroutine.
1468         (acc_copyin_async_64_h): New subroutine.
1469         (acc_copyin_async_array_h): New subroutine.
1470         (acc_create_async_32_h): New subroutine.
1471         (acc_create_async_64_h): New subroutine.
1472         (acc_create_async_array_h): New subroutine.
1473         (acc_copyout_async_32_h): New subroutine.
1474         (acc_copyout_async_64_h): New subroutine.
1475         (acc_copyout_async_array_h): New subroutine.
1476         (acc_delete_async_32_h): New subroutine.
1477         (acc_delete_async_64_h): New subroutine.
1478         (acc_delete_async_array_h): New subroutine.
1479         (acc_update_device_async_32_h): New subroutine.
1480         (acc_update_device_async_64_h): New subroutine.
1481         (acc_update_device_async_array_h): New subroutine.
1482         (acc_update_self_async_32_h): New subroutine.
1483         (acc_update_self_async_64_h): New subroutine.
1484         (acc_update_self_async_array_h): New subroutine.
1485         * libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*,
1486         acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*,
1487         acc_delete_finalize_async*, acc_memcpy_from_device_async*,
1488         acc_memcpy_to_device_async*, acc_update_device_async*, and
1489         acc_update_self_async* entries.
1490         * testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test.
1491         * testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test.
1492         * testsuite/libgomp.oacc-fortran/lib-16.f90: New test.
1494 2018-10-31  Joseph Myers  <joseph@codesourcery.com>
1496         PR bootstrap/82856
1497         * Makefile.am: Include multilib.am
1498         (AUTOMAKE_OPTIONS): Add info-in-builddir.
1499         (CLEANFILES): Remove libgomp.info.
1500         * configure.ac: Remove AC_PREREQ.
1501         * testsuite/Makefile.am (RUNTEST): Remove quotes.
1502         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
1503         Regenerate.
1505 2018-10-29  Joseph Myers  <joseph@codesourcery.com>
1506             Julian Brown  <julian@codesourcery.com>
1508         * testsuite/libgomp.oacc-c++/this.C: New.
1510 2018-09-18  Cesar Philippidis  <cesar@codesourcery.com>
1512         * plugin/plugin-nvptx.c (struct cuda_map): New.
1513         (struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
1514         h_tail with (cuda_map *) map.
1515         (cuda_map_create): New function.
1516         (cuda_map_destroy): New function.
1517         (map_init): Update to use a linked list of cuda_map objects.
1518         (map_fini): Likewise.
1519         (map_pop): Likewise.
1520         (map_push): Likewise.  Return CUdeviceptr instead of void.
1521         (init_streams_for_device): Remove stales references to ptx_stream
1522         members.
1523         (select_stream_for_async): Likewise.
1524         (nvptx_exec): Update call to map_init.
1526 2018-09-09  Cesar Philippidis  <cesar@codesourcery.com>
1527             Julian Brown  <julian@codesourcery.com>
1529         PR middle-end/86336
1530         * testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.
1532 2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
1533         Thomas Koenig <tkoenig@gcc.gnu.org>
1535         PR fortran/25829
1536         * testsuite/libgomp.fortran/async_io_1.f90: New test.
1537         * testsuite/libgomp.fortran/async_io_2.f90: New test.
1538         * testsuite/libgomp.fortran/async_io_3.f90: New test.
1539         * testsuite/libgomp.fortran/async_io_4.f90: New test.
1540         * testsuite/libgomp.fortran/async_io_5.f90: New test.
1541         * testsuite/libgomp.fortran/async_io_6.f90: New test.
1542         * testsuite/libgomp.fortran/async_io_7.f90: New test.
1544 2018-08-13  Cesar Philippidis  <cesar@codesourcery.com>
1545             Tom de Vries  <tdevries@suse.de>
1547         PR target/85590
1548         * plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef.
1549         (cuOccupancyMaxPotentialBlockSize): Declare.
1550         * plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New
1551         CUDA_ONE_CALL_MAYBE_NULL.
1552         * plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define
1553         CUoccupancyB2DSize and declare
1554         cuOccupancyMaxPotentialBlockSize.
1555         (nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the
1556         default num_gangs and num_workers when the driver supports it.
1558 2018-08-08  Tom de Vries  <tdevries@suse.de>
1560         * plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using
1561         CUDA_ONE_CALL_MAYBE_NULL.
1562         * plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare.
1563         (cuLinkAddData_v2, cuLinkCreate_v2): Declare.
1564         (link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions
1565         are not found.
1567 2018-08-08  Tom de Vries  <tdevries@suse.de>
1569         * plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL.
1570         * plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not
1571         present.
1573 2018-08-08  Tom de Vries  <tdevries@suse.de>
1575         * plugin/plugin-nvptx.c
1576         (CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define.
1577         (nvptx_open_device): Use
1578         CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR.
1580 2018-08-08  Tom de Vries  <tdevries@suse.de>
1582         * plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ...
1583         (cuGetErrorString): ... here.  Guard with CUDA_VERSION < 6000.
1585 2018-08-07  Tom de Vries  <tdevries@suse.de>
1587         * plugin/plugin-nvptx.c (DO_PRAGMA): Define.
1588         (struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL.
1589         (init_cuda_lib): Add new param to CUDA_ONE_CALL_1.  Add arg to
1590         corresponding call in CUDA_ONE_CALL.  Add def/undef of
1591         CUDA_ONE_CALL_MAYBE_NULL.
1592         (CUDA_CALL_EXISTS): Define.
1594 2018-08-07  Tom de Vries  <tdevries@suse.de>
1596         * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put
1597         CUDA_ONE_CALL defines right before the cuda-lib.def include, and the
1598         corresponding undefs right after.
1600 2018-08-04  Tom de Vries  <tdevries@suse.de>
1602         * plugin/configfrag.ac: For --without-cuda-driver, set
1603         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB to no.  Handle
1604         CUDA_DRIVER_INCLUDE == no and CUDA_DRIVER_LIB == no.
1605         * configure: Regenerate.
1607 2018-08-02  Tom de Vries  <tdevries@suse.de>
1609         PR target/86660
1610         * testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
1611         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
1612         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
1613         Same.
1614         * testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
1615         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
1616         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
1618 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
1619             Thomas Schwinge <thomas@codesourcery.com>
1621         * config/nvptx/oacc-parallel.c: Truncate.
1623 2018-08-01  Cesar Philippidis  <cesar@codesourcery.com>
1624             James Norris <jnorris@codesourcery.com>
1626         * plugin/plugin-nvptx.c (struct map): Removed.
1627         (map_init, map_pop): Remove use of struct map.
1628         (map_push): Likewise and change argument list.
1629         * testsuite/libgomp.oacc-c-c++-common/mapping-1.c: New
1631 2018-08-01  Tom de Vries  <tdevries@suse.de>
1633         * plugin/cuda-lib.def: New file.  Factor out of ...
1634         * plugin/plugin-nvptx.c (CUDA_CALLS): ... here.
1635         (struct cuda_lib_s, init_cuda_lib): Include cuda-lib.def instead of
1636         using CUDA_CALLS.
1638 2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1640         Revert 'AsyncI/O patch committed'.
1641         2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
1642                 Thomas Koenig <tkoenig@gcc.gnu.org>
1644         PR fortran/25829
1645         * testsuite/libgomp.fortran/async_io_1.f90: New test.
1646         * testsuite/libgomp.fortran/async_io_2.f90: New test.
1647         * testsuite/libgomp.fortran/async_io_3.f90: New test.
1648         * testsuite/libgomp.fortran/async_io_4.f90: New test.
1649         * testsuite/libgomp.fortran/async_io_5.f90: New test.
1650         * testsuite/libgomp.fortran/async_io_6.f90: New test.
1651         * testsuite/libgomp.fortran/async_io_7.f90: New test.
1653 2018-07-30  Tom de Vries  <tdevries@suse.de>
1655         * plugin/plugin-nvptx.c (MIN, MAX): Redefine.
1656         (nvptx_exec): Ensure worker and vector default dims don't exceed
1657         targ_fn->max_threads_per_block.
1659 2018-07-30  Tom de Vries  <tdevries@suse.de>
1661         * plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field.
1662         (nvptx_open_device): Init default_dims for device.
1663         (nvptx_exec): Use default_dims from device.
1665 2018-07-26  Jakub Jelinek  <jakub@redhat.com>
1667         PR testsuite/86660
1668         * testsuite/libgomp.c++/for-15.C (results): Include it in
1669         omp declare target region.
1670         (main): Use map (always, tofrom: results) instead of
1671         map (tofrom: results).
1673         PR middle-end/86660
1674         * testsuite/libgomp.c/pr86660.c: New test.
1676 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
1677             Tom de Vries  <tdevries@suse.de>
1679         * plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have
1680         sufficient resources to launch a kernel, and give a hint on how to fix
1681         it.
1683 2018-07-26  Cesar Philippidis  <cesar@codesourcery.com>
1684             Tom de Vries  <tdevries@suse.de>
1686         * plugin/plugin-nvptx.c (struct ptx_device): Add warp_size,
1687         max_threads_per_block and max_threads_per_multiprocessor fields.
1688         (nvptx_open_device): Initialize new fields.
1689         (nvptx_exec): Use num_sms, and new fields.
1691 2018-07-26  Tom de Vries  <tdevries@suse.de>
1693         * testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls
1694         to correct locations.  Remove xfail.
1696 2018-07-26  Tom de Vries  <tdevries@suse.de>
1698         * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
1699         acc_wait.  Move acc_async_test calls to correct locations.  Remove
1700         xfail.
1702 2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
1703         Thomas Koenig <tkoenig@gcc.gnu.org>
1705         PR fortran/25829
1706         * testsuite/libgomp.fortran/async_io_1.f90: New test.
1707         * testsuite/libgomp.fortran/async_io_2.f90: New test.
1708         * testsuite/libgomp.fortran/async_io_3.f90: New test.
1709         * testsuite/libgomp.fortran/async_io_4.f90: New test.
1710         * testsuite/libgomp.fortran/async_io_5.f90: New test.
1711         * testsuite/libgomp.fortran/async_io_6.f90: New test.
1712         * testsuite/libgomp.fortran/async_io_7.f90: New test.
1714 2018-07-17  Jakub Jelinek  <jakub@redhat.com>
1716         PR middle-end/86542
1717         * testsuite/libgomp.c++/pr86542.C: New test.
1719         PR middle-end/86539
1720         * testsuite/libgomp.c++/pr86539.C: New test.
1722 2018-07-11  Jakub Jelinek  <jakub@redhat.com>
1724         PR c++/86443
1725         * testsuite/libgomp.c++/for-15.C (a): Remove unused variable.
1726         (results): Make sure the variable is not inside declare target region.
1727         (qux): Remove unused function.
1729 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
1731         PR c++/86443
1732         * testsuite/libgomp.c++/for-15.C: New test.
1734 2018-06-26  Jakub Jelinek  <jakub@redhat.com>
1736         PR c++/86291
1737         * testsuite/libgomp.c++/pr86291.C: New test.
1739 2018-06-24  Gerald Pfeifer  <gerald@pfeifer.com>
1741         * libgomp.texi (Top): Move www.openmp.org to https.
1742         (Enabling OpenMP): Ditto.
1743         (omp_get_active_level): Ditto.
1744         (omp_get_ancestor_thread_num): Ditto.
1745         (omp_get_cancellation): Ditto.
1746         (omp_get_default_device): Ditto.
1747         (omp_get_dynamic): Ditto.
1748         (omp_get_level): Ditto.
1749         (omp_get_max_active_levels): Ditto.
1750         (omp_get_max_task_priority): Ditto.
1751         (omp_get_max_threads): Ditto.
1752         (omp_get_nested): Ditto.
1753         (omp_get_num_devices): Ditto.
1754         (omp_get_num_procs): Ditto.
1755         (omp_get_num_teams): Ditto.
1756         (omp_get_num_threads): Ditto.
1757         (omp_get_proc_bind): Ditto.
1758         (omp_get_schedule): Ditto.
1759         (omp_get_team_num): Ditto.
1760         (omp_get_team_size): Ditto.
1761         (omp_get_thread_limit): Ditto.
1762         (omp_get_thread_num): Ditto.
1763         (omp_in_parallel): Ditto.
1764         (omp_in_final): Ditto.
1765         (omp_is_initial_device): Ditto.
1766         (omp_set_default_device): Ditto.
1767         (omp_set_dynamic): Ditto.
1768         (omp_set_max_active_levels): Ditto.
1769         (omp_set_nested): Ditto.
1770         (omp_set_num_threads): Ditto.
1771         (omp_set_schedule): Ditto.
1772         (omp_init_lock): Ditto.
1773         (omp_set_lock): Ditto.
1774         (omp_test_lock): Ditto.
1775         (omp_unset_lock): Ditto.
1776         (omp_destroy_lock): Ditto.
1777         (omp_init_nest_lock): Ditto.
1778         (omp_set_nest_lock): Ditto.
1779         (omp_test_nest_lock): Ditto.
1780         (omp_unset_nest_lock): Ditto.
1781         (omp_destroy_nest_lock): Ditto.
1782         (omp_get_wtick): Ditto.
1783         (omp_get_wtime): Ditto.
1784         (OMP_CANCELLATION): Ditto.
1785         (OMP_DISPLAY_ENV): Ditto.
1786         (OMP_DEFAULT_DEVICE): Ditto.
1787         (OMP_DYNAMIC): Ditto.
1788         (OMP_MAX_ACTIVE_LEVELS): Ditto.
1789         (OMP_MAX_TASK_PRIORITY): Ditto.
1790         (OMP_NESTED): Ditto.
1791         (OMP_NUM_THREADS): Ditto.
1792         (OMP_PROC_BIND): Ditto.
1793         (OMP_PLACES): Ditto.
1794         (OMP_STACKSIZE): Ditto.
1795         (OMP_SCHEDULE): Ditto.
1796         (OMP_THREAD_LIMIT): Ditto.
1797         (OMP_WAIT_POLICY): Ditto.
1799 2018-06-22  Cesar Philippidis  <cesar@codesourcery.com>
1800             James Norris  <jnorris@codesourcery.com>
1801             Julian Brown  <julian@codesourcery.com>
1802             Thomas Schwinge  <thomas@codesourcery.com>
1803             Tom de Vries  <tom@codesourcery.com>
1805         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
1806         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
1807         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
1808         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
1809         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
1810         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
1811         * testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
1812         * testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
1813         * testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
1814         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
1815         Likewise.
1816         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
1817         Likewise.
1818         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
1819         Likewise.
1820         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
1821         Likewise.
1822         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
1823         Likewise.
1824         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
1825         Likewise.
1826         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
1827         Likewise.
1828         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
1829         Likewise.
1830         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
1831         Likewise.
1832         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
1833         Likewise.
1834         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
1835         Likewise.
1836         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
1837         Likewise.
1838         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
1839         Likewise.
1840         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
1841         Likewise.
1842         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
1843         Likewise.
1844         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
1845         Likewise.
1846         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
1847         Likewise.
1848         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
1849         Likewise.
1850         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
1851         Likewise.
1852         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
1853         Likewise.
1854         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
1855         Likewise.
1856         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
1857         Likewise.
1858         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
1859         Likewise.
1860         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
1861         Likewise.
1862         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
1863         Likewise.
1864         * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
1865         Likewise.
1866         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
1867         Likewise.
1868         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
1869         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
1870         * testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
1871         * testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
1872         * testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
1873         * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
1874         * testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
1875         * testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
1876         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
1877         Likewise.
1878         * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
1879         Likewise.
1880         * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
1881         * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
1882         * testsuite/libgomp.oacc-fortran/kernels-independent.f90:
1883         Likewise.
1884         * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
1885         * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
1886         * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
1887         Likewise.
1888         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
1889         Likewise.
1890         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
1891         Likewise.
1892         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
1893         Likewise.
1894         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
1895         Likewise.
1896         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
1897         Likewise.
1898         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
1899         Likewise.
1900         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
1901         Likewise.
1902         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
1903         Likewise.
1904         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
1905         Likewise.
1906         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
1907         Likewise.
1908         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
1909         Likewise.
1910         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
1911         Likewise.
1912         * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
1913         Likewise.
1914         * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
1915         Likewise.
1916         * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
1917         * testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
1918         * testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
1919         * testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
1920         * testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
1921         * testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
1922         * testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.
1924 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
1925             Thomas Schwinge <thomas@codesourcery.com>
1926             Cesar Philippidis  <cesar@codesourcery.com>
1928         * libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member.
1929         (gomp_acc_remove_pointer): Update declaration.
1930         (gomp_acc_declare_allocate): Declare.
1931         (gomp_remove_var): Declare.
1932         * libgomp.map (OACC_2.5): Define.
1933         * oacc-mem.c (acc_map_data): Update refcount.
1934         (acc_unmap_data): Likewise.
1935         (present_create_copy): Likewise.
1936         (acc_create): Add FLAG_PRESENT when calling present_create_copy.
1937         (acc_copyin): Likewise.
1938         (FLAG_FINALIZE): Define.
1939         (delete_copyout): Update dynamic refcounts, add support for FINALIZE.
1940         (acc_delete_finalize): New function.
1941         (acc_delete_finalize_async): New function.
1942         (acc_copyout_finalize): New function.
1943         (acc_copyout_finalize_async): New function.
1944         (gomp_acc_insert_pointer): Update refcounts.
1945         (gomp_acc_remove_pointer): Return if data is not present on the
1946         accelerator.
1947         * oacc-parallel.c (find_pset): Rename to find_pointer.
1948         (find_pointer): Add support for GOMP_MAP_POINTER.
1949         (handle_ftn_pointers): New function.
1950         (GOACC_parallel_keyed): Update refcounts of variables.
1951         (GOACC_enter_exit_data): Add support for finalized data mappings.
1952         Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling
1953         of fortran arrays.
1954         (GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}.
1955         (GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support
1956         for GOMP_MAP_FORCE_FROM.
1957         * openacc.f90 (module openacc_internal): Add
1958         acc_copyout_finalize_{32_h,64_h,array_h,_l}, and
1959         acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for
1960         acc_copyout_finalize and acc_delete_finalize.
1961         (acc_copyout_finalize_32_h): New subroutine.
1962         (acc_copyout_finalize_64_h): New subroutine.
1963         (acc_copyout_finalize_array_h): New subroutine.
1964         (acc_delete_finalize_32_h): New subroutine.
1965         (acc_delete_finalize_64_h): New subroutine.
1966         (acc_delete_finalize_array_h): New subroutine.
1967         * openacc.h (acc_copyout_finalize): Declare.
1968         (acc_copyout_finalize_async): Declare.
1969         (acc_delete_finalize): Declare.
1970         (acc_delete_finalize_async): Declare.
1971         * openacc_lib.h (acc_copyout_finalize): New interface.
1972         (acc_delete_finalize): New interface.
1973         * target.c (gomp_map_vars): Update dynamic_refcount.
1974         (gomp_remove_var): New function.
1975         (gomp_unmap_vars): Use it.
1976         (gomp_unload_image_from_device): Likewise.
1977         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test
1978         case to utilize OpenACC 2.5 data clause semantics.
1979         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
1980         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
1981         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
1982         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
1983         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
1984         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
1985         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
1986         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
1987         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
1988         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
1989         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
1990         * testsuite/libgomp.oacc-fortran/data-5.f90: New test.
1991         * testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to
1992         utilize OpenACC 2.5 data clause semantics.
1993         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
1994         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
1995         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
1996         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
1997         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
1998         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
1999         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
2000         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
2001         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2003 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
2005         PR fortran/85841
2006         PR testsuite/85865
2007         * testsuite/libgomp.fortran/collapse2.f90: Add option "-std=legacy".
2008         * testsuite/libgomp.fortran/omp_atomic2.f90: Ditto.
2009         * testsuite/libgomp.fortran/omp_parse1.f90: Ditto.
2010         * testsuite/libgomp.fortran/omp_parse3.f90: Ditto.
2011         * testsuite/libgomp.fortran/task2.f90: Ditto.
2012         * testsuite/libgomp.fortran/vla1.f90: Ditto.
2013         * testsuite/libgomp.fortran/vla2.f90: Ditto.
2014         * testsuite/libgomp.fortran/vla3.f90: Ditto.
2015         * testsuite/libgomp.fortran/vla4.f90: Ditto.
2016         * testsuite/libgomp.fortran/vla5.f90: Ditto.
2017         * testsuite/libgomp.fortran/vla6.f90: Ditto.
2018         * testsuite/libgomp.fortran/vla8.f90: Ditto.
2019         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Ditto.
2020         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Ditto.
2022 2018-05-18  Cesar Philippidis  <cesar@codesourcery.com>
2024         PR c++/85782
2025         * testsuite/libgomp.oacc-c-c++-common/pr85782.c: New test.
2027 2018-05-09  Tom de Vries  <tom@codesourcery.com>
2029         PR libgomp/82901
2030         * oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument
2031         to GOACC_enter_exit_data.
2033 2018-05-09  Tom de Vries  <tom@codesourcery.com>
2035         PR libgomp/83792
2036         * oacc-int.h (async_valid_stream_id_p, async_valid_p)
2037         (async_synchronous_p): New function.
2038         * oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use
2039         async_valid_p.
2040         * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
2041         async_valid_stream_id_p.
2042         * oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p.
2043         * oacc-parallel.c (GOACC_parallel_keyed): Same.
2045 2018-05-07  Tom de Vries  <tom@codesourcery.com>
2047         PR testsuite/85677
2048         * testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level
2049         include directory in ALWAYS_CFLAGS out of $blddir != "" condition.
2051 2018-05-03  Tom de Vries  <tom@codesourcery.com>
2053         PR testsuite/85106
2054         * testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to
2055         extra_tool_flags if it contains an -foffload=-fdump-* flag.
2056         * testsuite/lib/libgomp.exp: Include scanoffloadtree.exp.
2057         * testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump.
2059 2018-05-02  Tom de Vries  <tom@codesourcery.com>
2061         PR libgomp/85411
2062         * plugin/plugin-nvptx.c (nvptx_exec): Move parsing of
2063         GOMP_OPENACC_DIM ...
2064         * env.c (parse_gomp_openacc_dim): ... here.  New function.
2065         (initialize_env): Call parse_gomp_openacc_dim.
2066         (goacc_default_dims): Define.
2067         * libgomp.h (goacc_default_dims): Declare.
2068         * oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function.
2069         * oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare.
2070         * libgomp.map: New version "GOMP_PLUGIN_1.2". Add
2071         GOMP_PLUGIN_acc_default_dim.
2072         * testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test.
2073         * testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test.
2075 2018-05-02  Tom de Vries  <tom@codesourcery.com>
2077         PR testsuite/83791
2078         * testsuite/libgomp.c++/udr-9.C: Update.
2079         * testsuite/libgomp.c++/atomic-16.C: Remove.
2080         * testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
2081         * testsuite/libgomp.c++/loop-13.C: Remove.
2082         * testsuite/libgomp.c++/loop-14.C: Remove.
2083         * testsuite/libgomp.c++/loop-15.C: Remove.
2084         * testsuite/libgomp.c++/monotonic-1.C: Remove.
2085         * testsuite/libgomp.c++/monotonic-2.C: Remove.
2086         * testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
2087         * testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
2088         * testsuite/libgomp.c++/ordered-1.C: Remove.
2089         * testsuite/libgomp.c++/pr45784.C: Remove.
2090         * testsuite/libgomp.c++/pr64824.C: Remove.
2091         * testsuite/libgomp.c++/pr64868.C: Remove.
2092         * testsuite/libgomp.c++/pr66199-1.C: Remove.
2093         * testsuite/libgomp.c++/pr66199-2.C: Remove.
2094         * testsuite/libgomp.c++/pr66199-3.C: Remove.
2095         * testsuite/libgomp.c++/pr66199-4.C: Remove.
2096         * testsuite/libgomp.c++/pr66199-5.C: Remove.
2097         * testsuite/libgomp.c++/pr66199-6.C: Remove.
2098         * testsuite/libgomp.c++/pr66199-7.C: Remove.
2099         * testsuite/libgomp.c++/pr66199-8.C: Remove.
2100         * testsuite/libgomp.c++/pr66199-9.C: Remove.
2101         * testsuite/libgomp.c++/pr69389.C: Remove.
2102         * testsuite/libgomp.c++/simd10.C: Remove.
2103         * testsuite/libgomp.c++/simd11.C: Remove.
2104         * testsuite/libgomp.c++/simd12.C: Remove.
2105         * testsuite/libgomp.c++/simd13.C: Remove.
2106         * testsuite/libgomp.c++/target-1.C: Remove.
2107         * testsuite/libgomp.c++/target-3.C: Remove.
2108         * testsuite/libgomp.c++/target-4.C: Remove.
2109         * testsuite/libgomp.c++/target-5.C: Remove.
2110         * testsuite/libgomp.c++/taskgroup-1.C: Remove.
2111         * testsuite/libgomp.c++/taskloop-1.C: Remove.
2112         * testsuite/libgomp.c++/taskloop-2.C: Remove.
2113         * testsuite/libgomp.c++/taskloop-3.C: Remove.
2114         * testsuite/libgomp.c++/taskloop-4.C: Remove.
2115         * testsuite/libgomp.c++/udr-9.C: Remove.
2116         * testsuite/libgomp.c++/for-10.C: Remove.
2117         * testsuite/libgomp.c++/for-11.C: Remove.
2118         * testsuite/libgomp.c++/for-12.C: Remove.
2119         * testsuite/libgomp.c++/for-13.C: Remove.
2120         * testsuite/libgomp.c++/for-14.C: Remove.
2121         * testsuite/libgomp.c++/for-9.C: Remove.
2122         * testsuite/libgomp.c/atomic-18.c: Move ...
2123         * testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
2124         * testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
2125         * testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
2126         * testsuite/libgomp.c/loop-13.c: Move ...
2127         * testsuite/libgomp.c-c++-common/loop-13.c: ... here.
2128         * testsuite/libgomp.c/loop-14.c: Move ...
2129         * testsuite/libgomp.c-c++-common/loop-14.c: ... here.
2130         * testsuite/libgomp.c/loop-15.c: Remove.
2131         * testsuite/libgomp.c-c++-common/loop-15.c: New test.
2132         * testsuite/libgomp.c/monotonic-1.c: Move ...
2133         * testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
2134         * testsuite/libgomp.c/monotonic-2.c: Move ...
2135         * testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
2136         * testsuite/libgomp.c/nonmonotonic-1.c: Move ...
2137         * testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
2138         * testsuite/libgomp.c/nonmonotonic-2.c: Move ...
2139         * testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
2140         * testsuite/libgomp.c/ordered-4.c: Move ...
2141         * testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
2142         * testsuite/libgomp.c/pr45784.c: Move ...
2143         * testsuite/libgomp.c-c++-common/pr45784.c: ... here.
2144         * testsuite/libgomp.c/pr64824.c: Move ...
2145         * testsuite/libgomp.c-c++-common/pr64824.c: ... here.
2146         * testsuite/libgomp.c/pr64868.c: Move ...
2147         * testsuite/libgomp.c-c++-common/pr64868.c: ... here.
2148         * testsuite/libgomp.c/pr66199-1.c: Move ...
2149         * testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
2150         * testsuite/libgomp.c/pr66199-2.c: Move ...
2151         * testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
2152         * testsuite/libgomp.c/pr66199-3.c: Move ...
2153         * testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
2154         * testsuite/libgomp.c/pr66199-4.c: Move ...
2155         * testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
2156         * testsuite/libgomp.c/pr66199-5.c: Move ...
2157         * testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
2158         * testsuite/libgomp.c/pr66199-6.c: Move ...
2159         * testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
2160         * testsuite/libgomp.c/pr66199-7.c: Move ...
2161         * testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
2162         * testsuite/libgomp.c/pr66199-8.c: Move ...
2163         * testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
2164         * testsuite/libgomp.c/pr66199-9.c: Move ...
2165         * testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
2166         * testsuite/libgomp.c/pr69389.c: Move ...
2167         * testsuite/libgomp.c-c++-common/pr69389.c: ... here.
2168         * testsuite/libgomp.c/simd-14.c: Move ...
2169         * testsuite/libgomp.c-c++-common/simd-14.c: ... here.
2170         * testsuite/libgomp.c/simd-15.c: Move ...
2171         * testsuite/libgomp.c-c++-common/simd-15.c: ... here.
2172         * testsuite/libgomp.c/simd-16.c: Move ...
2173         * testsuite/libgomp.c-c++-common/simd-16.c: ... here.
2174         * testsuite/libgomp.c/simd-17.c: Move ...
2175         * testsuite/libgomp.c-c++-common/simd-17.c: ... here.
2176         * testsuite/libgomp.c/target-1.c: Move ...
2177         * testsuite/libgomp.c-c++-common/target-1.c: ... here.
2178         * testsuite/libgomp.c/target-10.c: Move ...
2179         * testsuite/libgomp.c-c++-common/target-10.c: ... here.
2180         * testsuite/libgomp.c/target-13.c: Move ...
2181         * testsuite/libgomp.c-c++-common/target-13.c: ... here.
2182         * testsuite/libgomp.c/target-2.c: Move ...
2183         * testsuite/libgomp.c-c++-common/target-2.c: ... here.
2184         * testsuite/libgomp.c/taskgroup-1.c: Move ...
2185         * testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
2186         * testsuite/libgomp.c/taskloop-1.c: Move ...
2187         * testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
2188         * testsuite/libgomp.c/taskloop-2.c: Move ...
2189         * testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
2190         * testsuite/libgomp.c/taskloop-3.c: Move ...
2191         * testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
2192         * testsuite/libgomp.c/taskloop-4.c: Move ...
2193         * testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
2194         * testsuite/libgomp.c/udr-1.c: Move ...
2195         * testsuite/libgomp.c-c++-common/udr-1.c: ... here.
2196         * testsuite/libgomp.c/for-1.c: Move ...
2197         * testsuite/libgomp.c-c++-common/for-1.c: ... here.
2198         * testsuite/libgomp.c/for-1.h: Move ...
2199         * testsuite/libgomp.c-c++-common/for-1.h: ... here.
2200         * testsuite/libgomp.c/for-2.c: Move ...
2201         * testsuite/libgomp.c-c++-common/for-2.c: ... here.
2202         * testsuite/libgomp.c/for-2.h: Move ...
2203         * testsuite/libgomp.c-c++-common/for-2.h: ... here.
2204         * testsuite/libgomp.c/for-3.c: Move ...
2205         * testsuite/libgomp.c-c++-common/for-3.c: ... here.
2206         * testsuite/libgomp.c/for-4.c: Move ...
2207         * testsuite/libgomp.c-c++-common/for-4.c: ... here.
2208         * testsuite/libgomp.c/for-5.c: Move ...
2209         * testsuite/libgomp.c-c++-common/for-5.c: ... here.
2210         * testsuite/libgomp.c/for-6.c: Move ...
2211         * testsuite/libgomp.c-c++-common/for-6.c: ... here.
2213 2018-05-02  Tom de Vries  <tom@codesourcery.com>
2215         PR libgomp/82428
2216         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use
2217         __builtin_goacc_parlevel_{id,size}.
2218         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same.
2219         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same.
2220         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same.
2221         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same.
2222         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same.
2223         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same.
2224         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same.
2225         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same.
2226         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same.
2227         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same.
2228         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same.
2229         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same.
2230         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same.
2231         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same.
2232         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same.
2233         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same.
2234         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same.
2235         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same.
2236         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same.
2237         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same.
2238         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same.
2239         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same.
2240         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same.
2242 2018-05-02  Tom de Vries  <tom@codesourcery.com>
2244         PR testsuite/85106
2245         * testsuite/lib/libgomp.exp: Include scanltranstree.exp.
2247 2018-05-02  Tom de Vries  <tom@codesourcery.com>
2249         PR testsuite/85106
2250         * testsuite/lib/libgomp.exp: Include scanwpaipa.exp.
2252 2018-04-29  Julian Brown  <julian@codesourcery.com>
2253             Tom de Vries  <tom@codesourcery.com>
2255         PR testsuite/85527
2256         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow
2257         arbitrary order for iterations of atomic subtract check.
2259 2018-04-28  Tom de Vries  <tom@codesourcery.com>
2261         PR testsuite/85527
2262         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store
2263         atomic capture results obtained in parallel loop to an array, instead of
2264         to a scalar.
2266 2018-04-26  Tom de Vries  <tom@codesourcery.com>
2268         PR libgomp/84020
2269         * plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
2270         * plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
2271         (process_GOMP_NVPTX_JIT): New function.
2272         (link_ptx): Use process_GOMP_NVPTX_JIT.
2274 2018-04-26  Richard Biener <rguenther@suse.de>
2275             Tom de Vries  <tom@codesourcery.com>
2277         PR lto/85422
2278         * testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
2280 2018-04-26  Tom de Vries  <tom@codesourcery.com>
2282         PR target/85519
2283         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
2284         recursion depth from 25 to 23.
2285         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
2287 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2289         * configure: Regenerated.
2291 2018-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2292             Tom de Vries  <tom@codesourcery.com>
2294         PR target/85445
2295         * testsuite/libgomp.oacc-c++/ref-1.C: New.
2297 2018-04-19  Thomas Schwinge  <thomas@codesourcery.com>
2299         PR libgomp/85463
2300         * testsuite/libgomp.oacc-fortran/error_stop-1.f: New file.
2301         * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
2302         * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
2303         * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
2304         * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
2305         * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
2307         PR libfortran/85166
2308         * testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call
2309         abort".
2310         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
2312 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
2314         * configure: Regenerated.
2316 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
2318         PR jit/85384
2319         * configure: Regenerate.
2321 2018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
2322             Tom de Vries  <tom@codesourcery.com>
2324         PR middle-end/84955
2325         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
2326         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
2328 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
2330         PR fortran/83064
2331         PR testsuite/85346
2332         * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
2333         test from gfortran.dg to here.
2335 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
2337         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346.
2338         * testsuite/libgomp.oacc-fortran/pr84955.f90: Likewise.
2340 2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
2342         PR middle-end/84955
2343         * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
2344         * testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
2346 2018-04-05  Tom de Vries  <tom@codesourcery.com>
2348         PR target/85204
2349         * testsuite/libgomp.oacc-c-c++-common/broadcast-1.c: New test.
2351 2018-03-26  Tom de Vries  <tom@codesourcery.com>
2353         PR tree-optimization/85063
2354         * testsuite/libgomp.c/switch-conversion-2.c: New test.
2355         * testsuite/libgomp.c/switch-conversion.c: New test.
2356         * testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test.
2357         * testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test.
2359 2018-03-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2361         PR fortran/84381
2362         * testsuite/libgomp.fortran/aligned1.f03: Replace non-standard
2363         call abort by STOP n.
2364         * testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise.
2365         * testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise.
2366         * testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise.
2367         * testsuite/libgomp.fortran/allocatable1.f90: Likewise.
2368         * testsuite/libgomp.fortran/allocatable10.f90: Likewise.
2369         * testsuite/libgomp.fortran/allocatable11.f90: Likewise.
2370         * testsuite/libgomp.fortran/allocatable12.f90: Likewise.
2371         * testsuite/libgomp.fortran/allocatable2.f90: Likewise.
2372         * testsuite/libgomp.fortran/allocatable3.f90: Likewise.
2373         * testsuite/libgomp.fortran/allocatable4.f90: Likewise.
2374         * testsuite/libgomp.fortran/allocatable5.f90: Likewise.
2375         * testsuite/libgomp.fortran/allocatable6.f90: Likewise.
2376         * testsuite/libgomp.fortran/allocatable7.f90: Likewise.
2377         * testsuite/libgomp.fortran/allocatable8.f90: Likewise.
2378         * testsuite/libgomp.fortran/allocatable9.f90: Likewise.
2379         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.
2380         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise.
2381         * testsuite/libgomp.fortran/associate1.f90: Likewise.
2382         * testsuite/libgomp.fortran/associate2.f90: Likewise.
2383         * testsuite/libgomp.fortran/associate3.f90: Likewise.
2384         * testsuite/libgomp.fortran/cancel-do-1.f90: Likewise.
2385         * testsuite/libgomp.fortran/cancel-do-2.f90: Likewise.
2386         * testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise.
2387         * testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise.
2388         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise.
2389         * testsuite/libgomp.fortran/character1.f90: Likewise.
2390         * testsuite/libgomp.fortran/character2.f90: Likewise.
2391         * testsuite/libgomp.fortran/collapse1.f90: Likewise.
2392         * testsuite/libgomp.fortran/collapse2.f90: Likewise.
2393         * testsuite/libgomp.fortran/collapse3.f90: Likewise.
2394         * testsuite/libgomp.fortran/collapse4.f90: Likewise.
2395         * testsuite/libgomp.fortran/crayptr1.f90: Likewise.
2396         * testsuite/libgomp.fortran/crayptr2.f90: Likewise.
2397         * testsuite/libgomp.fortran/crayptr3.f90: Likewise.
2398         * testsuite/libgomp.fortran/declare-simd-1.f90: Likewise.
2399         * testsuite/libgomp.fortran/declare-simd-3.f90: Likewise.
2400         * testsuite/libgomp.fortran/declare-target-2.f90: Likewise.
2401         * testsuite/libgomp.fortran/depend-1.f90: Likewise.
2402         * testsuite/libgomp.fortran/depend-2.f90: Likewise.
2403         * testsuite/libgomp.fortran/depend-3.f90: Likewise.
2404         * testsuite/libgomp.fortran/do1.f90: Likewise.
2405         * testsuite/libgomp.fortran/do2.f90: Likewise.
2406         * testsuite/libgomp.fortran/doacross1.f90: Likewise.
2407         * testsuite/libgomp.fortran/doacross2.f90: Likewise.
2408         * testsuite/libgomp.fortran/doacross3.f90: Likewise.
2409         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise.
2410         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise.
2411         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise.
2412         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
2413         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise.
2414         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise.
2415         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise.
2416         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise.
2417         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise.
2418         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
2419         * testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise.
2420         * testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise.
2421         * testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise.
2422         * testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise.
2423         * testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise.
2424         * testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise.
2425         * testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise.
2426         * testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise.
2427         * testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise.
2428         * testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise.
2429         * testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise.
2430         * testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise.
2431         * testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise.
2432         * testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise.
2433         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
2434         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise.
2435         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise.
2436         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise.
2437         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise.
2438         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise.
2439         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
2440         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
2441         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise.
2442         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise.
2443         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise.
2444         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise.
2445         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise.
2446         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise.
2447         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise.
2448         * testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise.
2449         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise.
2450         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
2451         * testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise.
2452         * testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise.
2453         * testsuite/libgomp.fortran/lastprivate1.f90: Likewise.
2454         * testsuite/libgomp.fortran/lastprivate2.f90: Likewise.
2455         * testsuite/libgomp.fortran/lib1.f90: Likewise.
2456         * testsuite/libgomp.fortran/lib2.f: Likewise.
2457         * testsuite/libgomp.fortran/lib3.f: Likewise.
2458         * testsuite/libgomp.fortran/lib4.f90: Likewise.
2459         * testsuite/libgomp.fortran/lock-1.f90: Likewise.
2460         * testsuite/libgomp.fortran/lock-2.f90: Likewise.
2461         * testsuite/libgomp.fortran/nested1.f90: Likewise.
2462         * testsuite/libgomp.fortran/nestedfn1.f90: Likewise.
2463         * testsuite/libgomp.fortran/nestedfn2.f90: Likewise.
2464         * testsuite/libgomp.fortran/nestedfn3.f90: Likewise.
2465         * testsuite/libgomp.fortran/nestedfn4.f90: Likewise.
2466         * testsuite/libgomp.fortran/nestedfn5.f90: Likewise.
2467         * testsuite/libgomp.fortran/omp_atomic1.f90: Likewise.
2468         * testsuite/libgomp.fortran/omp_atomic2.f90: Likewise.
2469         * testsuite/libgomp.fortran/omp_atomic3.f90: Likewise.
2470         * testsuite/libgomp.fortran/omp_atomic4.f90: Likewise.
2471         * testsuite/libgomp.fortran/omp_atomic5.f90: Likewise.
2472         * testsuite/libgomp.fortran/omp_cond1.f: Likewise.
2473         * testsuite/libgomp.fortran/omp_cond2.f: Likewise.
2474         * testsuite/libgomp.fortran/omp_cond3.F90: Likewise.
2475         * testsuite/libgomp.fortran/omp_cond4.F90: Likewise.
2476         * testsuite/libgomp.fortran/omp_parse1.f90: Likewise.
2477         * testsuite/libgomp.fortran/omp_parse2.f90: Likewise.
2478         * testsuite/libgomp.fortran/omp_parse3.f90: Likewise.
2479         * testsuite/libgomp.fortran/omp_parse4.f90: Likewise.
2480         * testsuite/libgomp.fortran/openmp_version-1.f: Likewise.
2481         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
2482         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise.
2483         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise.
2484         * testsuite/libgomp.fortran/pointer1.f90: Likewise.
2485         * testsuite/libgomp.fortran/pointer2.f90: Likewise.
2486         * testsuite/libgomp.fortran/pr25162.f: Likewise.
2487         * testsuite/libgomp.fortran/pr25219.f90: Likewise.
2488         * testsuite/libgomp.fortran/pr27395-1.f90: Likewise.
2489         * testsuite/libgomp.fortran/pr27395-2.f90: Likewise.
2490         * testsuite/libgomp.fortran/pr27416-1.f90: Likewise.
2491         * testsuite/libgomp.fortran/pr27916-1.f90: Likewise.
2492         * testsuite/libgomp.fortran/pr27916-2.f90: Likewise.
2493         * testsuite/libgomp.fortran/pr28390.f: Likewise.
2494         * testsuite/libgomp.fortran/pr29629.f90: Likewise.
2495         * testsuite/libgomp.fortran/pr32550.f90: Likewise.
2496         * testsuite/libgomp.fortran/pr33880.f90: Likewise.
2497         * testsuite/libgomp.fortran/pr34020.f90: Likewise.
2498         * testsuite/libgomp.fortran/pr35130.f90: Likewise.
2499         * testsuite/libgomp.fortran/pr42162.f90: Likewise.
2500         * testsuite/libgomp.fortran/pr46753.f90: Likewise.
2501         * testsuite/libgomp.fortran/pr48894.f90: Likewise.
2502         * testsuite/libgomp.fortran/pr49792-1.f90: Likewise.
2503         * testsuite/libgomp.fortran/pr49792-2.f90: Likewise.
2504         * testsuite/libgomp.fortran/pr63938-1.f90: Likewise.
2505         * testsuite/libgomp.fortran/pr63938-2.f90: Likewise.
2506         * testsuite/libgomp.fortran/pr65597.f90: Likewise.
2507         * testsuite/libgomp.fortran/pr66199-1.f90: Likewise.
2508         * testsuite/libgomp.fortran/pr71014.f90: Likewise.
2509         * testsuite/libgomp.fortran/pr81304.f90: Likewise.
2510         * testsuite/libgomp.fortran/pr81841.f90: Likewise.
2511         * testsuite/libgomp.fortran/pr84418-1.f90: Likewise.
2512         * testsuite/libgomp.fortran/pr84418-2.f90: Likewise.
2513         * testsuite/libgomp.fortran/procptr1.f90: Likewise.
2514         * testsuite/libgomp.fortran/recursion1.f90: Likewise.
2515         * testsuite/libgomp.fortran/reduction1.f90: Likewise.
2516         * testsuite/libgomp.fortran/reduction2.f90: Likewise.
2517         * testsuite/libgomp.fortran/reduction3.f90: Likewise.
2518         * testsuite/libgomp.fortran/reduction4.f90: Likewise.
2519         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2520         * testsuite/libgomp.fortran/reduction6.f90: Likewise.
2521         * testsuite/libgomp.fortran/reference1.f90: Likewise.
2522         * testsuite/libgomp.fortran/reference2.f90: Likewise.
2523         * testsuite/libgomp.fortran/retval1.f90: Likewise.
2524         * testsuite/libgomp.fortran/retval2.f90: Likewise.
2525         * testsuite/libgomp.fortran/sharing1.f90: Likewise.
2526         * testsuite/libgomp.fortran/sharing2.f90: Likewise.
2527         * testsuite/libgomp.fortran/simd1.f90: Likewise.
2528         * testsuite/libgomp.fortran/simd2.f90: Likewise.
2529         * testsuite/libgomp.fortran/simd3.f90: Likewise.
2530         * testsuite/libgomp.fortran/simd4.f90: Likewise.
2531         * testsuite/libgomp.fortran/simd5.f90: Likewise.
2532         * testsuite/libgomp.fortran/simd6.f90: Likewise.
2533         * testsuite/libgomp.fortran/simd7.f90: Likewise.
2534         * testsuite/libgomp.fortran/stack.f90: Likewise.
2535         * testsuite/libgomp.fortran/strassen.f90: Likewise.
2536         * testsuite/libgomp.fortran/tabs1.f90: Likewise.
2537         * testsuite/libgomp.fortran/tabs2.f: Likewise.
2538         * testsuite/libgomp.fortran/target1.f90: Likewise.
2539         * testsuite/libgomp.fortran/target2.f90: Likewise.
2540         * testsuite/libgomp.fortran/target3.f90: Likewise.
2541         * testsuite/libgomp.fortran/target4.f90: Likewise.
2542         * testsuite/libgomp.fortran/target5.f90: Likewise.
2543         * testsuite/libgomp.fortran/target6.f90: Likewise.
2544         * testsuite/libgomp.fortran/target7.f90: Likewise.
2545         * testsuite/libgomp.fortran/target8.f90: Likewise.
2546         * testsuite/libgomp.fortran/task1.f90: Likewise.
2547         * testsuite/libgomp.fortran/task2.f90: Likewise.
2548         * testsuite/libgomp.fortran/task3.f90: Likewise.
2549         * testsuite/libgomp.fortran/task4.f90: Likewise.
2550         * testsuite/libgomp.fortran/taskgroup1.f90: Likewise.
2551         * testsuite/libgomp.fortran/taskloop1.f90: Likewise.
2552         * testsuite/libgomp.fortran/taskloop2.f90: Likewise.
2553         * testsuite/libgomp.fortran/taskloop3.f90: Likewise.
2554         * testsuite/libgomp.fortran/taskloop4.f90: Likewise.
2555         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2556         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2557         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2558         * testsuite/libgomp.fortran/threadprivate4.f90: Likewise.
2559         * testsuite/libgomp.fortran/udr1.f90: Likewise.
2560         * testsuite/libgomp.fortran/udr10.f90: Likewise.
2561         * testsuite/libgomp.fortran/udr11.f90: Likewise.
2562         * testsuite/libgomp.fortran/udr12.f90: Likewise.
2563         * testsuite/libgomp.fortran/udr13.f90: Likewise.
2564         * testsuite/libgomp.fortran/udr14.f90: Likewise.
2565         * testsuite/libgomp.fortran/udr15.f90: Likewise.
2566         * testsuite/libgomp.fortran/udr2.f90: Likewise.
2567         * testsuite/libgomp.fortran/udr3.f90: Likewise.
2568         * testsuite/libgomp.fortran/udr4.f90: Likewise.
2569         * testsuite/libgomp.fortran/udr5.f90: Likewise.
2570         * testsuite/libgomp.fortran/udr6.f90: Likewise.
2571         * testsuite/libgomp.fortran/udr7.f90: Likewise.
2572         * testsuite/libgomp.fortran/udr8.f90: Likewise.
2573         * testsuite/libgomp.fortran/udr9.f90: Likewise.
2574         * testsuite/libgomp.fortran/vla1.f90: Likewise.
2575         * testsuite/libgomp.fortran/vla2.f90: Likewise.
2576         * testsuite/libgomp.fortran/vla3.f90: Likewise.
2577         * testsuite/libgomp.fortran/vla4.f90: Likewise.
2578         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2579         * testsuite/libgomp.fortran/vla6.f90: Likewise.
2580         * testsuite/libgomp.fortran/vla7.f90: Likewise.
2581         * testsuite/libgomp.fortran/vla8.f90: Likewise.
2582         * testsuite/libgomp.fortran/workshare1.f90: Likewise.
2583         * testsuite/libgomp.fortran/workshare2.f90: Likewise.
2584         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
2585         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
2586         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
2587         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
2588         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
2589         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
2590         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
2591         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
2592         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
2593         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise.
2594         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
2595         * testsuite/libgomp.oacc-fortran/c2.pl: Likewise.
2596         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
2597         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
2598         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
2599         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
2600         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
2601         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
2602         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
2603         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
2604         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
2605         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90: Likewise.
2606         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: Likewise.
2607         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
2608         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
2609         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
2610         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
2611         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
2612         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
2613         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
2614         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
2615         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
2616         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
2617         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
2618         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
2619         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
2620         * testsuite/libgomp.oacc-fortran/host_data-1.f90: Likewise.
2621         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
2622         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise.
2623         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
2624         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise.
2625         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise.
2626         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise.
2627         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise.
2628         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
2629         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
2630         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
2631         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
2632         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
2633         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
2634         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
2635         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
2636         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
2637         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
2638         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
2639         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
2640         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
2641         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
2642         * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Likewise.
2643         * testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise.
2644         * testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise.
2645         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
2646         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
2647         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
2648         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise.
2649         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
2650         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
2651         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
2652         * testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
2653         * testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise.
2654         * testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise.
2655         * testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise.
2656         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
2657         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
2658         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
2659         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
2660         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
2661         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
2662         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
2663         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
2664         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
2665         * testsuite/libgomp.oacc-fortran/reduction-8.f90: Likewise.
2666         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
2667         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
2668         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
2669         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
2670         * testsuite/libgomp.oacc-fortran/routine-5.f90: Likewise.
2671         * testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
2672         * testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise.
2673         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
2674         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
2675         * testsuite/libgomp.oacc-fortran/update-1.f90: Likewise.
2677 2018-03-20  Richard Biener  <rguenther@suse.de>
2679         * testsuite/libgomp.graphite/force-parallel-4.c: XFAIL one
2680         parallelizable loop.
2682 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
2684         PR target/84148
2685         * configure: Regenerate.
2687 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
2689         PR fortran/84418
2690         * libgomp.fortran/pr84418-1.f90: New test.
2691         * libgomp.fortran/pr84418-2.f90: New test.
2693 2018-02-14  Jakub Jelinek  <jakub@redhat.com>
2695         PR fortran/84313
2696         * testsuite/libgomp.fortran/threadprivate4.f90: Add
2697         -std=f2003 -fall-intrinsics into dg-additional-options.
2699 2018-02-08  Martin Jambor  <mjambor@suse.cz>
2701         * testsuite/libgomp.hsa.c/pr82416.c: Make the function with target
2702         clonable.
2704 2018-02-08  Martin Jambor  <mjambor@suse.cz>
2706         * testsuite/libgomp.hsa.c/staticvar.c: New test.
2708 2018-02-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2710         * testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)
2711         [__cplusplus]: Declare extern "C".
2713 2018-02-07  Tom de Vries  <tom@codesourcery.com>
2715         PR libgomp/84217
2716         * testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test.
2718 2018-01-29  Christoph Spiel  <cspiel@freenet.de>
2719             Jakub Jelinek  <jakub@redhat.com>
2721         PR libgomp/84096
2722         * omp.h.in (omp_init_nest_lock_with_hint): Use omp_nest_lock_t
2723         instead of omp_lock_t.
2725 2018-01-25  Tom de Vries  <tom@codesourcery.com>
2727         PR target/84028
2728         * testsuite/libgomp.oacc-fortran/pr84028.f90: New test.
2730 2018-01-24  Tom de Vries  <tom@codesourcery.com>
2732         PR target/83589
2733         * testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test.
2735 2018-01-24  Tom de Vries  <tom@codesourcery.com>
2737         PR target/81352
2738         * testsuite/libgomp.oacc-fortran/pr81352.f90: New test.
2740 2018-01-19  Tom de Vries  <tom@codesourcery.com>
2741             Cesar Philippidis  <cesar@codesourcery.com>
2743         PR target/83920
2744         * testsuite/libgomp.oacc-c-c++-common/pr83920.c: New test.
2745         * testsuite/libgomp.oacc-fortran/pr83920.f90: New test.
2747 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
2749         Update copyright years.
2751         * libgomp.texi: Bump @copying's copyright year.
2753 2017-12-30  Tom de Vries  <tom@codesourcery.com>
2755         PR libgomp/83046
2756         * testsuite/libgomp.oacc-c-c++-common/pr83046.c: New test.
2757         * testsuite/libgomp.c-c++-common/pr83046.c: New test.
2759 2017-12-27  Tom de Vries  <tom@codesourcery.com>
2761         PR c++/83046
2762         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c (test_static)
2763         (test_nonstatic): Fix return type to workaround PR83046.
2765 2017-12-05  Jakub Jelinek  <jakub@redhat.com>
2767         PR testsuite/83281
2768         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use
2769         j suffix instead of i.
2770         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main):
2771         Likewise.
2773 2017-12-01  Cesar Philippidis  <cesar@codesourcery.com>
2775         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing
2776         call to acc_wait (1).
2778 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
2780         PR fortran/81304
2781         * testsuite/libgomp.fortran/pr81304.f90: New test.
2783 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
2785         PR fortran/81841
2786         * libgomp.fortran/pr81841.f90: New test.
2788 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
2790         PR libgomp/83106
2791         * target.c (gomp_target_init): Compute lengths just once and
2792         use them in both malloc size and subsequent copying.
2794 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
2796         * configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS.
2797         * acinclude.m4: Add cet.m4.
2798         * configure: Regenerate.
2799         * Makefile.in: Likewise.
2800         * testsuite/Makefile.in: Likewise.
2802 2017-11-15  Tom de Vries  <tom@codesourcery.com>
2804         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: New test, copied
2805         from asyncwait-1.f90.  Rewrite into C.  Rewrite from float to int.
2806         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-2.c: New test, copied
2807         from asyncwait-2.f90.  Rewrite into C.  Rewrite from float to int.
2808         * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-3.c: New test, copied
2809         from asyncwait-3.f90.  Rewrite into C.  Rewrite from float to int.
2811 2017-11-14  Tom de Vries  <tom@codesourcery.com>
2813         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Allow to run for
2814         non-nvidia devices.
2816 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
2818         PR c++/82835
2819         * testsuite/libgomp.c++/pr82835.C: New test.
2821 2017-11-06  Martin Liska  <mliska@suse.cz>
2823         * testsuite/libgomp.c++/loop-2.C: Return a value
2824         for functions with non-void return type, or change type to void,
2825         or add -Wno-return-type for test.
2826         * testsuite/libgomp.c++/loop-4.C: Likewise.
2827         * testsuite/libgomp.c++/parallel-1.C: Likewise.
2828         * testsuite/libgomp.c++/shared-1.C: Likewise.
2829         * testsuite/libgomp.c++/single-1.C: Likewise.
2830         * testsuite/libgomp.c++/single-2.C: Likewise.
2832 2017-10-31  Tom de Vries  <tom@codesourcery.com>
2834         * plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
2835         "do {} while (false)".
2836         (init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
2837         after HSA_DEBUG call.
2839 2017-10-28  Jakub Jelinek  <jakub@redhat.com>
2841         * target.c (struct gomp_coalesce_buf): New type.
2842         (MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
2843         (gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
2844         (gomp_copy_host2dev): Add CBUF argument, if copying into
2845         the cached ranges, memcpy into buffer instead of copying
2846         into device.
2847         (gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
2848         Add CBUF argument, pass it through to other calls.
2849         (gomp_map_vars): Aggregate copies from host to device if small enough
2850         and with small enough gaps in between into memcpy into a buffer and
2851         fewer host to device copies from the buffer.
2852         (gomp_update): Adjust gomp_copy_host2dev caller.
2854 2017-10-17  Thomas Schwinge  <thomas@codesourcery.com>
2856         * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
2857         run" directive.
2858         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
2859         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
2860         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
2861         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
2863 2017-10-16  Tom de Vries  <tom@codesourcery.com>
2865         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
2866         openacc_nvidia_accel_selected.
2867         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
2868         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
2869         * testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
2870         * testsuite/libgomp.oacc-fortran/declare-4.f90: Same
2871         * testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
2872         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
2873         openacc_nvidia_accel_selected. Skip for shared memory device.
2874         * testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
2875         * testsuite/libgomp.oacc-fortran/declare-3.f90: Same.
2877 2017-10-09  Martin Jambor  <mjambor@suse.cz>
2879         PR hsa/82416
2880         * testsuite/libgomp.hsa.c/pr82416.c: New test.
2882 2017-10-07  Tom de Vries  <tom@codesourcery.com>
2884         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
2885         Remove acc_device_nvidia references.
2886         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
2887         Same.
2889 2017-10-05  Tom de Vries  <tom@codesourcery.com>
2891         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove
2892         vector_length(32) clause from acc parallel directive.
2893         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same.
2895 2017-10-04  Tom de Vries  <tom@codesourcery.com>
2897         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
2898         (main): Reduce sum of arr elements.  Assert that hres is exactly
2899         representable in 32-bit floating point.
2900         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
2901         (main): Reduce sum of arr elements.  Assert that hres and hmres are
2902         exactly representable in 32-bit floating point.
2903         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
2905 2017-09-28  Tom de Vries  <tom@codesourcery.com>
2907         * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option
2908         setting.
2909         * testsuite/libgomp.c++/pr69393.C: Same.
2910         * testsuite/libgomp.c++/taskloop-1.C: Same.
2911         * testsuite/libgomp.c++/taskloop-3.C: Same.
2912         * testsuite/libgomp.c++/taskloop-4.C: Same.
2913         * testsuite/libgomp.c/for-4.c: Same.
2914         * testsuite/libgomp.c/pr66199-3.c: Same.
2915         * testsuite/libgomp.c/pr66199-4.c: Same.
2916         * testsuite/libgomp.c/pr66199-6.c: Same.
2917         * testsuite/libgomp.c/taskloop-1.c: Same.
2918         * testsuite/libgomp.c/taskloop-3.c: Same.
2919         * testsuite/libgomp.c/taskloop-4.c: Same.
2920         * testsuite/libgomp.fortran/aligned1.f03: Same.
2921         * testsuite/libgomp.fortran/condinc1.f: Same.
2922         * testsuite/libgomp.fortran/condinc3.f90: Same.
2923         * testsuite/libgomp.fortran/crayptr1.f90: Same.
2924         * testsuite/libgomp.fortran/crayptr2.f90: Same.
2925         * testsuite/libgomp.fortran/crayptr3.f90: Same.
2926         * testsuite/libgomp.fortran/omp_cond1.f: Same.
2927         * testsuite/libgomp.fortran/omp_cond3.F90: Same.
2928         * testsuite/libgomp.fortran/pr66199-1.f90: Same.
2929         * testsuite/libgomp.fortran/pr66199-2.f90: Same.
2930         * testsuite/libgomp.fortran/recursion1.f90: Same.
2931         * testsuite/libgomp.fortran/target2.f90: Same.
2932         * testsuite/libgomp.fortran/target5.f90: Same.
2933         * testsuite/libgomp.fortran/task3.f90: Same.
2935 2017-09-28  Tom de Vries  <tom@codesourcery.com>
2937         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove
2938         vector_length(32) clause from acc parallel directive.
2939         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same.
2941 2017-09-27  Tom de Vries  <tom@codesourcery.com>
2943         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main):
2944         Remove acc_device_nvidia references.
2946 2017-09-16  Tom de Vries  <tom@codesourcery.com>
2948         PR c/81875
2949         * testsuite/libgomp.c-c++-common/pr81875.c: New test.
2951 2017-09-14  Tom de Vries  <tom@codesourcery.com>
2953         * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove.
2954         * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ...
2955         * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here.
2956         * testsuite/libgomp.c/c.exp: Include test-cases from
2957         libgomp.c-c++-common.
2958         * testsuite/libgomp.c++/c++.exp: Same.  Force c++-mode compilation of .c
2959         files.
2961 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
2963         PR c++/81314
2964         * testsuite/libgomp.c++/pr81314.C: New test.
2966 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
2968         * libgomp.texi (Top): www.openacc.org now uses https.
2969         (Enabling OpenACC): Ditto.
2970         (acc_get_num_devices): Ditto.
2971         (acc_set_device_type): Ditto.
2972         (acc_get_device_type): Ditto.
2973         (acc_set_device_num): Ditto.
2974         (acc_get_device_num): Ditto.
2975         (acc_async_test): Ditto.
2976         (acc_async_test_all): Ditto.
2977         (acc_wait): Ditto.
2978         (acc_wait_all): Ditto.
2979         (acc_wait_all_async): Ditto.
2980         (acc_wait_async): Ditto.
2981         (acc_init): Ditto.
2982         (acc_shutdown): Ditto.
2983         (acc_on_device): Ditto.
2984         (acc_malloc): Ditto.
2985         (acc_free): Ditto.
2986         (acc_copyin): Ditto.
2987         (acc_present_or_copyin): Ditto.
2988         (acc_create): Ditto.
2989         (acc_present_or_create): Ditto.
2990         (acc_copyout): Ditto.
2991         (acc_delete): Ditto.
2992         (acc_update_device): Ditto.
2993         (acc_update_self): Ditto.
2994         (acc_map_data): Ditto.
2995         (acc_unmap_data): Ditto.
2996         (acc_deviceptr): Ditto.
2997         (acc_hostptr): Ditto.
2998         (acc_is_present): Ditto.
2999         (acc_memcpy_to_device): Ditto.
3000         (acc_memcpy_from_device): Ditto.
3001         (acc_get_current_cuda_device): Ditto.
3002         (acc_get_current_cuda_context): Ditto.
3003         (acc_get_cuda_stream): Ditto.
3004         (acc_set_cuda_stream): Ditto.
3005         (ACC_DEVICE_TYPE): Ditto.
3006         (ACC_DEVICE_NUM): Ditto.
3007         (OpenACC Library Interoperability): Ditto.
3009 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
3011         PR c/81687
3012         * testsuite/libgomp.c/pr81687-1.c: New test.
3013         * testsuite/libgomp.c/pr81687-2.c: New test.
3015 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
3017         PR c/69389
3018         * testsuite/libgomp.c/pr69389.c: New test.
3019         * testsuite/libgomp.c++/pr69389.C: New test.
3021 2017-08-07  Tom de Vries  <tom@codesourcery.com>
3023         PR middle-end/78266
3024         * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
3025         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
3027 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
3029         PR c/45784
3030         * testsuite/libgomp.c/pr45784.c: New test.
3031         * testsuite/libgomp.c++/pr45784.C: New test.
3033 2017-07-19  Tom de Vries  <tom@codesourcery.com>
3035         * testsuite/libgomp.oacc-c/vec.c: New test.
3037 2017-07-03  Tom de Vries  <tom@codesourcery.com>
3039         * plugin/plugin-hsa.c: Fix secure_getenv.h include.
3041 2017-06-27  Tom de Vries  <tom@codesourcery.com>
3043         * plugin/plugin-nvptx.c (notify_var): New function.
3044         (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.
3046 2017-06-27  Tom de Vries  <tom@codesourcery.com>
3048         * env.c (parse_unsigned_long_1): Factor out of ...
3049         (parse_unsigned_long): ... here.
3050         (parse_int_1): Factor out of ...
3051         (parse_int): ... here.
3052         (parse_int_secure): New function.
3053         (initialize_env): Use parse_int_secure for GOMP_DEBUG.
3054         * secure_getenv.h: Factor out of ...
3055         * plugin/plugin-hsa.c: ... here.
3056         * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.
3058 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
3060         PR c++/81130
3061         * testsuite/libgomp.c++/pr81130.C: New test.
3063 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3065         * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
3066         default args.
3067         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
3068         dg-xfail-run-if default args.
3070 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3072         * testsuite/libgomp.c/pr39591-2.c: Fix test case.
3073         * testsuite/libgomp.c/pr39591-3.c: Likewise.
3075 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
3077         PR libgomp/80822
3078         * config/linux/affinity.c (gomp_affinity_init_level_1): New function.
3079         (gomp_affinity_init_level): Use it.  Always analyze the core and thread
3080         sibling lists, depending on level just pick up what CPUs to put
3081         together into a place vs. whether add multiple ordered places.
3083 2017-05-24  Thomas Schwinge  <thomas@codesourcery.com>
3085         * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
3086         * libgomp.map (OACC_2.0.1): Add these.
3087         * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
3088         for "acc_wait", and "acc_wait_all", respectively.
3089         * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
3090         for "acc_wait", and "acc_wait_all", respectively.
3091         * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
3092         * libgomp.texi (acc_wait, acc_wait_all): Update.
3093         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
3094         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
3095         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
3097         * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
3098         acc_present_or_copyin and acc_present_or_create procedures,
3099         respectively.
3100         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
3101         generally different variants of OpenACC Runtime Library functions.
3102         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
3104         * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
3105         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
3107         * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
3108         of preprocessor definitions.
3109         * libgomp.h (strong_alias): Guard by "#ifdef
3110         HAVE_ATTRIBUTE_ALIAS".
3111         * oacc-mem.c: Provide "acc_pcreate" as alias for
3112         "acc_present_or_create", and "acc_pcopyin" as alias for
3113         "acc_present_or_copyin".
3114         * libgomp.map: New version "OACC_2.0.1".
3115         (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
3116         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
3117         its content into...
3118         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
3119         Extend testing.
3121         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
3122         when disabling nvptx offloading.
3124 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
3126         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
3127         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
3128         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
3130         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
3131         * testsuite/lib/libgomp.exp
3132         (check_effective_target_openacc_nvidia_accel_configured): New
3133         proc.
3134         * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
3135         (check_effective_target_c++): New procs.
3136         * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
3137         (check_effective_target_c++): Likewise.
3139 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
3141         PR middle-end/80809
3142         * testsuite/libgomp.c/pr80809-2.c: New test.
3143         * testsuite/libgomp.c/pr80809-3.c: New test.
3145         PR middle-end/80809
3146         * testsuite/libgomp.c/pr80809-1.c: New test.
3148         PR middle-end/80853
3149         * testsuite/libgomp.c/pr80853.c: New test.
3151 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
3153         * testsuite/libgomp.oacc-c++/template-reduction.C: Update.
3154         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
3155         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
3156         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
3157         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
3159         * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
3160         Debug output for failure.
3162 2017-05-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3164         * testsuite/lib/libgomp.exp: Load scanlang.exp.
3166 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3168         PR bootstrap/80531
3169         * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
3170         bootstrap compare failures.
3172 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
3174         * testsuite/libgomp.c/target-36.c: New testcase.
3176 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
3178         * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type
3179         instead of char.
3181 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
3183         PR libgomp/80394
3184         * testsuite/libgomp.c/pr80394.c: New test.
3186 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
3188         PR libgomp/79876
3189         * config/posix/thread-stacksize.h: New file.
3190         * config/darwin/thread-stacksize.h: New file.
3191         * config/nvptx/thread-stacksize.h: New file.
3192         * env.c: Include thread-stacksize.h.
3193         (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
3194         instead of 0.  Call pthread_attr_setstacksize even if
3195         GOMP_DEFAULT_STACKSIZE is non-zero.
3197 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
3199         * env.c (initialize_env): Initialize stacksize to 0.
3201 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
3203         PR c++/80029
3204         * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.
3206 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
3208         PR c/79940
3209         * testsuite/libgomp.c/pr79940.c: New test.
3211 2017-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3213         * testsuite/libgomp.c/pr48591.c: Enable on all __float128
3214         targets.
3215         Add __float128 options.
3217 2017-02-11  John David Anglin  <danglin@gcc.gnu.org>
3219         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove
3220         hppa*-*-* dg-skip-if directive.
3222 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
3224         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move
3225         dg-skip-if directive into a comment.
3227 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
3228             Chung-Lin Tang  <cltang@codesourcery.com>
3230         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
3231         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
3232         add additional case.
3233         * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
3234         "openacc_nvidia_accel_selected".
3235         * libgomp.oacc-fortran/nested-function-1.f90 (test2):
3236         Add num_workers(8) clause.
3238 2017-02-08  John David Anglin  <danglin@gcc.gnu.org>
3240         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on
3241         hppa*-*-*.
3242         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't
3243         include complex.h on hppa*-*-hpux*.
3244         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
3246 2017-02-02  Thomas Schwinge  <thomas@codesourcery.com>
3248         * plugin/plugin-nvptx.c (nvptx_exec): Make it static.
3250         * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
3251         GOMP_OFFLOAD_openacc_exec.  Adjust all users.
3252         (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
3253         GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
3254         (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
3255         GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
3256         (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
3257         GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
3258         (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
3259         GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.
3261 2017-01-31  Thomas Schwinge  <thomas@codesourcery.com>
3263         * libgomp-plugin.h: #include <stdbool.h>.
3264         (GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
3265         (GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
3266         (GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
3267         (GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
3268         (GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
3269         (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
3270         (GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
3271         (GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
3272         (GOMP_OFFLOAD_openacc_register_async_cleanup)
3273         (GOMP_OFFLOAD_openacc_async_test)
3274         (GOMP_OFFLOAD_openacc_async_test_all)
3275         (GOMP_OFFLOAD_openacc_async_wait)
3276         (GOMP_OFFLOAD_openacc_async_wait_async)
3277         (GOMP_OFFLOAD_openacc_async_wait_all)
3278         (GOMP_OFFLOAD_openacc_async_wait_all_async)
3279         (GOMP_OFFLOAD_openacc_async_set_async)
3280         (GOMP_OFFLOAD_openacc_create_thread_data)
3281         (GOMP_OFFLOAD_openacc_destroy_thread_data)
3282         (GOMP_OFFLOAD_openacc_get_current_cuda_device)
3283         (GOMP_OFFLOAD_openacc_get_current_cuda_context)
3284         (GOMP_OFFLOAD_openacc_get_cuda_stream)
3285         (GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
3286         * libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
3287         these.
3288         * plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
3289         (GOMP_OFFLOAD_unload_image): Fix argument types.
3291 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
3293         * testsuite/lib/libgomp.exp
3294         (check_effective_target_hsa_offloading_selected_nocache): Fix up
3295         check_compile invocation.  Fix up removal of executable.  Drop
3296         bogus "2>&1" argument.
3298         * testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules
3299         directive.
3301 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
3302             Martin Jambor  <mjambor@suse.cz>
3304         * plugin/hsa.h: Moved to top level include.
3305         * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
3307 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
3309         PR other/79046
3310         * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
3311         of cat to get version from BASE-VER file.
3312         * testsuite/Makefile.in: Regenerated.
3314 2017-01-19  Jakub Jelinek  <jakub@redhat.com>
3316         * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
3317         for _WIN64.
3319 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3321         * plugin/hsa.h: Add GCC runtime library exception.
3322         * plugin/hsa_ext_finalize.h: Likewise.
3324         * plugin/configfrag.ac: For --without-cuda-driver don't initialize
3325         CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.  If both
3326         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
3327         cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
3328         plugin/include/cuda as include dir and -ldl instead of -lcuda as
3329         library to link ptx plugin against.
3330         * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
3331         (CUDA_CALLS): Define.
3332         (cuda_lib, cuda_lib_inited): New variables.
3333         (init_cuda_lib): New function.
3334         (CUDA_CALL_PREFIX): Define.
3335         (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
3336         (CUDA_CALL): Use FN instead of (FN).
3337         (CUDA_CALL_NOCHECK): Define.
3338         (cuda_error, fini_streams_for_device, select_stream_for_async,
3339         nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
3340         event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
3341         nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
3342         nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
3343         CUDA_CALL_NOCHECK.
3344         (nvptx_init): Call init_cuda_lib, if it fails, return false.  Use
3345         CUDA_CALL_NOCHECK.
3346         (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
3347         Use CUDA_CALL_NOCHECK.
3348         * plugin/cuda/cuda.h: New file.
3349         * config.h.in: Regenerated.
3350         * configure: Regenerated.
3352         PR other/79046
3353         * configure.ac: Add GCC_BASE_VER.
3354         * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
3355         get version from BASE-VER file.
3356         * testsuite/Makefile.in: Regenerated.
3357         * configure: Regenerated.
3358         * Makefile.in: Regenerated.
3360 2017-01-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3362         PR libgomp/60670
3363         * Makefile.am: Make fincludedir multilib-aware.
3364         * Makefile.in: Regenerate.
3366 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
3368         Update copyright years.
3370         * libgomp.texi: Bump @copying's copyright year.
3372 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3374         * libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
3375         pthread_spinlock_t instead of gomp_mutex_t lock.
3376         (gomp_get_thread_pool): Likewise.
3377         (gomp_release_thread_pool): Likewise.
3378         * libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
3379         Likewise.
3381 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3383         * config/rtems/pool.h (gomp_get_thread_pool): Return proper
3384         thread pool in case nthreads == 1.
3386 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
3388         * config/nvptx/env.c: Delete.
3389         * icv.c: Move definitions of ICV variables back ...
3390         * env.c: ...here.  Do not compile environment-related functionality if
3391         LIBGOMP_OFFLOADED_ONLY is set.
3393 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
3395         * configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
3396         (LIBGOMP_OFFLOADED_ONLY): ...here; new define.
3397         * configure: Regenerate.
3398         * config.h.in: Likewise.
3400 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
3402         * Makefile.in: Regenerate with automake-1.11.6.
3403         * aclocal.m4: Likewise.
3404         * configure: Likewise.
3405         * testsuite/Makefile.in: Likewise.
3407 2016-11-28  Alexander Monakov  <amonakov@ispras.ru>
3409         * config/nvptx/critical.c: Delete to use generic implementation.
3411 2016-11-28  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
3413         * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include
3414         ../../affinity.c as fallback.
3415         * config/nvptx/affinity.c: Delete to use fallback implementation.
3417 2016-11-23  Alexander Monakov  <amonakov@ispras.ru>
3418             Jakub Jelinek  <jakub@redhat.com>
3419             Dmitry Melnik  <dm@ispras.ru>
3421         * Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
3422         * Makefile.in. Regenerate.
3423         * configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
3424         (LIBGOMP_USE_PTHREADS): ...here; new define.
3425         * configure: Regenerate.
3426         * config.h.in: Likewise.
3427         * config/posix/affinity.c: Move to...
3428         * affinity.c: ...here (new file).  Guard use of Pthreads-specific
3429         interface by LIBGOMP_USE_PTHREADS. 
3430         * critical.c: Split out GOMP_atomic_{start,end} into...
3431         * atomic.c: ...here (new file).
3432         * env.c: Split out ICV definitions into...
3433         * icv.c: ...here (new file) and...
3434         * icv-device.c: ...here. New file.
3435         * config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
3436         (gomp_destroy_lock_30): Ditto.
3437         (gomp_set_lock_30): Ditto.
3438         (gomp_unset_lock_30): Ditto.
3439         (gomp_test_lock_30): Ditto.
3440         (gomp_init_nest_lock_30): Ditto.
3441         (gomp_destroy_nest_lock_30): Ditto.
3442         (gomp_set_nest_lock_30): Ditto.
3443         (gomp_unset_nest_lock_30): Ditto.
3444         (gomp_test_nest_lock_30): Ditto.
3445         * lock.c: New.
3446         * config/nvptx/lock.c: New.
3447         * config/nvptx/bar.c: New.
3448         * config/nvptx/bar.h: New.
3449         * config/nvptx/doacross.h: New.
3450         * config/nvptx/error.c: New.
3451         * config/nvptx/icv-device.c: New.
3452         * config/nvptx/mutex.h: New.
3453         * config/nvptx/pool.h: New.
3454         * config/nvptx/proc.c: New.
3455         * config/nvptx/ptrlock.h: New.
3456         * config/nvptx/sem.h: New.
3457         * config/nvptx/simple-bar.h: New.
3458         * config/nvptx/target.c: New.
3459         * config/nvptx/task.c: New.
3460         * config/nvptx/team.c: New.
3461         * config/nvptx/time.c: New.
3462         * config/posix/simple-bar.h: New.
3463         * libgomp.h: Guard pthread.h inclusion.  Include simple-bar.h.
3464         (gomp_num_teams_var): Declare.
3465         (struct gomp_thread_pool): Change threads_dock member to
3466         gomp_simple_barrier_t.
3467         [__nvptx__] (gomp_thread): New implementation.
3468         (gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
3469         (gomp_thread_destructor): Ditto.
3470         (gomp_init_thread_affinity): Ditto.
3471         * team.c: Guard uses of Pthreads-specific interfaces by
3472         LIBGOMP_USE_PTHREADS.  Adjust all uses of threads_dock.
3473         (gomp_free_thread) [__nvptx__]: Do not call 'free'.
3474         * config/nvptx/alloc.c: Delete.
3475         * config/nvptx/barrier.c: Ditto.
3476         * config/nvptx/fortran.c: Ditto.
3477         * config/nvptx/iter.c: Ditto.
3478         * config/nvptx/iter_ull.c: Ditto.
3479         * config/nvptx/loop.c: Ditto.
3480         * config/nvptx/loop_ull.c: Ditto.
3481         * config/nvptx/ordered.c: Ditto.
3482         * config/nvptx/parallel.c: Ditto.
3483         * config/nvptx/priority_queue.c: Ditto.
3484         * config/nvptx/sections.c: Ditto.
3485         * config/nvptx/single.c: Ditto.
3486         * config/nvptx/splay-tree.c: Ditto.
3487         * config/nvptx/work.c: Ditto.
3488         * testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
3489         -foffload=-lgfortran in addition to -lgfortran.
3490         * testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.
3491         * plugin/plugin-nvptx.c: Include <limits.h>.
3492         (struct targ_fn_descriptor): Add new fields.
3493         (struct ptx_device): Ditto.  Set them...
3494         (nvptx_open_device): ...here.
3495         (nvptx_adjust_launch_bounds): New.
3496         (nvptx_host2dev): Allow NULL 'nvthd'.
3497         (nvptx_dev2host): Ditto.
3498         (GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
3499         (link_ptx): Adjust log sizes.
3500         (nvptx_host2dev): Allow NULL 'nvthd'.
3501         (nvptx_dev2host): Ditto.
3502         (nvptx_set_clocktick): New.  Use it...
3503         (GOMP_OFFLOAD_load_image): ...here.  Set new targ_fn_descriptor
3504         fields.
3505         (GOMP_OFFLOAD_dev2dev): New.
3506         (nvptx_adjust_launch_bounds): New.
3507         (nvptx_stacks_size): New.
3508         (nvptx_stacks_alloc): New.
3509         (nvptx_stacks_free): New.
3510         (GOMP_OFFLOAD_run): New.
3511         (GOMP_OFFLOAD_async_run): New (stub).
3513 2016-11-23  Martin Jambor  <mjambor@suse.cz>
3515         * testsuite/libgomp.hsa.c/bits-insns.c: New test.
3516         * testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
3517         * testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
3519 2016-11-23  Martin Liska  <mliska@suse.cz>
3520             Martin Jambor  <mjambor@suse.cz>
3522         * plugin/hsa.h: New file.
3523         * plugin/hsa_ext_finalize.h: New file.
3524         * plugin/configfrag.ac: Remove hsa-kmt-lib test.  Added checks for
3525         header file unistd.h, and functions secure_getenv, __secure_getenv,
3526         getuid, geteuid, getgid and getegid.
3527         * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added
3528         -D_GNU_SOURCE.
3529         * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h.
3530         Handle various cases of secure_getenv presence, add an implementation
3531         when we can test effective UID and GID.
3532         (struct hsa_runtime_fn_info): New structure.
3533         (hsa_runtime_fn_info hsa_fns): New variable.
3534         (hsa_runtime_lib): Likewise.
3535         (support_cpu_devices): Likewise.
3536         (init_enviroment_variables): Load newly introduced ENV
3537         variables.
3538         (hsa_warn): Call hsa run-time functions via hsa_fns structure.
3539         (hsa_fatal): Likewise.
3540         (DLSYM_FN): New macro.
3541         (init_hsa_runtime_functions): New function.
3542         (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns
3543         structure.  Depending on environment, also allow CPU devices.
3544         (init_hsa_context): Call hsa run-time functions via hsa_fns structure.
3545         (get_kernarg_memory_region): Likewise.
3546         (GOMP_OFFLOAD_init_device): Likewise.
3547         (destroy_hsa_program): Likewise.
3548         (init_basic_kernel_info): New function.
3549         (GOMP_OFFLOAD_load_image): Use it.
3550         (create_and_finalize_hsa_program): Call hsa run-time functions via
3551         hsa_fns structure.
3552         (create_single_kernel_dispatch): Likewise.
3553         (release_kernel_dispatch): Likewise.
3554         (init_single_kernel): Likewise.
3555         (parse_target_attributes): Allow up multiple HSA grid dimensions.
3556         (get_group_size): New function.
3557         (run_kernel): Likewise.
3558         (GOMP_OFFLOAD_run): Outline most functionality to run_kernel.
3559         (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns
3560         structure.
3561         * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support.
3562         * testsuite/libgomp-test-support.exp.in: Likewise.
3563         * Makefile.in: Regenerated.
3564         * aclocal.m4: Likewise.
3565         * config.h.in: Likewise.
3566         * configure: Likewise.
3567         * testsuite/Makefile.in: Likewise.
3569 2016-11-15  Martin Jambor  <mjambor@suse.cz>
3570             Alexander Monakov  <amonakov@ispras.ru>
3572         * testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
3573         mapping clauses to target constructs.
3574         * testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
3576 2016-11-15  Matthias Klose  <doko@ubuntu.com>
3578         * configure: Regenerate.
3580 2016-11-10  Jakub Jelinek  <jakub@redhat.com>
3582         * omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
3583         * omp_lib.h.in (openmp_version): Likewise.
3584         * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
3585         of 201307.
3586         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
3588         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90
3589         (fib_wrapper): Add map(from: x) clause.
3590         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90
3591         (e_53_2): Likewise.
3592         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90
3593         (accum): Add map(tmp) clause.
3594         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90
3595         (accum): Add map(tofrom: tmp) clause.
3596         * testsuite/libgomp.fortran/examples-4/target_data-3.f90
3597         (gramSchmidt): Likewise.
3598         * testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
3599         map(tofrom: sum) clause.
3600         * testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
3601         map (alloc: a, l) clause.  Add defaultmap(tofrom: scalar) clause.
3602         * testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
3603         only allowed on the loop iterator.
3604         * testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
3605         * testsuite/libgomp.fortran/taskloop2.f90: New test.
3606         * testsuite/libgomp.fortran/taskloop4.f90: New test.
3607         * testsuite/libgomp.fortran/doacross1.f90: New test.
3608         * testsuite/libgomp.fortran/doacross3.f90: New test.
3609         * testsuite/libgomp.fortran/taskloop1.f90: New test.
3610         * testsuite/libgomp.fortran/taskloop3.f90: New test.
3611         * testsuite/libgomp.fortran/doacross2.f90: New test.
3612         * testsuite/libgomp.c/doacross-1.c (main): Add missing
3613         #pragma omp atomic read.
3614         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
3615         * testsuite/libgomp.c/doacross-3.c (main): Likewise.
3617 2016-11-02  Cesar Philippidis  <cesar@codesourcery.com>
3618             Nathan Sidwell  <nathan@acm.org>
3620         * plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes
3621         to determine default geometry.
3622         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang
3623         dimension.
3625 2016-11-01  Jakub Jelinek  <jakub@redhat.com>
3627         * hashtab.h: Use standard GPLv3 with runtime exception
3628         boilerplate.
3630 2016-10-27  Aldy Hernandez  <aldyh@redhat.com>
3632         * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
3633         size when allocating new thread.
3635 2016-09-14  Marek Polacek  <polacek@redhat.com>
3637         * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
3639 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
3641         PR fortran/71014
3642         * testsuite/libgomp.fortran/pr71014.f90: New test.
3644 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
3646         PR middle-end/70895
3647         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
3648         firstprivate clauses.
3649         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
3650         copy clauses.
3651         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
3652         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
3653         * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
3654         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
3655         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
3656         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
3657         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
3658         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
3659         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
3660         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
3661         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
3662         * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
3664 2016-08-14  Chung-Lin Tang  <cltang@codesourcery.com>
3666         PR fortran/70598
3667         * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.
3669 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
3671         PR c++/58706
3672         * testsuite/libgomp.c++/pr58706.C: New test.
3674 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
3676         * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
3677         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
3678         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
3679         Likewise.
3680         * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
3681         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
3682         Likewise.
3683         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
3685         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
3686         test, and don't hardcode -O0.
3688 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
3690         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
3692 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
3694         * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
3695         test.
3697 2016-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3699         PR middle-end/71734
3700         * testsuite/libgomp.fortran/pr71734-1.f90: New test.
3701         * testsuite/libgomp.fortran/pr71734-2.f90: Likewise.
3703 2016-07-01  Jakub Jelinek  <jakub@redhat.com>
3705         PR fortran/71717
3706         * testsuite/libgomp.fortran/associate3.f90: New test.
3708 2016-06-17  Jakub Jelinek  <jakub@redhat.com>
3710         * testsuite/libgomp.c++/target-21.C: New test.
3712 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
3714         * testsuite/libgomp.c++/target-20.C: New test.
3716 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3717             Cesar Philippidis  <cesar@codesourcery.com>
3719         PR middle-end/71373
3720         * libgomp.oacc-c/nested-function-1.c: New file.
3721         * libgomp.oacc-c/nested-function-2.c: Likewise.
3722         * libgomp.oacc-fortran/nested-function-1.f90: Likewise.
3723         * libgomp.oacc-fortran/nested-function-2.f90: Likewise.
3724         * libgomp.oacc-fortran/nested-function-3.f90: Likewise.
3726 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3728         PR c/71381
3729         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include
3730         "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c".
3731         * testsuite/libgomp.oacc-fortran/cache-1.f95: New file.
3733 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
3735         * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
3736         * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.
3738 2016-06-01  Cesar Philippidis  <cesar@codesourcery.com>
3740         PR c/70688
3741         * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file.
3743 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
3745         * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
3746         instead of invalid schedule(static, 0).
3747         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
3749 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
3751         * oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
3752         * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
3753         parameter, use to set async stream around call to gomp_unmap_vars,
3754         call gomp_unmap_vars() with 'do_copyfrom' set to true.
3755         * plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
3756         (event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
3757         events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
3758         (event_add): Add int parameter, initialize 'val' field when
3759         adding new ptx_event struct.
3760         (nvptx_evec): Adjust event_add() call arguments.
3761         (nvptx_host2dev): Likewise.
3762         (nvptx_dev2host): Likewise.
3763         (nvptx_wait_async): Likewise.
3764         (nvptx_wait_all_async): Likewise.
3765         (GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
3766         pass to event_add() call.
3767         * oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
3768         parameter.
3769         * oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
3770         call openacc.register_async_cleanup_func() hook.
3771         * oacc-parallel.c (GOACC_parallel_keyed): Likewise.
3772         * target.c (gomp_copy_from_async): Delete function.
3773         (gomp_map_vars): Remove async_refcount.
3774         (gomp_unmap_vars): Likewise.
3775         (gomp_load_image_to_device): Likewise.
3776         (omp_target_associate_ptr): Likewise.
3777         * libgomp.h (struct splay_tree_key_s): Remove async_refcount.
3778         (acc_dispatch_t.register_async_cleanup_func): Add int parameter.
3779         (gomp_copy_from_async): Remove.
3781 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
3783         * target.c (gomp_device_copy): New function.
3784         (gomp_copy_host2dev): Likewise.
3785         (gomp_copy_dev2host): Likewise.
3786         (gomp_free_device_memory): Likewise.
3787         (gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
3788         (gomp_map_pointer): Likewise.
3789         (gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
3790         NULL value from alloc_func plugin hook.
3791         (gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
3792         (gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
3793         (gomp_unmap_vars): Likewise.
3794         (gomp_update): Adjust to call gomp_copy_dev2host and
3795         gomp_copy_host2dev functions.
3796         (gomp_unload_image_from_device): Handle false value from
3797         unload_image_func plugin hook.
3798         (gomp_init_device): Handle false value from init_device_func
3799         plugin hook.
3800         (gomp_exit_data): Adjust to call gomp_copy_dev2host.
3801         (omp_target_free): Adjust to call gomp_free_device_memory.
3802         (omp_target_memcpy): Handle return values from host2dev_func,
3803         dev2host_func, and dev2dev_func plugin hooks.
3804         (omp_target_memcpy_rect_worker): Likewise.
3805         (gomp_target_fini): Handle false value from fini_device_func
3806         plugin hook.
3807         * libgomp.h (struct gomp_device_descr): Adjust return type of
3808         init_device_func, fini_device_func, unload_image_func, free_func,
3809         dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
3810         * oacc-init.c (acc_shutdown_1): Handle false value from
3811         fini_device_func plugin hook.
3812         * oacc-host.c (host_init_device): Change return type to bool.
3813         (host_fini_device): Likewise.
3814         (host_unload_image): Likewise.
3815         (host_free): Likewise.
3816         (host_dev2host): Likewise.
3817         (host_host2dev): Likewise.
3818         * oacc-mem.c (acc_free): Handle plugin hook fatal error case.
3819         (acc_memcpy_to_device): Likewise.
3820         (acc_memcpy_from_device): Likewise.
3821         (delete_copyout): Add libfnname parameter, handle free_func
3822         hook fatal error case.
3823         (acc_delete): Adjust delete_copyout call.
3824         (acc_copyout): Likewise.
3825         (update_dev_host): Move gomp_mutex_unlock to after
3826         host2dev/dev2host hook calls.
3828         * plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
3829         to 'hsa_error_msg', for clarity.
3830         (hsa_fatal): Likewise.
3831         (hsa_error): New function.
3832         (init_hsa_context): Change return type to bool, adjust to return
3833         false on error.
3834         (GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
3835         return value.
3836         (GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
3837         return false on error.
3838         (get_agent_info): Adjust to return NULL on error.
3839         (destroy_hsa_program): Change return type to bool, adjust to
3840         return false on error.
3841         (GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
3842         (destroy_module): Change return type to bool, adjust to
3843         return false on error.
3844         (GOMP_OFFLOAD_unload_image): Likewise.
3845         (GOMP_OFFLOAD_fini_device): Likewise.
3846         (GOMP_OFFLOAD_alloc): Change to return NULL when called.
3847         (GOMP_OFFLOAD_free): Change to return false when called.
3848         (GOMP_OFFLOAD_dev2host): Likewise.
3849         (GOMP_OFFLOAD_host2dev): Likewise.
3850         (GOMP_OFFLOAD_dev2dev): Likewise.
3852         * plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
3853         (CUDA_CALL): Likewise.
3854         (CUDA_CALL_ASSERT): Likewise.
3855         (map_init): Change return type to bool, use CUDA_CALL* macros.
3856         (map_fini): Likewise.
3857         (init_streams_for_device): Change return type to bool, adjust
3858         call to map_init.
3859         (fini_streams_for_device): Change return type to bool, adjust
3860         call to map_fini.
3861         (select_stream_for_async): Release stream_lock before calls to
3862         GOMP_PLUGIN_fatal, adjust call to map_init.
3863         (nvptx_init): Use CUDA_CALL* macros.
3864         (nvptx_attach_host_thread_to_device): Change return type to bool,
3865         use CUDA_CALL* macros.
3866         (nvptx_open_device): Use CUDA_CALL* macros.
3867         (nvptx_close_device): Change return type to bool, use CUDA_CALL*
3868         macros.
3869         (nvptx_get_num_devices): Use CUDA_CALL* macros.
3870         (link_ptx): Change return type to bool, use CUDA_CALL* macros.
3871         (nvptx_exec): Use CUDA_CALL* macros.
3872         (nvptx_alloc): Use CUDA_CALL* macros.
3873         (nvptx_free): Change return type to bool, use CUDA_CALL* macros.
3874         (nvptx_host2dev): Likewise.
3875         (nvptx_dev2host): Likewise.
3876         (nvptx_wait): Use CUDA_CALL* macros.
3877         (nvptx_wait_async): Likewise.
3878         (nvptx_wait_all): Likewise.
3879         (nvptx_wait_all_async): Likewise.
3880         (nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
3881         use CUDA_CALL* macros, adjust call to map_fini.
3882         (GOMP_OFFLOAD_init_device): Change return type to bool,
3883         adjust code accordingly.
3884         (GOMP_OFFLOAD_fini_device): Likewise.
3885         (GOMP_OFFLOAD_load_image): Adjust calls to
3886         nvptx_attach_host_thread_to_device/link_ptx to handle errors,
3887         use CUDA_CALL* macros.
3888         (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
3889         return code.
3890         (GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
3891         (GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
3892         handle error return.
3893         (GOMP_OFFLOAD_dev2host): Likewise.
3894         (GOMP_OFFLOAD_host2dev): Likewise.
3895         (GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
3896         (GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
3898 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3900         * oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
3901         (acc_free): Likewise.
3902         (acc_memcpy_to_device): Likewise.
3903         (acc_memcpy_from_device): Likewise.
3904         (acc_deviceptr): Likewise.
3905         (acc_hostptr): Likewise.
3906         (acc_is_present): Likewise.
3907         (acc_map_data): Likewise.
3908         (acc_unmap_data): Likewise.
3909         (present_create_copy): Likewise.
3910         (delete_copyout): Likewise.
3911         (update_dev_host): Likewise.
3912         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
3913         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
3914         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
3915         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
3916         * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
3917         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
3918         it only runs on nvptx targets.
3919         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
3920         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
3921         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
3922         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
3923         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
3924         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
3925         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
3926         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
3927         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
3928         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
3929         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
3930         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
3931         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
3932         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
3933         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
3934         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
3935         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
3936         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
3937         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
3938         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
3939         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
3940         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
3941         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
3943 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3945         * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
3947 2016-05-17  Chung-Lin Tang  <cltang@codesourcery.com>
3949         * oacc-init.c (acc_init): Remove !cached_base_dev condition on call
3950         to gomp_init_targets_once.
3951         (acc_set_device_type): Remove !cached_base_dev condition on call to
3952         gomp_init_targets_once, move call to before acc_device_lock acquire,
3953         to avoid deadlock.
3954         (acc_get_device_num): Remove !cached_base_dev condition on call to
3955         gomp_init_targets_once.
3956         (acc_set_device_num): Likewise.
3958 2016-05-16  Martin Jambor  <mjambor@suse.cz>
3960         * testsuite/libgomp.hsa.c/complex-align-2.c: New test.
3962 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3964         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
3965         expected partitioning.
3967 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
3969         PR middle-end/70626
3970         * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
3971         * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
3972         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.
3974 2016-04-21  Alexander Monakov  <amonakov@ispras.ru>
3976         * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error
3977         non-fatal.
3979 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
3981         PR middle-end/70680
3982         * testsuite/libgomp.c/pr70680-1.c: New test.
3983         * testsuite/libgomp.c/pr70680-2.c: New test.
3985 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
3987         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
3988         pass parameter variables to subroutines.
3990 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
3992         PR middle-end/70643
3993         * testsuite/libgomp.oacc-fortran/pr70643.f90: New test.
3995 2016-04-13  Cesar Philippidis  <cesar@codesourcery.com>
3997         PR testsuite/68242
3998         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test.
3999         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
4001 2016-04-12  Thomas Schwinge  <thomas@codesourcery.com>
4003         * libgomp_g.h: Rename GOACC_parallel_keyd prototype to
4004         GOACC_parallel_keyed, restore GOACC_parallel prototype, new
4005         GOACC_declare prototype.
4007         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
4008         Merge this file, and...
4009         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
4010         ... this file, and...
4011         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
4012         ... this file, and...
4013         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
4014         ... this file, and...
4015         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
4016         ... this file, and...
4017         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
4018         ... this file, and...
4019         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
4020         ... this file, and...
4021         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
4022         ... this file, and...
4023         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
4024         ... this file, and...
4025         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
4026         ... this file, and...
4027         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
4028         ... this file, and...
4029         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
4030         ... this file, and...
4031         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
4032         ... this file into...
4033         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
4034         file.
4036         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
4037         Make failure observable.
4039 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4041         * libgomp.h (struct gomp_target_task): Remove firstprivate_copies
4042         field.
4043         * target.c (gomp_target_fallback_firstprivate,
4044         gomp_target_unshare_firstprivate): Removed.
4045         (GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory
4046         before waiting for dependencies.
4047         (gomp_target_task_fn): Don't copy firstprivate vars here.
4048         * task.c (GOMP_PLUGIN_target_task_completion): Don't free
4049         firstprivate_copies here.
4050         (gomp_create_target_task): Don't initialize firstprivate_copies field.
4051         * testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of
4052         explicit/implicit firstprivate.
4054 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4056         PR lto/70289
4057         PR ipa/70348
4058         PR tree-optimization/70373
4059         PR middle-end/70533
4060         PR middle-end/70534
4061         PR middle-end/70535
4062         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New
4063         test.
4064         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New
4065         test.
4066         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New
4067         test.
4068         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New
4069         test.
4070         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New
4071         test.
4072         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New
4073         test.
4074         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New
4075         test.
4076         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New
4077         test.
4078         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New
4079         test.
4080         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test.
4081         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test.
4082         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test.
4083         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New
4084         test.
4085         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New
4086         test.
4087         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New
4088         test.
4089         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New
4090         test.
4091         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test
4092         coverage.
4093         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
4094         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
4095         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test.
4096         * testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test.
4097         * testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test.
4098         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test
4099         coverage.
4100         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
4101         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
4102         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
4103         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
4104         * testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test.
4105         * testsuite/libgomp.oacc-c-c++-common/reduction.h: New test.
4106         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test.
4107         * testsuite/libgomp.oacc-fortran/pr70289.f90: New test.
4108         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage.
4109         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
4110         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
4111         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
4112         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
4113         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
4114         * testsuite/libgomp.oacc-fortran/reduction-7.f90: New test.
4116 2016-03-30  Thomas Schwinge  <thomas@codesourcery.com>
4117             James Norris  <jnorris@codesourcery.com>
4118             Nathan Sidwell  <nathan@codesourcery.com>
4119             Julian Brown  <julian@codesourcery.com>
4120             Cesar Philippidis  <cesar@codesourcery.com>
4121             Chung-Lin Tang  <cltang@codesourcery.com>
4122             Tom de Vries  <tom@codesourcery.com>
4124         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update.
4125         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
4126         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
4127         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise.
4128         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
4129         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
4130         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
4131         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
4132         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
4133         XFAIL.
4134         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
4135         Incorporate...
4136         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this
4137         file.
4138         * testsuite/libgomp.oacc-c++/template-reduction.C: New file.
4139         * testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise.
4140         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise.
4141         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c:
4142         Likewise.
4143         * testsuite/libgomp.oacc-c-c++-common/private-variables.c:
4144         Likewise.
4145         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
4146         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise.
4147         * testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
4148         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise.
4149         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
4150         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
4151         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
4152         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
4153         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
4154         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90:
4155         Likewise.
4156         * testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise.
4157         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
4158         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this
4159         file...
4160         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this
4161         file into...
4162         * testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new
4163         file.  Update.
4164         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New
4165         file.
4166         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c:
4167         Likewise.
4168         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to...
4169         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c:
4170         ... this new file.  Update.
4171         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to...
4172         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c:
4173         ... this new file.  Update.
4174         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New
4175         file.  Incorporate...
4176         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this
4177         file, and...
4178         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this
4179         file, and...
4180         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this
4181         file.
4182         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file.
4184 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
4186         * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call
4187         set-torture-options.
4189 2016-03-24  Thomas Schwinge  <thomas@codesourcery.com>
4191         * testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use
4192         gcc-dg-runtest.
4193         * testsuite/libgomp.oacc-c/c.exp: Likewise.
4194         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify
4195         -fno-builtin-acc_on_device instead of -O0.
4196         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for
4197         -O0.
4198         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
4199         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c:
4200         Likewise.
4201         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
4202         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
4203         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
4204         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
4205         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
4206         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
4207         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
4208         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
4209         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
4210         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
4211         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
4212         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
4213         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
4214         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
4215         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
4216         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
4217         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
4218         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
4219         Don't specify -O2.
4220         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
4221         Likewise.
4222         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
4223         Likewise.
4225 2016-03-24  Martin Liska  <mliska@suse.cz>
4227         * plugin/plugin-hsa.c (packet_store_release): New function
4228         that is taken from the HSA runtime manual.
4229         (GOMP_OFFLOAD_run): Use the function.
4231 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
4233         PR c++/70376
4234         * testsuite/libgomp.c++/pr70376.C: New test.
4236 2016-03-23  Tom de Vries  <tom@codesourcery.com>
4238         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing
4239         initialization of lresult and lvresult.
4240         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Same.
4242 2016-03-23  James Norris  <jnorris@codesourcery.com>
4243             Daichi Fukuoka <dc-fukuoka@sgi.com>
4245         PR libgomp/69414
4246         * oacc-mem.c (delete_copyout, update_dev_host): Fix device address.
4247         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests.
4248         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
4249         * testsuite/libgomp.oacc-fortran/update-1.f90: New file.
4251 2016-03-23  Martin Liska  <mliska@suse.cz>
4253         PR hsa/70337
4254         * plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow
4255         argument just in case a dispatched kernel uses that argument.
4257 2016-03-16  Thomas Schwinge  <thomas@codesourcery.com>
4259         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to
4260         -ftree-parallelize-loops/-fopenacc changes.
4261         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
4262         Likewise.
4263         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
4264         Likewise.
4265         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
4266         Likewise.
4267         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
4268         Likewise.
4269         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
4270         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
4272 2016-03-13  Thomas Schwinge  <thomas@codesourcery.com>
4274         * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to
4275         always_ld_library_path the path to libgcc_s.
4277 2016-03-10  Cesar Philippidis  <cesar@codesourcery.com>
4279         PR testsuite/70009
4280         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed.
4282 2016-03-09  Tom de Vries  <tom@codesourcery.com>
4284         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test.
4285         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same.
4286         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
4287         Same.
4288         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same.
4289         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same.
4290         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same.
4291         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same.
4293 2016-03-07  Martin Jambor  <mjambor@suse.cz>
4295         * testsuite/lib/libgomp.exp
4296         (check_effective_target_hsa_offloading_selected_nocache): New.
4297         (check_effective_target_hsa_offloading_selected): Likewise.
4298         * testsuite/libgomp.hsa.c/c.exp: Likewise.
4299         * testsuite/libgomp.hsa.c/alloca-1.c: Likewise.
4300         * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise.
4301         * testsuite/libgomp.hsa.c/builtins-1.c: Likewise.
4302         * testsuite/libgomp.hsa.c/complex-1.c: Likewise.
4303         * testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise.
4304         * testsuite/libgomp.hsa.c/function-call-1.c: Likewise.
4305         * testsuite/libgomp.hsa.c/get-level-1.c: Likewise.
4306         * testsuite/libgomp.hsa.c/gridify-1.c: Likewise.
4307         * testsuite/libgomp.hsa.c/gridify-2.c: Likewise.
4308         * testsuite/libgomp.hsa.c/gridify-3.c: Likewise.
4309         * testsuite/libgomp.hsa.c/gridify-4.c: Likewise.
4310         * testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise.
4311         * testsuite/libgomp.hsa.c/pr69568.c: Likewise.
4312         * testsuite/libgomp.hsa.c/rotate-1.c: Likewise.
4313         * testsuite/libgomp.hsa.c/switch-1.c: Likewise.
4314         * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise.
4316 2016-03-07  Martin Jambor  <mjambor@suse.cz>
4318         * testsuite/libgomp.c/examples-4/async_target-2.c: Only run on
4319         non-shared memory accelerators.
4320         * testsuite/libgomp.c/examples-4/device-1.c: Likewise.
4321         * testsuite/libgomp.c/examples-4/target-5.c: Likewise.
4322         * testsuite/libgomp.c/examples-4/target_data-6.c: Likewise.
4323         * testsuite/libgomp.c/examples-4/target_data-7.c: Likewise.
4324         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
4325         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
4326         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
4327         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
4328         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
4330 2016-03-07  Martin Jambor  <mjambor@suse.cz>
4332         * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to
4333         ALWAYS_CFLAGS.
4335 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
4337         PR libgomp/69555
4338         * testsuite/libgomp.c++/pr69555-1.C: New test.
4339         * testsuite/libgomp.c++/pr69555-2.C: New test.
4341 2016-02-26  Keith McDaniel <k.allen.mcdaniel@gmail.com>
4342             Martin Jambor  <mjambor@suse.cz>
4344         * testsuite/lib/libgomp.exp
4345         (check_effective_target_offload_device_shared_as): New proc.
4346         * testsuite/libgomp.c++/declare_target-1.C: New test.
4348 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
4350         PR driver/68463
4351         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
4353 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
4355         * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
4356         * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
4357         dims.
4358         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
4359         -ftree-parallelize-loops/-fopenacc changes.
4360         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
4361         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
4362         Likewise.
4363         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
4364         Likewise.
4365         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
4366         Likewise.
4367         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
4368         Likewise.
4369         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
4370         Likewise.
4371         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
4372         Likewise.
4373         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
4374         Likewise.
4375         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
4376         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
4377         Likewise.
4378         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
4379         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
4380         Likewise.
4381         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
4382         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
4383         Likewise.
4385 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
4387         * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test.
4389 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
4391         PR driver/69805
4392         * testsuite/libgomp.c/pr69805.c: New test.
4394 2016-02-16  Tom de Vries  <tom@codesourcery.com>
4396         PR lto/67709
4397         * testsuite/libgomp.fortran/declare-simd-4.f90: New test.
4399 2016-02-09  Tom de Vries  <tom@codesourcery.com>
4401         PR tree-optimization/69599
4402         * testsuite/libgomp.c/omp-nested-3.c: New test.
4403         * testsuite/libgomp.c/pr46032-2.c: New test.
4404         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test.
4405         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test.
4407 2016-02-09  Tom de Vries  <tom@codesourcery.com>
4409         PR lto/69707
4410         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
4412 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
4414         * testsuite/libgomp.c/target-31.c: Fix testcase.
4416 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
4418         * testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
4419         clause.
4420         * testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
4421         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
4422         reduction and map clauses.
4423         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
4425 2016-02-02  James Norris  <jnorris@codesourcery.com>
4427         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
4429 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
4431         * libgomp.map (GOACC_2.0): Remove GOACC_host_data.
4432         * oacc-parallel.c (GOACC_host_data): Remove function definition.
4434         * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
4435         cases.
4437         * plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
4438         variables.
4439         * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
4440         (hsa_kmt_lib): Set variables.
4441         * testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
4442         always_ld_library_path.
4443         * Makefile.in: Regenerate.
4444         * configure: Likewise.
4445         * testsuite/Makefile.in: Likewise.
4447         * plugin/configfrag.ac (offload_additional_options)
4448         (offload_additional_lib_paths): Don't amend for hsa offloading.
4449         * configure: Regenerate.
4451         * plugin/configfrag.ac: Don't configure for offloading target if
4452         we don't build the corresponding plugin.
4453         * configure: Regenerate.
4455 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
4457         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
4458         * testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
4460 2016-01-26  Tom de Vries  <tom@codesourcery.com>
4462         PR tree-optimization/69110
4463         * testsuite/libgomp.c/pr69110.c: New test.
4465 2016-01-25  Richard Biener  <rguenther@suse.de>
4467         PR lto/69393
4468         * testsuite/libgomp.c++/pr69393.C: New testcase.
4470 2016-01-22  Ilya Verbin  <ilya.verbin@intel.com>
4472         * target.c (gomp_get_target_fn_addr): Allow host fallback if target
4473         function wasn't mapped to the device with non-shared memory.
4475 2016-01-20  Ilya Verbin  <ilya.verbin@intel.com>
4477         * task.c (gomp_create_target_task): Set firstprivate_copies to NULL.
4479 2016-01-19  Martin Jambor  <mjambor@suse.cz>
4480             Martin Liska  <mliska@suse.cz>
4482         * plugin/Makefrag.am: Add HSA plugin requirements.
4483         * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
4484         (HSA_RUNTIME_LIB): Likewise.
4485         (HSA_RUNTIME_CPPFLAGS): Likewise.
4486         (HSA_RUNTIME_INCLUDE): New substitution.
4487         (HSA_RUNTIME_LIB): Likewise.
4488         (HSA_RUNTIME_LDFLAGS): Likewise.
4489         (hsa-runtime): New configure option.
4490         (hsa-runtime-include): Likewise.
4491         (hsa-runtime-lib): Likewise.
4492         (PLUGIN_HSA): New substitution variable.
4493         Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
4494         configure options.
4495         (PLUGIN_HSA_CPPFLAGS): Likewise.
4496         (PLUGIN_HSA_LDFLAGS): Likewise.
4497         (PLUGIN_HSA_LIBS): Likewise.
4498         Check that we have access to HSA run-time.
4499         * libgomp-plugin.h (offload_target_type): New element
4500         OFFLOAD_TARGET_TYPE_HSA.
4501         * libgomp.h (gomp_target_task): New fields firstprivate_copies and
4502         args.
4503         (bool gomp_create_target_task): Updated.
4504         (gomp_device_descr): Extra parameter of run_func and async_run_func,
4505         new field can_run_func.
4506         * libgomp_g.h (GOMP_target_ext): Update prototype.
4507         * oacc-host.c (host_run): Added a new parameter args.
4508         * target.c (calculate_firstprivate_requirements): New function.
4509         (copy_firstprivate_data): Likewise.
4510         (gomp_target_fallback_firstprivate): Use them.
4511         (gomp_target_unshare_firstprivate): New function.
4512         (gomp_get_target_fn_addr): Allow returning NULL for shared memory
4513         devices.
4514         (GOMP_target): Do host fallback for all shared memory devices.  Do not
4515         pass any args to plugins.
4516         (GOMP_target_ext): Introduce device-specific argument parameter args.
4517         Allow host fallback if device shares memory.  Do not remap data if
4518         device has shared memory.
4519         (gomp_target_task_fn): Likewise.  Also treat shared memory devices
4520         like host fallback for mappings.
4521         (GOMP_target_data): Treat shared memory devices like host fallback.
4522         (GOMP_target_data_ext): Likewise.
4523         (GOMP_target_update): Likewise.
4524         (GOMP_target_update_ext): Likewise.  Also pass NULL as args to
4525         gomp_create_target_task.
4526         (GOMP_target_enter_exit_data): Likewise.
4527         (omp_target_alloc): Treat shared memory devices like host fallback.
4528         (omp_target_free): Likewise.
4529         (omp_target_is_present): Likewise.
4530         (omp_target_memcpy): Likewise.
4531         (omp_target_memcpy_rect): Likewise.
4532         (omp_target_associate_ptr): Likewise.
4533         (gomp_load_plugin_for_device): Also load can_run.
4534         * task.c (GOMP_PLUGIN_target_task_completion): Free
4535         firstprivate_copies.
4536         (gomp_create_target_task): Accept new argument args and store it to
4537         ttask.
4538         * plugin/plugin-hsa.c: New file.
4540 2016-01-18  Tom de Vries  <tom@codesourcery.com>
4542         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
4543         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
4544         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
4545         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
4546         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
4547         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
4548         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
4549         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
4550         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
4551         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
4552         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
4553         Same.
4554         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
4555         Same.
4556         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
4557         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
4558         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
4559         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
4560         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
4561         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
4562         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
4563         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
4564         Same.
4565         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.
4567 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
4569         * task.c (GOMP_PLUGIN_target_task_completion): Add missing return.
4571 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
4573         * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
4575 2016-01-12  James Norris  <jnorris@codesourcery.com>
4577         * libgomp.texi: Updates for OpenACC.
4579 2016-01-11  Alexander Monakov  <amonakov@ispras.ru>
4581         * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.
4583 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
4585         PR fortran/66680
4586         * testsuite/libgomp.fortran/pr66680.f90: New test.
4588 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
4590         PR middle-end/68960
4591         * testsuite/libgomp.c/pr68960.c: New test.
4593 2016-01-06  Nathan Sidwell  <nathan@acm.org>
4595         * openacc.h (acc_on_device): Add routine pragma for C++ wrapper.
4596         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New.
4598 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
4600         Update copyright years.
4602         * libgomp.texi: Bump @copying's copyright year.
4604 2015-12-31  Nathan Sidwell  <nathan@acm.org>
4606         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct
4607         dg-additional-options syntax.
4608         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
4609         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
4610         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
4611         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
4612         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
4613         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
4614         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
4615         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
4616         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
4617         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
4618         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
4619         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
4620         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
4621         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
4622         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
4623         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
4624         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
4625         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
4627 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
4629         * libgomp.h (REFCOUNT_LINK): Define.
4630         (struct splay_tree_key_s): Add link_key.
4631         * target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
4632         Replace target address of the pointer with target address of newly
4633         mapped object in the splay tree.  Set link pointer on target to the
4634         device address of the mapped object.
4635         (gomp_unmap_vars): Restore target address of the pointer in the splay
4636         tree for REFCOUNT_LINK objects after unmapping.
4637         (gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
4638         declare target link" objects.
4639         (gomp_unload_image_from_device): Replace j with i.  Force unmap of all
4640         "omp declare target link" objects, which were mapped for the image.
4641         (gomp_exit_data): Restore target address of the pointer in the splay
4642         tree for REFCOUNT_LINK objects after unmapping.
4643         * testsuite/libgomp.c/target-link-1.c: New file.
4645 2015-12-14  Ilya Verbin  <ilya.verbin@intel.com>
4647         * libgomp.h (gomp_device_state): New enum.
4648         (struct gomp_device_descr): Replace is_initialized with state.
4649         (gomp_fini_device): Remove declaration.
4650         * oacc-host.c (host_dispatch): Use state instead of is_initialized.
4651         * oacc-init.c (acc_init_1): Use state instead of is_initialized.
4652         (acc_shutdown_1): Likewise.  Inline gomp_fini_device.
4653         (acc_set_device_type): Use state instead of is_initialized.
4654         (acc_set_device_num): Likewise.
4655         * target.c (resolve_device): Use state instead of is_initialized.
4656         Do not initialize finalized device.
4657         (gomp_map_vars): Do nothing if device is finalized.
4658         (gomp_unmap_vars): Likewise.
4659         (gomp_update): Likewise.
4660         (GOMP_offload_register_ver): Use state instead of is_initialized.
4661         (GOMP_offload_unregister_ver): Likewise.
4662         (gomp_init_device): Likewise.
4663         (gomp_unload_device): Likewise.
4664         (gomp_fini_device): Remove.
4665         (gomp_get_target_fn_addr): Do nothing if device is finalized.
4666         (GOMP_target): Go to host fallback if device is finalized.
4667         (GOMP_target_ext): Likewise.
4668         (gomp_exit_data): Do nothing if device is finalized.
4669         (gomp_target_task_fn): Go to host fallback if device is finalized.
4670         (gomp_target_fini): New static function.
4671         (gomp_target_init): Use state instead of is_initialized.
4672         Call gomp_target_fini at exit.
4674 2015-12-09  Tom de Vries  <tom@codesourcery.com>
4676         PR tree-optimization/68716
4677         * testsuite/libgomp.c/omp-nested-2.c: New test.
4679 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
4681         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
4682         target openacc_nvidia_accel_selected.
4683         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
4684         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
4685         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
4686         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
4688 2015-12-01  Julian Brown  <julian@codesourcery.com>
4689             James Norris  <James_Norris@mentor.com>
4691         * oacc-parallel.c (GOACC_host_data): New function.
4692         * libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
4693         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
4694         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
4695         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
4696         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
4697         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
4698         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
4700 2015-11-30  James Norris  <jnorris@codesourcery.com>
4701             Cesar Philippidis  <cesar@codesourcery.com>
4703         libgomp/
4704         * libgomp.oacc-fortran/routine-5.f90: New test.
4705         * libgomp.oacc-fortran/routine-7.f90: New test.
4706         * libgomp.oacc-fortran/routine-9.f90: New test.
4708 2015-11-30  Tom de Vries  <tom@codesourcery.com>
4710         PR tree-optimization/46032
4711         * testsuite/libgomp.c/pr46032.c: New test.
4713 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
4715         PR libgomp/68579
4716         * task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
4717         (gomp_create_target_task): Call it before freeing
4718         GOMP_TARGET_TASK_DATA tasks.
4720         PR c/63326
4721         * testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
4722         in between case label and OpenMP standalone directives.
4723         * testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
4725 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
4727         * configure: Regenerate.
4729 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
4731         * testsuite/libgomp.c/target-35.c: New test.
4733 2015-11-22  James Norris  <jnorris@codesourcery.com>
4734             Cesar Philippidis  <cesar@codesourcery.com>
4736         * testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
4737         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
4738         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
4739         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
4740         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
4742 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
4744         PR middle-end/68221
4745         * testsuite/libgomp.c/reduction-11.c: Remove xfail.
4746         * testsuite/libgomp.c/reduction-12.c: Likewise.
4747         * testsuite/libgomp.c++/reduction-11.C: Likewise.
4748         * testsuite/libgomp.c++/reduction-12.C: Likewise.
4750 2015-11-19  Nathan Sidwell  <nathan@codesourcery.com>
4752         * libgomp.oacc-c-c++-common/reduction-dbl.c: New.
4753         * libgomp.oacc-c-c++-common/reduction-flt.c: New.
4754         * libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
4755         * libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
4756         * libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
4757         and fix.
4758         * libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
4759         * libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
4761 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
4763         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
4764         worker & gang cases.
4765         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
4767 2015-11-17  Cesar Philippidis  <cesar@codesourcery.com>
4769         * config/nvptx/priority_queue.c: New file.
4771 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
4773         * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
4774         sections.
4776 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
4777             Aldy Hernandez  <aldyh@redhat.com>
4778             Ilya Verbin  <ilya.verbin@intel.com>
4780         * ordered.c (gomp_doacross_init, GOMP_doacross_post,
4781         GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
4782         GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
4783         iterators or IV by chunk size.
4784         * parallel.c (gomp_resolve_num_threads): Don't assume that
4785         if thr->ts.team is non-NULL, then pool must be non-NULL.
4786         * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
4787         * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
4788         GOMP_PLUGIN_target_task_completion.
4789         * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
4790         * Makefile.in: Regenerate.
4791         * libgomp.h: Shuffle prototypes and forward definitions around so
4792         priority queues can be defined.
4793         (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
4794         (enum gomp_target_task_state): New enum.
4795         (struct gomp_target_task): Add state, tgt, task and team fields.
4796         (gomp_create_target_task): Change return type to bool, add
4797         state argument.
4798         (gomp_target_task_fn): Change return type to bool.
4799         (struct gomp_device_descr): Add async_run_func.
4800         (struct gomp_task): Remove children, next_child, prev_child,
4801         next_queue, prev_queue, next_taskgroup, prev_taskgroup.
4802         Add pnode field.
4803         (struct gomp_taskgroup): Remove children.
4804         Add taskgroup_queue.
4805         (struct gomp_team): Change task_queue type to a priority queue.
4806         (splay_compare): Define inline.
4807         (priority_queue_offset): New.
4808         (priority_node_to_task): New.
4809         (task_to_priority_node): New.
4810         * oacc-mem.c: Do not include splay-tree.h.
4811         * priority_queue.c: New file.
4812         * priority_queue.h: New file.
4813         * splay-tree.c: Do not include splay-tree.h.
4814         (splay_tree_foreach_internal): New.
4815         (splay_tree_foreach): New.
4816         * splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
4817         (splay_tree_callback): Define typedef.
4818         * target.c (splay_compare): Move to libgomp.h.
4819         (GOMP_target): Don't adjust *thr in any way around running offloaded
4820         task.
4821         (GOMP_target_ext): Likewise.  Handle target nowait.
4822         (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
4823         return value from gomp_create_target_task, if false, fallthrough
4824         as if no dependencies exist.
4825         (gomp_target_task_fn): Change return type to bool, return true
4826         if the task should have another part scheduled later.  Handle
4827         target nowait.
4828         (gomp_load_plugin_for_device): Initialize async_run.
4829         * task.c (gomp_init_task): Initialize children_queue.
4830         (gomp_clear_parent_in_list): New.
4831         (gomp_clear_parent_in_tree): New.
4832         (gomp_clear_parent): Handle priorities.
4833         (GOMP_task): Likewise.
4834         (priority_queue_move_task_first,
4835         gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
4836         New functions.
4837         (gomp_create_target_task): Use priority queues.  Change return type
4838         to bool, add state argument, return false if for async
4839         {{enter,exit} data,update} constructs no dependencies need to be
4840         waited for, handle target nowait.  Set task->fn to NULL instead of
4841         gomp_target_task_fn.
4842         (verify_children_queue): Remove.
4843         (priority_list_upgrade_task): New.
4844         (priority_queue_upgrade_task): New.
4845         (verify_task_queue): Remove.
4846         (priority_list_downgrade_task): New.
4847         (priority_queue_downgrade_task): New.
4848         (gomp_task_run_pre): Use priority queues.
4849         Abstract code out to priority_queue_downgrade_task.
4850         (gomp_task_run_post_handle_dependers): Use priority queues.
4851         (gomp_task_run_post_remove_parent): Likewise.
4852         (gomp_task_run_post_remove_taskgroup): Likewise.
4853         (gomp_barrier_handle_tasks): Likewise.  Handle target nowait target
4854         tasks specially.
4855         (GOMP_taskwait): Likewise.
4856         (gomp_task_maybe_wait_for_dependencies): Likewise.  Abstract code to
4857         priority-queue_upgrade_task.
4858         (GOMP_taskgroup_start): Use priority queues.
4859         (GOMP_taskgroup_end): Likewise.  Handle target nowait target tasks
4860         specially.  If taskgroup is NULL, and thr->ts.level is 0, act as a
4861         barrier.
4862         * taskloop.c (GOMP_taskloop): Handle priorities.
4863         * team.c (gomp_new_team): Call priority_queue_init.
4864         (free_team): Call priority_queue_free.
4865         (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
4866         team created for target nowait in implicit parallel region.
4867         (gomp_team_start): For nested check, test thr->ts.level instead of
4868         thr->ts.team != NULL.
4869         * testsuite/libgomp.c/doacross-3.c: New test.
4870         * testsuite/libgomp.c/ordered-5.c: New test.
4871         * testsuite/libgomp.c/priority.c: New test.
4872         * testsuite/libgomp.c/target-31.c: New test.
4873         * testsuite/libgomp.c/target-32.c: New test.
4874         * testsuite/libgomp.c/target-33.c: New test.
4875         * testsuite/libgomp.c/target-34.c: New test.
4877 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
4879         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
4881         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
4882         loop is sequential.
4884 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
4886         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
4887         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
4889 2015-11-12  James Norris  <jnorris@codesourcery.com>
4890             Joseph Myers  <joseph@codesourcery.com>
4892         * libgomp.map (GOACC_2.0.1): Export GOACC_declare.
4893         * oacc-parallel.c (GOACC_declare): New function.
4894         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
4895         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
4896         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
4897         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
4898         * testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
4900 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
4902         * testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
4904 2015-11-1  Nathan Sidwell  <nathan@codesourcery.com>
4906         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
4907         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
4909 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4911         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
4912         inadvertent commit.
4914 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
4916         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
4917         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
4918         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
4919         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
4920         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
4922 2015-11-06  Thomas Schwinge  <thomas@codesourcery.com>
4924         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
4925         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
4927 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
4928             Ilya Verbin  <ilya.verbin@intel.com>
4930         * libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
4931         GOMP_loop_nonmonotonic_dynamic_start,
4932         GOMP_loop_nonmonotonic_guided_next,
4933         GOMP_loop_nonmonotonic_guided_start,
4934         GOMP_loop_ull_nonmonotonic_dynamic_next,
4935         GOMP_loop_ull_nonmonotonic_dynamic_start,
4936         GOMP_loop_ull_nonmonotonic_guided_next,
4937         GOMP_loop_ull_nonmonotonic_guided_start,
4938         GOMP_parallel_loop_nonmonotonic_dynamic,
4939         GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
4940         (GOMP_target_41): Renamed to ...
4941         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
4942         arguments.
4943         (GOMP_target_data_41): Renamed to ...
4944         (GOMP_target_data_ext): ... this.
4945         (GOMP_target_update_41): Renamed to ...
4946         (GOMP_target_update_ext): ... this.
4947         * libgomp.map (GOMP_4.5): Export GOMP_target_ext,
4948         GOMP_target_data_ext and GOMP_target_update_ext instead of
4949         GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
4950         Export GOMP_loop_nonmonotonic_dynamic_next,
4951         GOMP_loop_nonmonotonic_dynamic_start,
4952         GOMP_loop_nonmonotonic_guided_next,
4953         GOMP_loop_nonmonotonic_guided_start,
4954         GOMP_loop_ull_nonmonotonic_dynamic_next,
4955         GOMP_loop_ull_nonmonotonic_dynamic_start,
4956         GOMP_loop_ull_nonmonotonic_guided_next,
4957         GOMP_loop_ull_nonmonotonic_guided_start,
4958         GOMP_parallel_loop_nonmonotonic_dynamic and
4959         GOMP_parallel_loop_nonmonotonic_guided.
4960         * loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
4961         GOMP_parallel_loop_nonmonotonic_guided,
4962         GOMP_loop_nonmonotonic_dynamic_start,
4963         GOMP_loop_nonmonotonic_guided_start,
4964         GOMP_loop_nonmonotonic_dynamic_next,
4965         GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
4966         * loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
4967         GOMP_loop_ull_nonmonotonic_guided_start,
4968         GOMP_loop_ull_nonmonotonic_dynamic_next,
4969         GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
4970         * target.c (gomp_map_0len_lookup, gomp_map_val): New inline
4971         functions.
4972         (gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
4973         GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
4974         Use gomp_map_val function.
4975         (gomp_target_fallback_firstprivate): New static function.
4976         (GOMP_target_41): Renamed to ...
4977         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
4978         arguments.  Move firstprivate fallback handling into a new
4979         function.
4980         (GOMP_target_data_41): Renamed to ...
4981         (GOMP_target_data_ext): ... this.
4982         (GOMP_target_update_41): Renamed to ...
4983         (GOMP_target_update_ext): ... this.
4984         (gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
4985         gomp_map_0len_lookup instead of gomp_map_lookup.
4986         (omp_target_is_present): Use gomp_map_0len_lookup instead of
4987         gomp_map_lookup.
4988         * testsuite/libgomp.c/target-28.c: Likewise.
4989         * testsuite/libgomp.c/monotonic-1.c: New test.
4990         * testsuite/libgomp.c/monotonic-2.c: New test.
4991         * testsuite/libgomp.c/nonmonotonic-1.c: New test.
4992         * testsuite/libgomp.c/nonmonotonic-2.c: New test.
4993         * testsuite/libgomp.c/pr66199-5.c: New test.
4994         * testsuite/libgomp.c/pr66199-6.c: New test.
4995         * testsuite/libgomp.c/pr66199-7.c: New test.
4996         * testsuite/libgomp.c/pr66199-8.c: New test.
4997         * testsuite/libgomp.c/pr66199-9.c: New test.
4998         * testsuite/libgomp.c/reduction-11.c: New test.
4999         * testsuite/libgomp.c/reduction-12.c: New test.
5000         * testsuite/libgomp.c/reduction-13.c: New test.
5001         * testsuite/libgomp.c/reduction-14.c: New test.
5002         * testsuite/libgomp.c/reduction-15.c: New test.
5003         * testsuite/libgomp.c/target-12.c (main): Adjust for
5004         omp_target_is_present change for one-past-last element.
5005         * testsuite/libgomp.c/target-17.c (foo): Drop tests where
5006         the same var is both mapped and privatized.
5007         * testsuite/libgomp.c/target-19.c (foo): Adjust for different
5008         handling of zero-length array sections.
5009         * testsuite/libgomp.c/target-28.c: New test.
5010         * testsuite/libgomp.c/target-29.c: New test.
5011         * testsuite/libgomp.c/target-30.c: New test.
5012         * testsuite/libgomp.c/target-teams-1.c: New test.
5013         * testsuite/libgomp.c++/member-6.C: New test.
5014         * testsuite/libgomp.c++/member-7.C: New test.
5015         * testsuite/libgomp.c++/monotonic-1.C: New test.
5016         * testsuite/libgomp.c++/monotonic-2.C: New test.
5017         * testsuite/libgomp.c++/nonmonotonic-1.C: New test.
5018         * testsuite/libgomp.c++/nonmonotonic-2.C: New test.
5019         * testsuite/libgomp.c++/pr66199-3.C: New test.
5020         * testsuite/libgomp.c++/pr66199-4.C: New test.
5021         * testsuite/libgomp.c++/pr66199-5.C: New test.
5022         * testsuite/libgomp.c++/pr66199-6.C: New test.
5023         * testsuite/libgomp.c++/pr66199-7.C: New test.
5024         * testsuite/libgomp.c++/pr66199-8.C: New test.
5025         * testsuite/libgomp.c++/pr66199-9.C: New test.
5026         * testsuite/libgomp.c++/reduction-11.C: New test.
5027         * testsuite/libgomp.c++/reduction-12.C: New test.
5028         * testsuite/libgomp.c++/target-13.C: New test.
5029         * testsuite/libgomp.c++/target-14.C: New test.
5030         * testsuite/libgomp.c++/target-15.C: New test.
5031         * testsuite/libgomp.c++/target-16.C: New test.
5032         * testsuite/libgomp.c++/target-17.C: New test.
5033         * testsuite/libgomp.c++/target-18.C: New test.
5034         * testsuite/libgomp.c++/target-19.C: New test.
5036 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5038         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
5039         and reduction copy.
5040         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
5041         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
5042         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
5043         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
5044         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
5045         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
5046         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
5047         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
5048         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
5049         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
5050         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
5051         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
5052         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
5053         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
5055 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
5057         * libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
5058         * libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
5059         * libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
5060         * libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
5061         * libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
5062         * libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
5063         * libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
5064         * libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
5066 2015-11-03  Nathan Sidwell  <nathan@codesourcery.com>
5068         * libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
5069         * plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
5070         (GOMP_OFFLOAD_openacc_parallel): Likewise.
5071         * oacc-host.c (host_openacc_exec): Likewise.
5072         * oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
5074 2015-11-03  Julian Brown  <julian@codesourcery.com>
5075             Thomas Schwinge  <thomas@codesourcery.com>
5077         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
5078         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
5079         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
5080         Likewise.
5081         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
5082         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
5084 2015-11-03  James Norris  <jnorris@codesourcery.com>
5086         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
5087         file.
5088         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
5089         Likewise.
5090         * testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
5091         * testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
5092         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
5093         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
5094         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
5096 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
5098         * openacc.h (enum acc_device_t): Reformat. Ensure layout
5099         compatibility.
5100         (enum acc_async_t): Reformat.
5101         (acc_on_device): Declare compatible with builtin and provide C++
5102         wrapper.
5103         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
5105 2015-10-29  Thomas Schwinge  <thomas@codesourcery.com>
5106             Cesar Philippidis  <cesar@codesourcery.com>
5108         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
5109         * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
5110         ... this.  Add a description of the test at the top of the file.
5111         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
5112         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
5113         ... this.  Add a description of the test at the top of the file.
5115 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5117         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
5118         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
5119         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
5120         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
5121         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
5122         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
5124 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5126         * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
5127         dimensions.
5129 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
5131         PR testsuite/68063
5132         * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
5134 2015-10-27  James Norris  <jnorris@codesourcery.com>
5136         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
5137         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
5139 2015-10-26  Thomas Schwinge  <thomas@codesourcery.com>
5141         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
5142         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
5144         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
5145         acc_device_nvidia usage.
5146         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
5147         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
5148         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
5150         * oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
5151         * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
5153         PR libgomp/66518
5154         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
5156         PR libgomp/65437
5157         PR libgomp/66518
5158         * oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
5159         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
5161 2015-10-23  Tom de Vries  <tom@codesourcery.com>
5163         PR testsuite/68063
5164         * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
5166 2015-10-20  Nathan Sidwell  <nathan@codesourcery.com>
5168         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
5169         vector_length.
5170         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
5172 2015-10-14  Ilya Verbin  <ilya.verbin@intel.com>
5173             Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
5175         * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
5176         to 0 when mapnum is 0.
5178 2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5180         * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
5181         Cast to int from int32_t.
5183 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
5184             Aldy Hernandez  <aldyh@redhat.com>
5185             Ilya Verbin  <ilya.verbin@intel.com>
5187         * config/linux/affinity.c (omp_get_place_num_procs,
5188         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
5189         * config/linux/doacross.h: New file.
5190         * config/posix/affinity.c (omp_get_place_num_procs,
5191         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
5192         * config/posix/doacross.h: New file.
5193         * env.c: Include gomp-constants.h.
5194         (struct gomp_task_icv): Rename run_sched_modifier to
5195         run_sched_chunk_size.
5196         (gomp_max_task_priority_var): New variable.
5197         (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
5198         (handle_omp_display_env): Change _OPENMP value from 201307 to
5199         201511.  Print OMP_MAX_TASK_PRIORITY.
5200         (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
5201         (omp_set_schedule, omp_get_schedule): Rename modifier argument to
5202         chunk_size and run_sched_modifier to run_sched_chunk_size.
5203         (omp_get_max_task_priority, omp_get_initial_device,
5204         omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
5205         omp_get_partition_place_nums): New functions.
5206         * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
5207         omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
5208         to chunk_size.
5209         (omp_get_num_places_, omp_get_place_num_procs_,
5210         omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
5211         omp_get_place_proc_ids_8_, omp_get_place_num_,
5212         omp_get_partition_num_places_, omp_get_partition_place_nums_,
5213         omp_get_partition_place_nums_8_, omp_get_initial_device_,
5214         omp_get_max_task_priority_): New functions.
5215         * libgomp_g.h (GOMP_loop_doacross_static_start,
5216         GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
5217         GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
5218         GOMP_loop_ull_doacross_dynamic_start,
5219         GOMP_loop_ull_doacross_guided_start,
5220         GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
5221         GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
5222         GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
5223         GOMP_target_data_41, GOMP_target_update_41,
5224         GOMP_target_enter_exit_data): New prototypes.
5225         (GOMP_task): Add prototype argument.
5226         * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
5227         (struct gomp_doacross_work_share): New type.
5228         (struct gomp_work_share): Add doacross field.
5229         (struct gomp_task_icv): Rename run_sched_modifier to
5230         run_sched_chunk_size.
5231         (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
5232         GOMP_TASK_UNDEFERRED.  Add comments.
5233         (struct gomp_task_depend_entry): Add comments.
5234         (struct gomp_task): Likewise.
5235         (struct gomp_taskgroup): Likewise.
5236         (struct gomp_target_task): New type.
5237         (struct gomp_team): Add comment.
5238         (gomp_get_place_proc_ids_8, gomp_doacross_init,
5239         gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
5240         gomp_create_target_task, gomp_target_task_fn): New prototypes.
5241         (struct target_var_desc): New type.
5242         (struct target_mem_desc): Adjust comment.  Use struct
5243         target_var_desc instead of splay_tree_key for list.
5244         (REFCOUNT_INFINITY): Define.
5245         (struct splay_tree_key_s): Remove copy_from field.
5246         (struct gomp_device_descr): Add dev2dev_func field.
5247         (enum gomp_map_vars_kind): New enum.
5248         (gomp_map_vars): Add one argument.
5249         * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
5250         omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
5251         omp_get_place_num_procs, omp_get_place_num_procs_,
5252         omp_get_place_num_procs_8_, omp_get_place_proc_ids,
5253         omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
5254         omp_get_place_num_, omp_get_partition_num_places,
5255         omp_get_partition_num_places_, omp_get_partition_place_nums,
5256         omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
5257         omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
5258         omp_target_free, omp_target_is_present, omp_target_memcpy,
5259         omp_target_memcpy_rect, omp_target_associate_ptr and
5260         omp_target_disassociate_ptr.
5261         (GOMP_4.0.2): Renamed to ...
5262         (GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
5263         GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
5264         GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
5265         GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
5266         GOMP_loop_doacross_static_start, GOMP_doacross_post,
5267         GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
5268         GOMP_loop_ull_doacross_guided_start,
5269         GOMP_loop_ull_doacross_runtime_start,
5270         GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
5271         GOMP_doacross_ull_wait.
5272         * libgomp.texi: Document omp_get_max_task_priority.
5273         Rename modifier argument to chunk_size for omp_set_schedule and
5274         omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
5275         * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
5276         to run_sched_chunk_size renaming.
5277         (GOMP_loop_ordered_runtime_start): Likewise.
5278         (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
5279         gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
5280         GOMP_parallel_loop_runtime_start): New functions.
5281         (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
5282         to run_sched_chunk_size renaming.
5283         (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
5284         GOMP_loop_doacross_guided_start): New functions or aliases.
5285         * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
5286         run_sched_modifier to run_sched_chunk_size renaming.
5287         (GOMP_loop_ull_ordered_runtime_start): Likewise.
5288         (gomp_loop_ull_doacross_static_start,
5289         gomp_loop_ull_doacross_dynamic_start,
5290         gomp_loop_ull_doacross_guided_start,
5291         GOMP_loop_ull_doacross_runtime_start): New functions.
5292         (GOMP_loop_ull_doacross_static_start,
5293         GOMP_loop_ull_doacross_dynamic_start,
5294         GOMP_loop_ull_doacross_guided_start): New functions or aliases.
5295         * oacc-mem.c (acc_map_data, present_create_copy,
5296         gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
5297         to gomp_map_vars.
5298         (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
5299         * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
5300         instead of false to gomp_map_vars.
5301         (GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
5302         * omp.h.in (omp_lock_hint_t): New type.
5303         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
5304         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
5305         omp_get_place_num, omp_get_partition_num_places,
5306         omp_get_partition_place_nums, omp_get_initial_device,
5307         omp_get_max_task_priority, omp_target_alloc, omp_target_free,
5308         omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
5309         omp_target_associate_ptr, omp_target_disassociate_ptr): New
5310         prototypes.
5311         * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
5312         (omp_lock_hint_none, omp_lock_hint_uncontended,
5313         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
5314         omp_lock_hint_speculative): New parameters.
5315         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
5316         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
5317         omp_get_place_num, omp_get_partition_num_places,
5318         omp_get_partition_place_nums, omp_get_initial_device,
5319         omp_get_max_task_priority): New interfaces.
5320         (omp_set_schedule, omp_get_schedule): Rename modifier argument
5321         to chunk_size.
5322         * omp_lib.h.in (omp_lock_hint_kind): New parameter.
5323         (omp_lock_hint_none, omp_lock_hint_uncontended,
5324         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
5325         omp_lock_hint_speculative): New parameters.
5326         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
5327         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
5328         omp_get_place_num, omp_get_partition_num_places,
5329         omp_get_partition_place_nums, omp_get_initial_device,
5330         omp_get_max_task_priority): New functions and subroutines.
5331         * ordered.c: Include stdarg.h and string.h.
5332         (MAX_COLLAPSED_BITS): Define.
5333         (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
5334         gomp_doacross_ull_init, GOMP_doacross_ull_post,
5335         GOMP_doacross_ull_wait): New functions.
5336         * target.c: Include errno.h.
5337         (resolve_device): If device is not initialized, call
5338         gomp_init_device on it.
5339         (gomp_map_lookup): New function.
5340         (gomp_map_vars_existing): Add tgt_var argument, fill it in.
5341         Don't bump refcount if REFCOUNT_INFINITY.  Handle
5342         GOMP_MAP_ALWAYS_TO_P.
5343         (get_kind): Rename is_openacc argument to short_mapkind.
5344         (gomp_map_pointer): Use gomp_map_lookup.
5345         (gomp_map_fields_existing): New function.
5346         (gomp_map_vars): Rename is_openacc argument to short_mapkind
5347         and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
5348         handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
5349         GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
5350         Adjust for tgt->list changed type and copy_from living in there.
5351         (gomp_copy_from_async): Adjust for tgt->list changed type and
5352         copy_from living in there.
5353         (gomp_unmap_vars): Likewise.
5354         (gomp_update): Likewise.  Rename is_openacc argument to
5355         short_mapkind.  Don't fail if object is not mapped.
5356         (gomp_load_image_to_device): Initialize refcount to
5357         REFCOUNT_INFINITY.
5358         (gomp_target_fallback): New function.
5359         (gomp_get_target_fn_addr): Likewise.
5360         (GOMP_target): Adjust gomp_map_vars caller, use
5361         gomp_get_target_fn_addr and gomp_target_fallback.
5362         (GOMP_target_41): New function.
5363         (gomp_target_data_fallback): New function.
5364         (GOMP_target_data): Use it, adjust gomp_map_vars caller.
5365         (GOMP_target_data_41): New function.
5366         (GOMP_target_update): Adjust gomp_update caller.
5367         (GOMP_target_update_41): New function.
5368         (gomp_exit_data, GOMP_target_enter_exit_data,
5369         gomp_target_task_fn, omp_target_alloc, omp_target_free,
5370         omp_target_is_present, omp_target_memcpy,
5371         omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
5372         omp_target_associate_ptr, omp_target_disassociate_ptr,
5373         gomp_load_plugin_for_device): New functions.
5374         * task.c: Include gomp-constants.h.  Include taskloop.c
5375         twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
5376         (gomp_task_handle_depend): New function.
5377         (GOMP_task): Use it.  Add priority argument.  Use
5378         gomp-constant.h constants instead of hardcoded numbers.
5379         Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
5380         (gomp_create_target_task): New function.
5381         (verify_children_queue, verify_taskgroup_queue,
5382         verify_task_queue): New functions.
5383         (gomp_task_run_pre): Call verify_*_queue functions.
5384         If an upcoming tied task is about to leave the sibling or
5385         taskgroup queues in an invalid state, adjust appropriately.
5386         Remove taskgroup argument.  Add comments.
5387         (gomp_task_run_post_handle_dependers): Add comments.
5388         (gomp_task_run_post_remove_parent): Likewise.
5389         (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
5390         (GOMP_taskwait): Likewise.  Add comments.
5391         (gomp_task_maybe_wait_for_dependencies): Fix scheduling
5392         problem such that the first non parent_depends_on task does not
5393         end up at the end of the children queue.
5394         (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
5395         GOMP_TASK_UNDEFERRED.
5396         (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
5397         * taskloop.c: New file.
5398         * testsuite/lib/libgomp.exp
5399         (check_effective_target_offload_device_nonshared_as): New proc.
5400         * testsuite/libgomp.c/affinity-2.c: New test.
5401         * testsuite/libgomp.c/doacross-1.c: New test.
5402         * testsuite/libgomp.c/doacross-2.c: New test.
5403         * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
5404         Add map clause to target.
5405         * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
5406         * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
5407         * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
5408         * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
5409         * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
5410         Likewise.
5411         * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
5412         * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
5413         * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
5414         * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
5415         not defined.  Use those where needed.
5416         * testsuite/libgomp.c/for-4.c: New test.
5417         * testsuite/libgomp.c/for-5.c: New test.
5418         * testsuite/libgomp.c/for-6.c: New test.
5419         * testsuite/libgomp.c/linear-1.c: New test.
5420         * testsuite/libgomp.c/ordered-4.c: New test.
5421         * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
5422         only allowed on the loop iterator.
5423         * testsuite/libgomp.c/pr66199-3.c: New test.
5424         * testsuite/libgomp.c/pr66199-4.c: New test.
5425         * testsuite/libgomp.c/reduction-7.c: New test.
5426         * testsuite/libgomp.c/reduction-8.c: New test.
5427         * testsuite/libgomp.c/reduction-9.c: New test.
5428         * testsuite/libgomp.c/reduction-10.c: New test.
5429         * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
5430         map(tofrom:s).
5431         * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
5432         * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
5433         * testsuite/libgomp.c/target-11.c: New test.
5434         * testsuite/libgomp.c/target-12.c: New test.
5435         * testsuite/libgomp.c/target-13.c: New test.
5436         * testsuite/libgomp.c/target-14.c: New test.
5437         * testsuite/libgomp.c/target-15.c: New test.
5438         * testsuite/libgomp.c/target-16.c: New test.
5439         * testsuite/libgomp.c/target-17.c: New test.
5440         * testsuite/libgomp.c/target-18.c: New test.
5441         * testsuite/libgomp.c/target-19.c: New test.
5442         * testsuite/libgomp.c/target-20.c: New test.
5443         * testsuite/libgomp.c/target-21.c: New test.
5444         * testsuite/libgomp.c/target-22.c: New test.
5445         * testsuite/libgomp.c/target-23.c: New test.
5446         * testsuite/libgomp.c/target-24.c: New test.
5447         * testsuite/libgomp.c/target-25.c: New test.
5448         * testsuite/libgomp.c/target-26.c: New test.
5449         * testsuite/libgomp.c/target-27.c: New test.
5450         * testsuite/libgomp.c/taskloop-1.c: New test.
5451         * testsuite/libgomp.c/taskloop-2.c: New test.
5452         * testsuite/libgomp.c/taskloop-3.c: New test.
5453         * testsuite/libgomp.c/taskloop-4.c: New test.
5454         * testsuite/libgomp.c++/ctor-13.C: New test.
5455         * testsuite/libgomp.c++/doacross-1.C: New test.
5456         * testsuite/libgomp.c++/examples-4/declare_target-2.C:
5457         Replace offload_device with offload_device_nonshared_as.
5458         * testsuite/libgomp.c++/for-12.C: New test.
5459         * testsuite/libgomp.c++/for-13.C: New test.
5460         * testsuite/libgomp.c++/for-14.C: New test.
5461         * testsuite/libgomp.c++/linear-1.C: New test.
5462         * testsuite/libgomp.c++/member-1.C: New test.
5463         * testsuite/libgomp.c++/member-2.C: New test.
5464         * testsuite/libgomp.c++/member-3.C: New test.
5465         * testsuite/libgomp.c++/member-4.C: New test.
5466         * testsuite/libgomp.c++/member-5.C: New test.
5467         * testsuite/libgomp.c++/ordered-1.C: New test.
5468         * testsuite/libgomp.c++/reduction-5.C: New test.
5469         * testsuite/libgomp.c++/reduction-6.C: New test.
5470         * testsuite/libgomp.c++/reduction-7.C: New test.
5471         * testsuite/libgomp.c++/reduction-8.C: New test.
5472         * testsuite/libgomp.c++/reduction-9.C: New test.
5473         * testsuite/libgomp.c++/reduction-10.C: New test.
5474         * testsuite/libgomp.c++/reference-1.C: New test.
5475         * testsuite/libgomp.c++/simd14.C: New test.
5476         * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
5477         * testsuite/libgomp.c++/target-5.C: New test.
5478         * testsuite/libgomp.c++/target-6.C: New test.
5479         * testsuite/libgomp.c++/target-7.C: New test.
5480         * testsuite/libgomp.c++/target-8.C: New test.
5481         * testsuite/libgomp.c++/target-9.C: New test.
5482         * testsuite/libgomp.c++/target-10.C: New test.
5483         * testsuite/libgomp.c++/target-11.C: New test.
5484         * testsuite/libgomp.c++/target-12.C: New test.
5485         * testsuite/libgomp.c++/taskloop-1.C: New test.
5486         * testsuite/libgomp.c++/taskloop-2.C: New test.
5487         * testsuite/libgomp.c++/taskloop-3.C: New test.
5488         * testsuite/libgomp.c++/taskloop-4.C: New test.
5489         * testsuite/libgomp.c++/taskloop-5.C: New test.
5490         * testsuite/libgomp.c++/taskloop-6.C: New test.
5491         * testsuite/libgomp.c++/taskloop-7.C: New test.
5492         * testsuite/libgomp.c++/taskloop-8.C: New test.
5493         * testsuite/libgomp.c++/taskloop-9.C: New test.
5494         * testsuite/libgomp.fortran/affinity1.f90: New test.
5495         * testsuite/libgomp.fortran/affinity2.f90: New test.
5497 2015-10-13  Tom de Vries  <tom@codesourcery.com>
5499         PR tree-optimization/67476
5500         * testsuite/libgomp.c/autopar-3.c: New test.
5501         * testsuite/libgomp.c/autopar-4.c: New test.
5502         * testsuite/libgomp.c/autopar-5.c: New test.
5503         * testsuite/libgomp.c/autopar-6.c: New test.
5504         * testsuite/libgomp.c/autopar-7.c: New test.
5505         * testsuite/libgomp.c/autopar-8.c: New test.
5507 2015-10-12  James Norris  <jnorris@codesourcery.com>
5509         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
5510         initializer.
5512 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
5514         * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
5515         using load_gcc_lib.
5517 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
5519         * oacc-ptx.h: Remove file, moving its content into...
5520         * config/nvptx/fortran.c: ... here...
5521         * config/nvptx/oacc-init.c: ..., here...
5522         * config/nvptx/oacc-parallel.c: ..., and here.
5523         * config/nvptx/openacc.f90: New file.
5524         * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
5525         (link_ptx): Don't link in predefined bits of PTX code.
5527 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
5528             Bernd Schmidt <bernds@codesourcery.com>
5530         * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
5531         (struct targ_ptx_obj): New.
5532         (nvptx_tdata): Move earlier, change data format.
5533         (link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
5534         objects.
5535         (GOMP_OFFLOAD_load_image): Adjust.
5537 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
5539         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
5540         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
5541         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
5542         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
5543         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
5544         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
5545         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
5546         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
5547         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
5548         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
5549         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
5550         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
5551         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
5552         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
5553         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
5554         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
5555         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
5556         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
5557         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
5558         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
5559         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
5560         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
5561         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
5562         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
5563         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
5564         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
5565         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
5566         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
5567         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
5568         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
5569         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
5570         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
5571         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
5572         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
5573         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
5574         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
5575         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
5576         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
5577         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
5578         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
5579         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
5580         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
5581         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
5582         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
5583         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
5584         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
5585         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
5586         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
5587         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
5588         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
5589         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
5590         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
5591         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
5592         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
5593         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
5594         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
5595         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
5596         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
5597         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
5598         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
5599         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
5600         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
5601         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
5603 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
5605         * oacc-init.c (acc_on_device): Force optimization level.
5607 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
5609         * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
5610         (cuda_errlist): Delete.
5611         (cuda_error): Reimplement.
5613 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
5615         * libgomp.h (acc_dispatch_t): Replace separate geometry args with
5616         array.
5617         * libgomp.map (GOACC_parallel_keyed): New.
5618         * oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
5619         all callers.
5620         (GOACC_parallel_keyed): New interface.  Lose geometry arguments
5621         and take keyed varargs list.  Adjust call to exec_func.
5622         (GOACC_parallel): Force host fallback.
5623         * libgomp_g.h (GOACC_parallel): Remove.
5624         (GOACC_parallel_keyed): Declare.
5625         * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
5626         (stuct targ_gn_descriptor): Replace name field with launch field.
5627         (nvptx_exec): Lose separate geometry args, take array.  Process
5628         dynamic dimensions and adjust.
5629         (struct nvptx_tdata): Replace fn_names field with fn_descs.
5630         (GOMP_OFFLOAD_load_image): Adjust for change in function table
5631         data.
5632         (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
5633         passing.
5634         * oacc-host.c (host_openacc_exec): Adjust for change in dimension
5635         passing.
5637 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
5639         PR libgomp/67141
5640         * oacc-int.h (goacc_host_init): Add declaration.
5641         * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
5642         * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
5644 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
5645             Sebastian Pop  <s.pop@samsung.com>
5647         * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
5648         match o/p.
5649         * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
5650         * testsuite/libgomp.graphite/force-parallel-4.c: Same.
5651         * testsuite/libgomp.graphite/force-parallel-5.c: Same.
5652         * testsuite/libgomp.graphite/force-parallel-7.c: Same.
5653         * testsuite/libgomp.graphite/force-parallel-8.c: Same.
5655 2015-09-03  Jakub Jelinek  <jakub@redhat.com>
5657         * configure.tgt: Add missing ;; in between nvptx and rtems
5658         snippets.
5660 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5662         * config/posix/pool.h (gomp_adjust_thread_attr): New.
5663         * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
5664         (gomp_thread_pool_reservoir): Add priority member.
5665         * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
5666         priority.
5667         (parse_thread_pools): Likewise.
5668         * team.c (gomp_team_start): Call configuration provided
5669         gomp_adjust_thread_attr(). Destroy thread attributes if
5670         necessary.
5671         * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
5673 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5675         * config/posix/pool.h: New.
5676         * config/rtems/pool.h: Likewise.
5677         * config/rtems/proc.c: Likewise.
5678         * libgomp.h (gomp_thread_destructor): Declare.
5679         * team.c: Include configuration provided "pool.h".
5680         (gomp_get_thread_pool): Define in configuration.
5681         (gomp_team_end): Call configuration defined
5682         gomp_release_thread_pool().
5684 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5686         * config/rtems/bar.c: New.
5687         * config/rtems/bar.h: Likewise.
5688         * config/rtems/mutex.c: Likewise.
5689         * config/rtems/mutex.h: Likewise.
5690         * config/rtems/sem.c: Likewise.
5691         * config/rtems/sem.h: Likewise.
5692         * configure.ac (*-*-rtems*): Check that Newlib provides a proper
5693         <sys/lock.h> header file.
5694         * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
5695         supported by Newlib.
5696         * configure: Regenerate.
5698 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5700         * team.c (gomp_new_thread_pool): Delete and move content to ...
5701         (gomp_get_thread_pool): ... new function.  Allocate and
5702         initialize thread pool on demand.
5703         (get_last_team): Use gomp_get_thread_pool().
5704         (gomp_team_start): Delete thread pool initialization.
5706 2015-09-03  Tom de Vries  <tom@codesourcery.com>
5708         PR tree-optimization/65637
5709         * testsuite/libgomp.c/autopar-2.c: New test.
5711 2015-08-29  Tom de Vries  <tom@codesourcery.com>
5713         PR tree-optimization/46193
5714         * testsuite/libgomp.c/pr46193.c: New test.
5716 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
5718         libgomp/
5719         * libgomp.map: Add 4.0.2 version.
5720         * target.c (offload_image_descr): Add version field.
5721         (gomp_load_image_to_device): Add version argument.  Adjust plugin
5722         call.  Improve load mismatch diagnostic.
5723         (gomp_unload_image_from_device): Add version argument.  Adjust plugin
5724         call.
5725         (GOMP_offload_regster): Make stub function, move bulk to ...
5726         (GOMP_offload_register_ver): ... here.  Process version argument.
5727         (GOMP_offload_unregister): Make stub function, move bulk to ...
5728         (GOMP_offload_unregister_ver): ... here.  Process version argument.
5729         (gomp_init_device): Process version field.
5730         (gomp_unload_device): Process version field.
5731         (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
5732         macros.  Check plugin version.
5733         * libgomp.h (gomp_device_descr): Add version function field.  Adjust
5734         loader and unloader types.
5735         * oacc-host.c: Include gomp-constants.h.
5736         (host_version): New.
5737         (host_load_image, host_unload_image): Adjust.
5738         (host_dispatch): Add host_version.
5739         * plugin/plugin-nvptx.c: Include gomp-constants.h.
5740         (GOMP_OFFLOAD_version): New.
5741         (GOMP_OFFLOAD_load_image): Add version arg and check it.
5742         (GOMP_OFFLOAD_unload_image): Likewise.
5743         * plugin/plugin-host.c: Include gomp-constants.h.
5744         (GOMP_OFFLOAD_version): New.
5745         (GOMP_OFFLOAD_load_image): Add version arg.
5746         (GOMP_OFFLOAD_unload_image): Likewise.
5748 2015-08-24  Tom de Vries  <tom@codesourcery.com>
5750         PR tree-optimization/65468
5751         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
5753 2015-08-24  Tom de Vries  <tom@codesourcery.com>
5755         PR tree-optimization/65468
5756         * testsuite/libgomp.c/static-chunk-size-one.c: New test.
5758 2015-08-24  Joost VandeVondele  <vondele@gnu.gcc.org>
5760         PR libgomp/66761
5761         PR libgomp/67303
5762         * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
5763         (gomp_iter_guided_next): Idem.
5764         * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
5765         (gomp_iter_ull_guided_next): Idem.
5766         * config/linux/wait.h (do_spin): Idem.
5768 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
5770         * libgomp-plugin.h (enum offload_target_type): Remove
5771         OFFLOAD_TARGET_TYPE_HOST_NONSHM.
5772         * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
5773         * openacc.h (enum acc_device_t): Likewise.
5774         * openacc_lib.h: Likewise.
5775         * oacc-init.c (name_of_acc_device_t): Don't handle it.
5776         (acc_on_device): Just use __builtin_acc_on_device.
5777         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
5778         of acc_on_device builtin.
5779         * plugin/plugin-host.h: Remove file.
5780         * plugin/plugin-host.c: Likewise, but salvage some content into...
5781         * oacc-host.c: ... this file.
5782         * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
5783         * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
5784         * Makefile.in: Regenerate.
5785         * configure: Likewise.
5786         * testsuite/lib/libgomp.exp
5787         (check_effective_target_openacc_host_nonshm_selected): Remove.
5788         * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
5789         ACC_DEVICE_TYPE=host_nonshm.
5790         * testsuite/libgomp.oacc-c/c.exp: Likewise.
5791         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
5792         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
5793         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
5794         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
5795         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
5797 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
5798             Jakub Jelinek  <jakub@redhat.com>
5800         * config/nvptx/affinity.c: New file.
5801         * config/nvptx/alloc.c: Likewise.
5802         * config/nvptx/bar.c: Likewise.
5803         * config/nvptx/barrier.c: Likewise.
5804         * config/nvptx/critical.c: Likewise.
5805         * config/nvptx/env.c: Likewise.
5806         * config/nvptx/error.c: Likewise.
5807         * config/nvptx/fortran.c: Likewise.
5808         * config/nvptx/iter.c: Likewise.
5809         * config/nvptx/iter_ull.c: Likewise.
5810         * config/nvptx/libgomp-plugin.c: Likewise.
5811         * config/nvptx/lock.c: Likewise.
5812         * config/nvptx/loop.c: Likewise.
5813         * config/nvptx/loop_ull.c: Likewise.
5814         * config/nvptx/mutex.c: Likewise.
5815         * config/nvptx/oacc-async.c: Likewise.
5816         * config/nvptx/oacc-cuda.c: Likewise.
5817         * config/nvptx/oacc-host.c: Likewise.
5818         * config/nvptx/oacc-init.c: Likewise.
5819         * config/nvptx/oacc-mem.c: Likewise.
5820         * config/nvptx/oacc-parallel.c: Likewise.
5821         * config/nvptx/oacc-plugin.c: Likewise.
5822         * config/nvptx/omp-lock.h: Likewise.
5823         * config/nvptx/ordered.c: Likewise.
5824         * config/nvptx/parallel.c: Likewise.
5825         * config/nvptx/proc.c: Likewise.
5826         * config/nvptx/ptrlock.c: Likewise.
5827         * config/nvptx/sections.c: Likewise.
5828         * config/nvptx/sem.c: Likewise.
5829         * config/nvptx/single.c: Likewise.
5830         * config/nvptx/splay-tree.c: Likewise.
5831         * config/nvptx/target.c: Likewise.
5832         * config/nvptx/task.c: Likewise.
5833         * config/nvptx/team.c: Likewise.
5834         * config/nvptx/time.c: Likewise.
5835         * config/nvptx/work.c: Likewise.
5836         * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
5837         * configure: Regenerate.
5838         * configure.tgt (config_path): Set to "nvptx" for target
5839         nvptx*-*-*.
5841 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
5843         * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
5845 2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>
5847         * plugin/plugin-nvptx.c: Don't include dlfcn.h.
5848         (cuda_errlist): Constify.
5849         (errmsg):  Move into ...
5850         (cuda_error): ... here.  Make smaller.
5851         (_XSTR, _STR): Delete.
5852         (cuda_synames): Delete.
5853         (verify_device_library): Delete.
5854         (nvptx_init): Don't call it.
5856 2015-07-28  Tom de Vries  <tom@codesourcery.com>
5858         * testsuite/libgomp.c/uns-outer-4.c: New test.
5860 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
5862         * testsuite/libgomp.c/pr66714.c: New test.
5864 2015-07-22  Maxim Blumenthal  <maxim.blumenthal@intel.com>
5866         PR libgomp/66950
5867         * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
5868         (fib_ref): New function.
5869         (fib): Correct corner cases in the recursion.
5870         (main): Replace the non-simd loop with fib_ref call.
5871         * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
5872         subroutine.
5873         (fibonacci): Lower the parameter N to 30.  Correct accordingly check
5874         for the last array element value.  Replace the non-simd loop with
5875         fib_ref call.  Remove redundant b_ref array.  Remove the comparison
5876         of the last array element with according Fibonacci sequence element.
5877         (fib): Correct corner cases in the recursion.
5879 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
5881         * target.c (gomp_offload_image_to_device): Rename to ...
5882         (gomp_load_image_to_device): ... here.
5883         (GOMP_offload_register): Adjust call.
5884         (gomp_init_device): Likewise.
5885         (gomp_unload_image_from_device): New.  Broken out of ...
5886         (GOMP_offload_unregister): ... here.  Call it.
5887         (gomp_unload_device): New.
5888         * libgomp.h (gomp_unload_device): Declare.
5889         * oacc-init.c (acc_shutdown_1): Unload from device before deleting
5890         mem maps.
5892 2015-07-20  Nathan Sidwell  <nathan@codesourcery.com>
5894         * oacc-parallel.c (GOACC_parallel): Move variadic handling into
5895         wait=-specific if.
5896         (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
5897         !=0 condition.
5898         (goacc_waits): Move !num_waits handling to ...
5899         (GOACC_wait): ... here, the only caller that might have zero waits.
5901         * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
5902         (struct ptx_image_data): Move earlier, add fns field.
5903         (struct ptx_device): Add images and image_lock fields.
5904         (ptx_images, ptx_image_lock): Delete.
5905         (nvptx_open_device): Initialize images and image_lock fields.
5906         (nvptx_close_device): Destroy image_lock.
5907         (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
5908         (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
5909         fields.
5911 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
5913         * target.c (GOMP_offload_register): Use int for device type arg.
5914         (GOMP_offload_unregister): Likewise.
5916         * target.c (struct_offload_image_descr): Constify host_table.
5917         (gomp_offload_image_to_device): Likewise.
5918         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
5920         * libgomp.h (gomp_device_descr): Constify target data arguments.
5921         * target.c (struct offload_image_descr): Constify target_data.
5922         (gomp_offload_image_to_device): Likewise.
5923         (GOMP_offload_register): Likewise.
5924         (GOMP_offload_unrefister): Likewise.
5925         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
5926         GOMP_OFFLOAD_unload_image): Constify target data.
5927         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
5928         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
5930 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
5932         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
5933         Workaround driver library const error.
5934         (struct nvptx_tdata, nvptx_tdata_t): New.
5935         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
5936         type.
5938 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
5940         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
5941         of EPS parameter from integer to real.
5942         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
5943         type of EPS parameter from integer to real.
5945 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5947         * team.c (get_last_team): New.
5948         (gomp_new_team): Recycle last non-nested team if possible.
5949         (gomp_team_end): Move team work share list free lock destruction
5950         to ...
5951         (free_team): ... here.
5953 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
5955         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
5956         and ref from int to double.  Replaced their comparison with
5957         an inequality of their difference and EPS.
5958         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
5959         comparison of pri and a reference number with an inequality of their
5960         difference and EPS.
5961         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
5962         the comparison of sum and sum_ref with an inequality of their
5963         difference and EPS.
5964         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
5965         the comparison of pri and a reference number with an inequality of
5966         their difference and EPS.
5968 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
5970         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
5971         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
5972         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
5973         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
5974         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
5975         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
5976         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
5977         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
5978         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
5979         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
5980         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
5981         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
5982         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
5983         variables.
5984         (vec_mult): Likewise.  Add #pragma omp taskwait.
5985         (main): Adjust caller.
5986         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
5987         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
5988         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
5989         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
5990         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
5991         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
5992         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
5993         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
5994         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
5995         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
5996         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
5997         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
5998         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
5999         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
6000         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
6001         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
6002         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
6003         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
6004         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
6005         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
6006         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
6007         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
6008         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
6009         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
6010         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
6011         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
6012         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
6013         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
6014         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
6015         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
6016         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
6017         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
6018         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
6019         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
6020         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
6021         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
6022         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
6023         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
6024         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
6025         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
6026         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
6027         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
6028         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
6029         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
6030         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
6031         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
6032         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
6033         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
6034         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
6035         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
6036         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
6037         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
6038         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
6039         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
6040         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
6041         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
6042         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
6043         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
6044         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
6045         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
6046         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
6047         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
6048         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
6049         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
6050         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
6051         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
6052         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
6053         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
6054         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
6055         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
6056         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
6057         (vec_mult): Add !$omp taskwait.
6058         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
6059         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
6060         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
6061         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
6062         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
6063         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
6064         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
6065         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
6066         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
6067         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
6068         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
6069         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
6070         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
6071         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
6072         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
6073         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
6074         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
6075         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
6076         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
6077         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
6078         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
6079         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
6080         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
6081         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
6082         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
6083         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
6084         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
6085         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
6086         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
6087         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
6088         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
6089         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
6090         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
6091         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
6092         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
6093         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
6094         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
6095         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
6096         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
6097         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
6098         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
6099         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
6100         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
6101         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
6102         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
6103         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
6104         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
6105         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
6106         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
6107         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
6108         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
6109         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
6110         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
6111         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
6112         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
6113         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
6114         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
6115         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
6116         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
6117         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
6118         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
6119         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
6120         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
6121         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
6122         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
6123         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
6124         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
6126 2015-07-10  Tom de Vries  <tom@codesourcery.com>
6128         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
6129         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
6131 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
6133         PR libgomp/65099
6134         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
6135         in a 64-bit configuration.
6136         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
6137         offloading testing if no such device is available.
6138         * testsuite/libgomp.oacc-c/c.exp: Likewise.
6139         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
6141 2015-07-08  Tom de Vries  <tom@codesourcery.com>
6143         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
6144         second call to f.
6145         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
6147 2015-07-07  Tom de Vries  <tom@codesourcery.com>
6149         PR tree-optimization/66642
6150         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
6151         iteration count case.
6152         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
6153         function, factor out of ...
6154         (main): ... here.  Test low iteration count case.
6156 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6158         * libgomp.h (gomp_thread_pool): Comment last_team field.
6160 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
6162         * testsuite/libgomp.c++/pr66702-1.C: Require
6163         vect_simd_clones effective target.
6164         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
6166 2015-06-30  Tom de Vries  <tom@codesourcery.com>
6168         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
6169         already set.  Use DEFAULT_CFLAGS in dg-runtest.
6170         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
6171         "-O2".
6173 2015-06-30  Tom de Vries  <tom@codesourcery.com>
6175         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
6176         already set.  Use DEFAULT_CFLAGS in dg-runtest.
6177         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
6178         * testsuite/libgomp.c++/pr64824.C: Same.
6179         * testsuite/libgomp.c++/pr64868.C: Same.
6180         * testsuite/libgomp.c++/pr66199-1.C: Same.
6181         * testsuite/libgomp.c++/pr66199-2.C: Same.
6182         * testsuite/libgomp.c++/target-2.C: Same.
6183         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
6184         -std=<standard> option.
6185         * testsuite/libgomp.c++/udr-11.C: Same.
6186         * testsuite/libgomp.c++/udr-12.C: Same.
6187         * testsuite/libgomp.c++/udr-13.C: Same.
6188         * testsuite/libgomp.c++/udr-14.C: Same.
6189         * testsuite/libgomp.c++/udr-15.C: Same.
6190         * testsuite/libgomp.c++/udr-16.C: Same.
6191         * testsuite/libgomp.c++/udr-17.C: Same.
6192         * testsuite/libgomp.c++/udr-18.C: Same.
6193         * testsuite/libgomp.c++/udr-19.C: Same.
6194         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
6195         * testsuite/libgomp.c++/simd-1.C: Same.
6196         * testsuite/libgomp.c++/simd-2.C: Same.
6197         * testsuite/libgomp.c++/simd-3.C: Same.
6198         * testsuite/libgomp.c++/simd-4.C: Same.
6199         * testsuite/libgomp.c++/simd-5.C: Same.
6200         * testsuite/libgomp.c++/simd-6.C: Same.
6201         * testsuite/libgomp.c++/simd-7.C: Same.
6202         * testsuite/libgomp.c++/simd-8.C: Same.
6203         * testsuite/libgomp.c++/simd-9.C: Same.
6204         * testsuite/libgomp.c++/simd10.C: Same.
6205         * testsuite/libgomp.c++/simd11.C: Same.
6206         * testsuite/libgomp.c++/simd12.C: Same.
6207         * testsuite/libgomp.c++/simd13.C: Same.
6209 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
6211         PR middle-end/66702
6212         * testsuite/libgomp.c++/pr66702-1.C: New test.
6213         * testsuite/libgomp.c++/pr66702-2.C: New test.
6215 2015-06-30  Tom de Vries  <tom@codesourcery.com>
6217         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
6218         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
6219         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
6220         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
6222 2015-06-30  Tom de Vries  <tom@codesourcery.com>
6224         PR tree-optimization/66652
6225         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
6226         using restrict pointers.
6227         (main): Add arguments to calls to f.
6228         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
6230 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
6232         * configure.ac: Fix check for header <sys/sysctl.h>.
6233         * configure: Regenerate.
6234         * config.h.in: Likewise.
6236 2015-06-23  Tom de Vries  <tom@codesourcery.com>
6238         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
6239         abort.
6240         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
6242 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
6244         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
6245         acc_device_nvidia.
6247         PR libgomp/66518
6248         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
6249         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
6251 2015-06-15  Tom de Vries  <tom@codesourcery.com>
6253         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
6254         dg-additional-options for any remaining options.
6255         * testsuite/libgomp.c/atomic-2.c: Same.
6256         * testsuite/libgomp.c/atomic-4.c: Same.
6257         * testsuite/libgomp.c/atomic-5.c: Same.
6258         * testsuite/libgomp.c/atomic-6.c: Same.
6259         * testsuite/libgomp.c/autopar-1.c: Same.
6260         * testsuite/libgomp.c/copyin-1.c: Same.
6261         * testsuite/libgomp.c/copyin-2.c: Same.
6262         * testsuite/libgomp.c/copyin-3.c: Same.
6263         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
6264         * testsuite/libgomp.c/nestedfn-5.c: Same.
6265         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
6266         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
6267         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
6268         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
6269         * testsuite/libgomp.c/pr32362-1.c: Same.
6270         * testsuite/libgomp.c/pr32362-2.c: Same.
6271         * testsuite/libgomp.c/pr32362-3.c: Same.
6272         * testsuite/libgomp.c/pr39591-1.c: Same.
6273         * testsuite/libgomp.c/pr39591-2.c: Same.
6274         * testsuite/libgomp.c/pr39591-3.c: Same.
6275         * testsuite/libgomp.c/pr58392.c: Same.
6276         * testsuite/libgomp.c/pr58756.c: Same.
6277         * testsuite/libgomp.c/simd-1.c: Same.
6278         * testsuite/libgomp.c/simd-10.c: Same.
6279         * testsuite/libgomp.c/simd-11.c: Same.
6280         * testsuite/libgomp.c/simd-12.c: Same.
6281         * testsuite/libgomp.c/simd-13.c: Same.
6282         * testsuite/libgomp.c/simd-14.c: Same.
6283         * testsuite/libgomp.c/simd-15.c: Same.
6284         * testsuite/libgomp.c/simd-2.c: Same.
6285         * testsuite/libgomp.c/simd-3.c: Same.
6286         * testsuite/libgomp.c/simd-4.c: Same.
6287         * testsuite/libgomp.c/simd-5.c: Same.
6288         * testsuite/libgomp.c/simd-6.c: Same.
6289         * testsuite/libgomp.c/simd-7.c: Same.
6290         * testsuite/libgomp.c/simd-8.c: Same.
6291         * testsuite/libgomp.c/simd-9.c: Same.
6293 2015-06-15  Tom de Vries  <tom@codesourcery.com>
6295         * testsuite/libgomp.c/pr35625.c: Fix typo.
6297 2015-06-15  Tom de Vries  <tom@codesourcery.com>
6299         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
6300         in dg-options.
6301         * testsuite/libgomp.c/atomic-3.c: Same.
6302         * testsuite/libgomp.c/debug-1.c: Same.
6303         * testsuite/libgomp.c/nqueens-1.c: Same.
6304         * testsuite/libgomp.c/pr26171.c: Same.
6305         * testsuite/libgomp.c/pr48591.c: Same.
6306         * testsuite/libgomp.c/pr64824.c: Same.
6307         * testsuite/libgomp.c/pr64868.c: Same.
6308         * testsuite/libgomp.c/pr66133.c: Same.
6309         * testsuite/libgomp.c/pr66199-1.c: Same.
6310         * testsuite/libgomp.c/pr66199-2.c: Same.
6311         * testsuite/libgomp.c/target-8.c: Same.
6313 2015-06-15  Tom de Vries  <tom@codesourcery.com>
6315         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
6316         -std={gnu99,c99}.
6317         * testsuite/libgomp.c/for-1.c: Same.
6318         * testsuite/libgomp.c/for-2.c: Same.
6319         * testsuite/libgomp.c/for-3.c: Same.
6320         * testsuite/libgomp.c/pr35625.c: Same.
6321         * testsuite/libgomp.c/pr39154.c: Same.
6322         * testsuite/libgomp.c/simd-16.c: Same.
6323         * testsuite/libgomp.c/simd-17.c: Same.
6325 2015-06-13  Tom de Vries  <tom@codesourcery.com>
6327         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
6329 2015-06-13  Tom de Vries  <tom@codesourcery.com>
6331         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
6332         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
6333         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
6334         (N): Define.
6335         (main): Use N instead of hardcoded constants.
6337 2015-06-05  Tom de Vries  <tom@codesourcery.com>
6339         merge from gomp4 branch:
6340         2015-05-28  Tom de Vries  <tom@codesourcery.com>
6342         PR tree-optimization/65443
6343         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
6344         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
6345         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
6347 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6349         * testsuite/libgomp.graphite/bounds.c: Adjust for
6350         cleanup-tree-dump removal.
6351         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
6352         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
6353         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
6354         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
6355         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
6356         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
6357         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
6358         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
6359         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
6360         * testsuite/libgomp.graphite/pr41118.c: Likewise.
6362 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
6364         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
6365         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
6366         (futex_wake) [!__x86_64__]: Ditto.
6368 2015-05-28  Julian Brown  <julian@codesourcery.com>
6370         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
6371         function comment. Only call gomp_fatal if new argument is true.
6372         (acc_dev_num_out_of_range): New function.
6373         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
6374         acc_dev_num_out_of_range as appropriate.
6375         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
6376         (acc_get_device_num, acc_set_device_num): Update calls to
6377         resolve_device.
6378         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
6379         output.
6381 2015-05-28  Julian Brown  <julian@codesourcery.com>
6383         PR libgomp/65742
6384         * oacc-init.c (plugin/plugin-host.h): Include.
6385         (acc_on_device): Check whether we're in an offloaded region for
6386         host_nonshm
6387         plugin. Don't use __builtin_acc_on_device.
6388         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
6389         nonshm_exec flag in thread-local data.
6390         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
6391         data for host_nonshm plugin.
6392         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
6393         for host_nonshm plugin.
6394         * plugin/plugin-host.h: New.
6396 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
6398         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
6400 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
6402         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
6403         Declare as int.
6404         (FUTEX_PRIVATE_FLAG): Remove L suffix.
6405         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
6406         Declare as int.
6408 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
6410         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
6412 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
6414         * target.c (gomp_map_pointer): New function abstracting out
6415         GOMP_MAP_POINTER handling.
6416         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
6417         gomp_map_pointer().
6419 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
6421         PR middle-end/66199
6422         * testsuite/libgomp.c/pr66199-1.c: New test.
6423         * testsuite/libgomp.c/pr66199-2.c: New test.
6424         * testsuite/libgomp.c++/pr66199-1.C: New test.
6425         * testsuite/libgomp.c++/pr66199-2.C: New test.
6426         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
6427         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
6429 2015-05-19  Julian Brown  <julian@codesourcery.com>
6431         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
6432         on cuInit failure.
6434 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
6436         PR middle-end/66133
6437         * testsuite/libgomp.c/pr66133.c: New test.
6439 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
6441         * Makefile.in: Regenerated with automake-1.11.6.
6442         * aclocal.m4: Likewise.
6443         * config.h.in: Likewise.
6444         * configure: Likewise.
6445         * testsuite/Makefile.in: Likewise.
6447 2015-05-08  Jason Merrill  <jason@redhat.com>
6449         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
6450         _Complex.
6452         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
6454 2015-05-06  Julian Brown  <julian@codesourcery.com>
6456         * oacc-init.c (acc_device_lock): Add explanatory comment.
6457         (resolve_device): Add comment about locking requirement.
6458         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
6459         gomp_init_device and gomp_fini_device calls.
6460         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
6461         (acc_get_device_num, acc_set_device_num): Add locking around
6462         resolve_device and gomp_init_device calls.
6464 2015-05-06  Julian Brown  <julian@codesourcery.com>
6466         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
6467         goacc_thread_lock on error paths.
6468         * oacc-mem.c (lookup_host): Remove locking from function. Note
6469         locking requirement for caller in function comment.
6470         (lookup_dev): Likewise.
6471         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
6472         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
6473         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
6474         Add locking.
6476 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
6478         PR testsuite/65205
6479         PR libgomp/65993
6480         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
6481         don't expect "0x" prefix for "%p" format specifier, don't expect
6482         "(nil)" for NULL pointer.
6483         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
6484         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
6485         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
6486         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
6487         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
6488         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
6489         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
6490         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
6491         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
6492         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
6493         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
6494         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
6495         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
6496         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
6497         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
6498         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
6499         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
6500         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
6501         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
6502         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
6503         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
6504         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
6505         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
6506         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
6507         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
6508         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
6509         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
6510         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
6511         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
6512         accurately specify what we're looking for.
6513         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
6514         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
6515         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
6516         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
6517         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
6519 2015-04-30  James Norris  <jnorris@codesourcery.com>
6521         PR testsuite/65205
6522         * testsuite/lib/libgomp.exp
6523         (check_effective_target_openacc_host_selected)
6524         (check_effective_target_openacc_host_nonshm_selected): New
6525         procedures.
6526         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
6527         dg-shouldfail.
6528         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
6529         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
6530         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
6531         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
6532         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
6533         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
6534         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
6535         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
6536         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
6537         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
6538         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
6539         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
6540         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
6541         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
6542         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
6543         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
6544         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
6545         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
6546         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
6547         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
6548         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
6549         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
6550         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
6551         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
6552         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
6553         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
6554         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
6555         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
6556         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
6557         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
6558         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
6559         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
6560         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
6561         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
6562         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
6563         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
6564         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
6565         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
6566         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
6567         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
6568         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
6569         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
6570         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
6572 2015-04-08  Julian Brown  <julian@codesourcery.com>
6574         * libgomp.h (target_mem_desc: Remove mem_map field.
6575         (acc_dispatch_t): Remove open_device_func, close_device_func,
6576         get_device_num_func, set_device_num_func, target_data members.
6577         Change create_thread_data_func argument to device number instead of
6578         generic pointer.
6579         * oacc-async.c (assert.h): Include.
6580         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
6581         (acc_wait_all, acc_wait_all_async): Use current host thread's
6582         active device, not base_dev.
6583         * oacc-cuda.c (acc_get_current_cuda_device)
6584         (acc_get_current_cuda_context, acc_get_cuda_stream)
6585         (acc_set_cuda_stream): Likewise.
6586         * oacc-host.c (host_dispatch): Don't set open_device_func,
6587         close_device_func, get_device_num_func or set_device_num_func.
6588         * oacc-init.c (base_dev, init_key): Remove.
6589         (cached_base_dev): New.
6590         (name_of_acc_device_t): New.
6591         (acc_init_1): Initialise default-numbered device, not zeroth.
6592         (acc_shutdown_1): Close all devices of a given type.
6593         (goacc_destroy_thread): Don't use base_dev.
6594         (lazy_open, lazy_init, lazy_init_and_open): Remove.
6595         (goacc_attach_host_thread_to_device): New.
6596         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
6597         (acc_get_num_devices): Don't use base_dev.
6598         (acc_set_device_type): Reimplement.
6599         (acc_get_device_type): Don't use base_dev.
6600         (acc_get_device_num): Tweak logic.
6601         (acc_set_device_num): Likewise.
6602         (acc_on_device): Use acc_get_device_type.
6603         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
6604         (goacc_lazy_initialize): Reimplement with acc_init and
6605         goacc_attach_host_thread_to_device.
6606         * oacc-int.h (goacc_thread): Add base_dev field.
6607         (base_dev): Remove extern declaration.
6608         (goacc_attach_host_thread_to_device): Add prototype.
6609         * oacc-mem.c (acc_malloc): Use current thread's device instead of
6610         base_dev.
6611         (acc_free): Likewise.
6612         (acc_memcpy_to_device): Likewise.
6613         (acc_memcpy_from_device): Likewise.
6614         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
6615         goacc_lazy_initialize (throughout).
6616         (GOACC_parallel): Use tgt_offset to locate target functions.
6617         * target.c (gomp_map_vars): Don't set tgt->mem_map.
6618         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
6619         (gomp_load_plugin_for_device): Remove open_device, close_device,
6620         get_device_num, set_device_num openacc hook initialisation. Don't set
6621         openacc.target_data.
6622         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
6623         (GOMP_OFFLOAD_openacc_close_device)
6624         (GOMP_OFFLOAD_openacc_get_device_num)
6625         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
6626         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
6627         to int.
6628         * plugin/plugin-nvptx.c (ptx_inited): Remove.
6629         (instantiated_devices, ptx_dev_lock): New.
6630         (struct ptx_image_data): New.
6631         (ptx_devices, ptx_images, ptx_image_lock): New.
6632         (fini_streams_for_device): Reorder cuStreamDestroy call.
6633         (nvptx_get_num_devices): Remove forward declaration.
6634         (nvptx_init): Change return type to bool.
6635         (nvptx_fini): Remove.
6636         (nvptx_attach_host_thread_to_device): New.
6637         (nvptx_open_device): Return struct ptx_device* instead of void*.
6638         (nvptx_close_device): Change argument type to struct ptx_device*,
6639         return type to void.
6640         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
6641         (kernel_target_data, kernel_host_table): Remove static globals.
6642         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
6643         (GOMP_OFFLOAD_init_device): Reimplement.
6644         (GOMP_OFFLOAD_fini_device): Likewise.
6645         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
6646         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
6647         (GOMP_OFFLOAD_host2dev): Use ORD argument.
6648         (GOMP_OFFLOAD_openacc_open_device)
6649         (GOMP_OFFLOAD_openacc_close_device)
6650         (GOMP_OFFLOAD_openacc_set_device_num)
6651         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
6652         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
6653         (device number).
6655         testsuite/
6656         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
6658 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
6660         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
6661         * libgomp.h (struct gomp_memory_mapping): Remove.
6662         (struct target_mem_desc): Change type of mem_map from
6663         gomp_memory_mapping * to splay_tree_s *.
6664         (struct gomp_device_descr): Remove register_image_func, get_table_func.
6665         Add load_image_func, unload_image_func.
6666         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
6667         Remove offload_regions_registered.
6668         (gomp_init_tables): Remove.
6669         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
6670         to splay_tree_s *.
6671         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
6672         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
6673         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
6674         offload_regions_registered.
6675         Initialize load_image_func, unload_image_func, mem_map.root.
6676         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
6677         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
6678         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
6679         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
6680         gomp_memory_mapping *.  Use dev's lock and splay_tree.
6681         (lookup_dev): Use dev's lock.
6682         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
6683         (acc_is_present): Likewise.
6684         (acc_map_data): Likewise.
6685         (acc_unmap_data): Likewise.  Use dev's lock.
6686         (present_create_copy): Likewise.
6687         (delete_copyout): Pass dev to lookup_host instead of mem_map.
6688         (update_dev_host): Likewise.
6689         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
6690         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
6691         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
6692         (GOMP_OFFLOAD_get_table): Remove
6693         (GOMP_OFFLOAD_load_image): New function.
6694         (GOMP_OFFLOAD_unload_image): New function.
6695         * target.c (register_lock): New mutex for offload image registration.
6696         (num_devices): Do not guard with PLUGIN_SUPPORT.
6697         (gomp_realloc_unlock): New static function.
6698         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
6699         before gomp_fatal.
6700         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
6701         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
6702         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
6703         mem_map's.
6704         (gomp_unmap_vars): Likewise.
6705         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
6706         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
6707         (gomp_offload_image_to_device): New static function.
6708         (GOMP_offload_register): Add mutex lock.
6709         Call gomp_offload_image_to_device for all initialized devices.
6710         Replace gomp_realloc with gomp_realloc_unlock.
6711         (GOMP_offload_unregister): New function.
6712         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
6713         get_table_func from the plugin with calls to init_device_func and
6714         gomp_offload_image_to_device.
6715         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
6716         to splay_tree_s *.
6717         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
6718         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
6719         (GOMP_target_data): Do not call gomp_init_tables.
6720         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
6721         (gomp_load_plugin_for_device): Replace register_image and get_table
6722         with load_image and unload_image in DLSYM ().
6723         (gomp_register_images_for_device): Remove function.
6724         (gomp_target_init): Do not initialize current_device.mem_map.*,
6725         current_device.offload_regions_registered.
6726         Remove call to gomp_register_images_for_device.
6727         Do not free offload_images and num_offload_images.
6729 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
6731         PR fortran/65597
6732         * testsuite/libgomp.fortran/pr65597.f90: New test.
6734 2015-03-27  Tom de Vries  <tom@codesourcery.com>
6736         PR testsuite/65594
6737         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
6738         (init, check): New function.
6739         (foo): Change return type to void.
6740         (main): Call init and check.
6742 2015-03-27  Tom de Vries  <tom@codesourcery.com>
6744         PR testsuite/65594
6745         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
6746         (foo): Use M for non-inner loops to scale down test-case.
6748 2015-03-25  Kai Tietz  <ktietz@redhat.com>
6750         PR libgomp/64972
6751         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
6752         (GOACC_data_start): Likewise.
6753         * target.c (gomp_map_vars): Likewise.
6755 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
6757         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
6758         hppa*-*-hpux*.
6760 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
6762         * testsuite/libgomp.c/target-10.c: New test.
6763         * testsuite/libgomp.c++/target-4.C: New test.
6765 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
6767         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
6768         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
6770 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6772         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
6773         * configure.ac (*-*-rtems*): Assume Pthread is supported.
6774         (pthread.h): Check for this header file.
6775         * configure: Regenerate.
6777 2015-02-25  Tom de Vries  <tom@codesourcery.com>
6779         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
6780         (check_reduction_op, check_reduction_macro, max, min):
6781         Declare.
6782         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
6783         function.
6784         (main): Use new functions.
6786 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
6788         * target.c (gomp_load_plugin_for_device): Use const char * instead of
6789         char * for variables holding dlerror return values.
6790         (DLSYM_OPT): Ditto.
6792 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
6794         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
6796 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
6797             Cesar Philippidis  <cesar@codesourcery.com>
6799         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
6800         GOACC_ctaid, and GOACC_nctaid routines.
6802 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
6804         PR c/64824
6805         * testsuite/libgomp.c/atomic-18.c: New test.
6806         * testsuite/libgomp.c++/atomic-16.C: New test.
6808 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
6810         PR c/64824
6811         PR c/64868
6812         * testsuite/libgomp.c/pr64824.c: New test.
6813         * testsuite/libgomp.c/pr64868.c: New test.
6814         * testsuite/libgomp.c++/pr64824.C: New test.
6815         * testsuite/libgomp.c++/pr64868.C: New test.
6817 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
6819         PR libgomp/64635
6820         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
6821         Link with -lpthread.
6822         * config/aix/plugin-suffix.h: Delete.
6824 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
6826         PR libgomp/64635
6827         * configure.tgt (*-*-aix*): Use config_path "aix posix".
6828         (*-*-darwin*): Use config_path "bsd darwin posix".
6829         (*-*-hpux*): Use config_path "hpux posix".
6830         * target.c: Add include of plugin-suffix.h and use
6831         SONAME_SUFFIX macro.
6832         * config/aix/plugin-suffix.h: New file.
6833         * config/darwin/plugin-suffix.h: New file.
6834         * config/hpux/plugin-suffix.h: New file.
6835         * config/posix/plugin-suffix.h: New file.
6837 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
6839         PR middle-end/64734
6840         * libgomp.c/pr64734.c: New test.
6842 2015-01-23  Tom de Vries  <tom@codesourcery.com>
6844         PR libgomp/64672
6845         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
6847 2015-01-23  Tom de Vries  <tom@codesourcery.com>
6849         PR libgomp/64707
6850         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
6851         dg-options.
6853 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
6855         PR libgomp/64625
6856         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
6857         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
6858         formal parameter.  Update all users.
6859         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
6860         Document unused formal parameter.
6862 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
6864         * oacc-parallel.c: Don't include <alloca.h>.
6865         (GOACC_parallel): Use gomp_alloca instead of alloca.
6867 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
6869         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
6871 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
6872             James Norris  <jnorris@codesourcery.com>
6873             Tom de Vries  <tom@codesourcery.com>
6874             Julian Brown  <julian@codesourcery.com>
6875             Cesar Philippidis  <cesar@codesourcery.com>
6876             Nathan Sidwell  <nathan@codesourcery.com>
6877             Tobias Burnus  <burnus@net-b.de>
6879         * Makefile.am (search_path): Add $(top_srcdir)/../include.
6880         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
6881         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
6882         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
6883         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
6884         Include $(top_srcdir)/plugin/Makefrag.am.
6885         (nodist_libsubinclude_HEADERS): Add openacc.h.
6886         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
6887         openacc.f90, openacc.mod, openacc_kinds.mod.
6888         (omp_lib.mod): Generalize into...
6889         (%.mod): ... this new rule.
6890         (openacc_kinds.mod, openacc.mod): New rules.
6891         * plugin/configfrag.ac: New file.
6892         * configure.ac: Move plugin/offloading support into it.  Include
6893         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
6894         * plugin/Makefrag.am: New file.
6895         * testsuite/Makefile.am (OFFLOAD_TARGETS)
6896         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
6897         export.
6898         (libgomp-test-support.exp): New rule.
6899         (all-local): Depend on it.
6900         * Makefile.in: Regenerate.
6901         * testsuite/Makefile.in: Regenerate.
6902         * config.h.in: Likewise.
6903         * configure: Likewise.
6904         * configure.tgt: Harden shell syntax.
6905         * env.c: Include "oacc-int.h".
6906         (parse_acc_device_type): New function.
6907         (gomp_debug_var, goacc_device_type, goacc_device_num): New
6908         variables.
6909         (initialize_env): Initialize those.  Call
6910         goacc_runtime_initialize.
6911         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
6912         (gomp_fatal): Call gomp_vfatal.
6913         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
6914         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
6915         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
6916         (splay_tree_node, splay_tree, splay_tree_key)
6917         (struct target_mem_desc, struct splay_tree_key_s)
6918         (struct gomp_memory_mapping, struct acc_dispatch_t)
6919         (struct gomp_device_descr, gomp_acc_insert_pointer)
6920         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
6921         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
6922         (gomp_free_memmap, gomp_fini_device): New declarations.
6923         (gomp_vdebug, gomp_debug): New macros.
6924         Include "splay-tree.h".
6925         * libgomp.map (OACC_2.0): New symbol version.  Use for
6926         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
6927         acc_set_device_type_h_, acc_get_device_type,
6928         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
6929         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
6930         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
6931         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
6932         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
6933         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
6934         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
6935         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
6936         acc_copyin_array_h_, acc_present_or_copyin,
6937         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
6938         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
6939         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
6940         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
6941         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
6942         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
6943         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
6944         acc_update_device, acc_update_device_32_h_,
6945         acc_update_device_64_h_, acc_update_device_array_h_,
6946         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
6947         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
6948         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
6949         acc_is_present_64_h_, acc_is_present_array_h_,
6950         acc_memcpy_to_device, acc_memcpy_from_device,
6951         acc_get_current_cuda_device, acc_get_current_cuda_context,
6952         acc_get_cuda_stream, acc_set_cuda_stream.
6953         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
6954         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
6955         GOACC_update, GOACC_wait, GOACC_get_thread_num,
6956         GOACC_get_num_threads.
6957         (GOMP_PLUGIN_1.0): New symbol version.  Use for
6958         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
6959         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
6960         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
6961         GOMP_PLUGIN_acc_thread.
6962         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
6963         environment variable.
6964         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
6965         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
6966         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
6967         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
6968         (splay_tree_remove): New declarations.
6969         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
6970         (splay_tree_remove, splay_tree_lookup): Move into...
6971         * splay-tree.c: ... this new file.
6972         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
6973         (splay_tree_node, splay_tree, splay_tree_key)
6974         (struct target_mem_desc, struct splay_tree_key_s)
6975         (struct gomp_device_descr): Don't declare.
6976         (num_devices_openmp): New variable.
6977         (gomp_get_num_devices ): Use it.
6978         (gomp_init_targets_once): New function.
6979         (gomp_get_num_devices ): Use it.
6980         (get_kind, gomp_copy_from_async, gomp_free_memmap)
6981         (gomp_fini_device, gomp_register_image_for_device): New functions.
6982         (gomp_map_vars): Add devaddrs parameter.
6983         (gomp_update): Add mm parameter.
6984         (gomp_init_device): Move most of it into...
6985         (gomp_init_tables): ... this new function.
6986         (gomp_register_images_for_device): Remove function.
6987         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
6988         Make them hidden instead of static.
6989         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
6990         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
6991         (GOMP_target_end_data, GOMP_target_update)
6992         (gomp_load_plugin_for_device, gomp_target_init): Update for
6993         OpenACC changes.
6994         * oacc-async.c: New file.
6995         * oacc-cuda.c: Likewise.
6996         * oacc-host.c: Likewise.
6997         * oacc-init.c: Likewise.
6998         * oacc-int.h: Likewise.
6999         * oacc-mem.c: Likewise.
7000         * oacc-parallel.c: Likewise.
7001         * oacc-plugin.c: Likewise.
7002         * oacc-plugin.h: Likewise.
7003         * oacc-ptx.h: Likewise.
7004         * openacc.f90: Likewise.
7005         * openacc.h: Likewise.
7006         * openacc_lib.h: Likewise.
7007         * plugin/plugin-host.c: Likewise.
7008         * plugin/plugin-nvptx.c: Likewise.
7009         * libgomp-plugin.c: Likewise.
7010         * libgomp-plugin.h: Likewise.
7011         * libgomp_target.h: Remove file after merging content into the
7012         former file.  Update all users.
7013         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
7014         (offload_targets_s, offload_targets_s_openacc): New variables.
7015         (check_effective_target_openacc_nvidia_accel_present)
7016         (check_effective_target_openacc_nvidia_accel_selected): New
7017         procedures.
7018         (libgomp_init): Update for OpenACC changes.
7019         * testsuite/libgomp-test-support.exp.in: New file.
7020         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
7021         * testsuite/libgomp.oacc-c/c.exp: Likewise.
7022         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
7023         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
7024         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
7025         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
7026         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
7027         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
7028         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
7029         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
7030         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
7031         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
7032         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
7033         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
7034         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
7035         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
7036         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
7037         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
7038         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
7039         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
7040         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
7041         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
7042         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
7043         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
7044         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
7045         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
7046         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
7047         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
7048         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
7049         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
7050         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
7051         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
7052         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
7053         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
7054         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
7055         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
7056         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
7057         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
7058         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
7059         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
7060         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
7061         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
7062         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
7063         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
7064         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
7065         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
7066         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
7067         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
7068         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
7069         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
7070         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
7071         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
7072         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
7073         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
7074         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
7075         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
7076         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
7077         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
7078         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
7079         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
7080         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
7081         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
7082         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
7083         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
7084         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
7085         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
7086         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
7087         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
7088         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
7089         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
7090         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
7091         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
7092         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
7093         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
7094         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
7095         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
7096         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
7097         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
7098         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
7099         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
7100         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
7101         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
7102         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
7103         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
7104         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
7105         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
7106         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
7107         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
7108         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
7109         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
7110         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
7111         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
7112         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
7113         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
7114         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
7115         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
7116         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
7117         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
7118         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
7119         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
7120         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
7121         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
7122         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
7123         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
7124         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
7125         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
7126         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
7127         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
7128         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
7129         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
7130         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
7131         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
7132         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
7133         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
7134         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
7135         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
7136         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
7137         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
7138         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
7139         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
7140         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
7141         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
7142         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
7143         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
7144         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
7145         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
7146         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
7147         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
7148         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
7149         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
7150         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
7151         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
7152         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
7153         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
7154         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
7155         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
7156         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
7157         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
7158         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
7159         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
7160         Likewise.
7161         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
7162         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
7163         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
7164         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
7165         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
7166         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
7167         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
7168         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
7169         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
7170         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
7171         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
7172         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
7173         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
7174         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
7175         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
7176         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
7177         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
7178         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
7179         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
7180         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
7181         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
7182         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
7183         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
7184         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
7185         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
7186         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
7187         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
7188         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
7189         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
7190         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
7191         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
7192         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
7193         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
7194         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
7195         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
7196         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
7197         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
7198         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
7199         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
7200         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
7201         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
7202         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
7203         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
7204         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
7205         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
7206         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
7207         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
7208         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
7209         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
7210         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
7211         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
7212         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
7213         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
7214         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
7215         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
7216         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
7217         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
7218         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
7219         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
7220         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
7222 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
7223             Julian Brown  <julian@codesourcery.com>
7224             David Malcolm  <dmalcolm@redhat.com>
7226         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
7227         to "GNU Offloading and Multi Processing Runtime Library".  Change
7228         all users.
7229         * configure: Regenerate.
7230         * libgomp.texi: Update.
7232 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
7234         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
7235         "$tgt_dir/lib32".
7236         * configure: Regenerate.
7238         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
7239         "intelmic" in $offload_targets.
7241 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
7243         Update copyright years.
7245         * libgomp.texi: Bump @copying's copyright year.
7247 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7249         * testsuite/lib/libgomp.exp: Load target-utils.exp.
7250         Move load of target-supportes.exp earlier.
7252 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
7254         * testsuite/libgomp.c/target-9.c: New test.
7256 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
7258         * config.h.in: Regenerate.
7259         * configure: Regenerate.
7260         * configure.ac: Add GCC_CHECK_EMUTLS.
7261         * libgomp.h: Add check for USE_EMUTLS: this case
7262         is equal to HAVE_TLS.
7263         * team.c: Likewise.
7265 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
7267         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
7269 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
7270             Ilya Verbin  <ilya.verbin@intel.com>
7272         * testsuite/libgomp.c/target-critical-1.c: New test.
7274 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
7276         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
7277         to dg-options unless expensive testing is on.
7278         (TESTITERS): Define to N if not defined.
7279         (main): Use TESTITERS instead of N.
7280         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
7281         dg-additional-options depending on whether expensive testing is on.
7282         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
7283         Decrease N to 100000 and CHUNKSZ to 10000.
7285 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
7287         PR fortran/63938
7288         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
7289         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
7291 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
7293         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
7295 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
7297         PR bootstrap/63784
7298         * configure: Regenerated.
7300 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
7302         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
7303         vect_simd_clones effective target.
7304         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
7306 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7308         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
7309         of 32 as block_size.
7310         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
7311         instead of 32 as block_size.
7313 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
7314             Ilya Verbin  <ilya.verbin@intel.com>
7316         * Makefile.in: Regenerate.
7317         * configure: Regenerate.
7318         * configure.ac: Set up offload_additional_options,
7319         offload_additional_lib_paths and offload_targets.
7320         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
7321         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
7322         * testsuite/Makefile.in: Regenerate.
7323         * testsuite/lib/libgomp.exp (libgomp_init): Append
7324         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
7325         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
7326         build directory to LD_LIBRARY_PATH for intelmic offload targets.
7328 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
7329             Ilya Verbin  <ilya.verbin@intel.com>
7330             Kirill Yukhin  <kirill.yukhin@intel.com>
7331             Ilya Tocar  <ilya.tocar@intel.com>
7333         * testsuite/lib/libgomp.exp
7334         (check_effective_target_offload_device): New.
7335         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
7336         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
7337         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
7338         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
7339         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
7340         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
7341         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
7342         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
7343         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
7344         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
7345         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
7346         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
7347         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
7348         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
7349         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
7350         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
7351         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
7352         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
7353         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
7354         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
7355         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
7356         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
7357         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
7358         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
7359         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
7360         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
7361         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
7362         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
7363         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
7364         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
7365         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
7366         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
7367         * testsuite/libgomp.c/target-7.c: Fix test.
7368         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
7369         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
7370         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
7371         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
7372         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
7373         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
7374         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
7375         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
7376         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
7377         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
7378         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
7379         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
7380         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
7381         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
7382         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
7383         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
7384         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
7385         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
7386         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
7387         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
7388         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
7389         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
7390         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
7391         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
7392         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
7393         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
7394         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
7395         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
7396         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
7397         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
7398         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
7400 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
7401             Ilya Verbin  <ilya.verbin@intel.com>
7402             Thomas Schwinge  <thomas@codesourcery.com>
7403             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7405         * libgomp.map (GOMP_4.0.1): New symbol version.
7406         Add GOMP_offload_register.
7407         * libgomp_target.h: New file.
7408         * splay-tree.h: New file.
7409         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
7410         (gomp_target_init): New forward declaration.
7411         (gomp_is_initialized): New static variable.
7412         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
7413         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
7414         New structures.
7415         (offload_images, num_offload_images, devices, num_devices): New static
7416         variables.
7417         (splay_compare): New static function.
7418         (struct gomp_device_descr): New structure.
7419         (gomp_get_num_devices): Call gomp_target_init.
7420         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
7421         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
7422         (GOMP_offload_register): New function.
7423         (GOMP_target): Arrange for host callback to be performed in a separate
7424         initial thread and contention group, inheriting ICVs from
7425         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
7426         Add device initialization and lookup for target function in splay tree.
7427         (GOMP_target_data): Add device initialization and call gomp_map_vars.
7428         (GOMP_target_end_data): Call gomp_unmap_vars.
7429         (GOMP_target_update): Add device initialization and call gomp_update.
7430         (gomp_load_plugin_for_device, gomp_register_images_for_device)
7431         (gomp_target_init): New static functions.
7433 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7434             Thomas Schwinge  <thomas@codesourcery.com>
7435             Ilya Verbin  <ilya.verbin@intel.com>
7436             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7438         * config.h.in: Regenerate.
7439         * configure: Regenerate.
7440         * configure.ac: Check for libdl, required for plugin support.
7441         (PLUGIN_SUPPORT): Define if plugins are supported.
7442         (enable_offload_targets): Support Intel MIC targets.
7443         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7445 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7447         PR target/63610
7448         * configure: Regenerate.
7450 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7452         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
7454 2014-10-06  Marek Polacek  <polacek@redhat.com>
7456         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
7457         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
7458         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
7459         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
7461 2014-10-06  Marek Polacek  <polacek@redhat.com>
7463         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
7464         * testsuite/libgomp.c/nqueens-1.c: Likewise.
7465         * testsuite/libgomp.c/pr26943-3.c: Likewise.
7466         * testsuite/libgomp.c/pr26943-4.c: Likewise.
7467         * testsuite/libgomp.c/pr36802-2.c: Likewise.
7468         * testsuite/libgomp.c/pr36802-3.c: Likewise.
7469         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
7470         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
7471         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
7472         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
7473         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
7474         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
7475         * testsuite/libgomp.c/omp-single-1.c: Likewise.
7476         * testsuite/libgomp.c/omp-single-2.c: Likewise.
7477         * testsuite/libgomp.c/omp_matvec.c: Likewise.
7478         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
7479         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
7480         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
7481         declarations.
7483 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
7485         PR libgomp/61200
7486         * testsuite/libgomp.c/pr61200.c: New test.
7488 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
7490         PR c++/63248
7491         * testsuite/libgomp.c++/pr63248.C: New test.
7493 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
7495         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
7496         is not zero, but taskgroup->children is NULL and there are
7497         any task->children, schedule those instead of waiting.
7498         * testsuite/libgomp.c/depend-6.c: New test.
7499         * testsuite/libgomp.c/depend-7.c: New test.
7500         * testsuite/libgomp.c/depend-8.c: New test.
7501         * testsuite/libgomp.c/depend-9.c: New test.
7502         * testsuite/libgomp.c/depend-10.c: New test.
7504 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
7506         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
7507         (struct gomp_taskwait): New type.
7508         (struct gomp_task): Add taskwait and parent_depends_on, remove
7509         in_taskwait and taskwait_sem fields.
7510         (gomp_finish_task): Don't destroy taskwait_sem.
7511         * task.c (gomp_init_task): Don't init in_taskwait, instead init
7512         taskwait and parent_depends_on.
7513         (GOMP_task): For if (0) tasks with depend clause that depend on
7514         earlier tasks don't defer them, instead call
7515         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
7516         Initialize redundant_out field, for redundant out entries just
7517         move them at the end of linked list instead of removing them
7518         completely, and set redundant_out flag instead of redundant.
7519         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
7520         that task.
7521         (gomp_task_run_post_handle_dependers): If parent is in
7522         gomp_task_maybe_wait_for_dependencies and newly runnable task
7523         is not parent_depends_on, queue it in parent->children linked
7524         list after all runnable tasks with parent_depends_on set.
7525         Adjust for addition of taskwait indirection.
7526         (gomp_task_run_post_remove_parent): If parent is in
7527         gomp_task_maybe_wait_for_dependencies and task to be removed
7528         is parent_depends_on, decrement n_depend and if needed awake
7529         parent.  Adjust for addition of taskwait indirection.
7530         (GOMP_taskwait): Adjust for addition of taskwait indirection.
7531         (gomp_task_maybe_wait_for_dependencies): New function.
7532         * testsuite/libgomp.c/depend-5.c: New test.
7534 2014-07-13  Tobias Burnus  <burnus@net-b.de>
7536         * testsuite/libgomp.fortran/pr34020.f90: Make compile
7537         with TS 18508/Fortran 2015.
7539 2014-07-06  Marek Polacek  <polacek@redhat.com>
7541         PR c/6940
7542         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
7544 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
7546         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
7547         matches regex $lang_source_re, add $lang_include_flags to options.
7548         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
7549         * testsuite/libgomp.c++/c++.exp: Likewise.
7550         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
7551         and lang_include_flags instead of adding -fintrinsic-modules-path= to
7552         ALWAYS_CFLAGS.
7553         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
7555 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
7557         * testsuite/libgomp.fortran/fortran.exp: Explain
7558         gfortran-dg-runtest usage.
7560 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
7562         * testsuite/libgomp.fortran/simd5.f90: New test.
7563         * testsuite/libgomp.fortran/simd6.f90: New test.
7564         * testsuite/libgomp.fortran/simd7.f90: New test.
7566 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
7568         * testsuite/libgomp.c/for-2.c: Define SC to static for
7569         #pragma omp for simd testing.
7570         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
7571         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
7572         SC macro.
7573         * testsuite/libgomp.c/simd-14.c: New test.
7574         * testsuite/libgomp.c/simd-15.c: New test.
7575         * testsuite/libgomp.c/simd-16.c: New test.
7576         * testsuite/libgomp.c/simd-17.c: New test.
7577         * testsuite/libgomp.c++/for-10.C: Define SC to static for
7578         #pragma omp for simd testing.
7579         * testsuite/libgomp.c++/simd10.C: New test.
7580         * testsuite/libgomp.c++/simd11.C: New test.
7581         * testsuite/libgomp.c++/simd12.C: New test.
7582         * testsuite/libgomp.c++/simd13.C: New test.
7584         * testsuite/libgomp.fortran/aligned1.f03: New test.
7585         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
7586         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
7587         tasks with !$omp parallel !$omp single.
7588         * testsuite/libgomp.fortran/target8.f90: New test.
7589         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
7590         not to use trim in the combiner, instead call elemental function.
7591         (fn): New elemental function.
7592         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
7593         Make elemental.
7594         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
7595         omp_in): Likewise.
7596         * testsuite/libgomp.fortran/udr12.f90: New test.
7597         * testsuite/libgomp.fortran/udr13.f90: New test.
7598         * testsuite/libgomp.fortran/udr14.f90: New test.
7599         * testsuite/libgomp.fortran/udr15.f90: New test.
7601 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
7603         * omp_lib.f90.in (openmp_version): Set to 201307.
7604         * omp_lib.h.in (openmp_version): Likewise.
7605         * testsuite/libgomp.c/target-8.c: New test.
7606         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
7607         and inbranch clauses.
7608         * testsuite/libgomp.fortran/depend-3.f90: New test.
7609         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
7610         openmp_version.
7611         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
7612         * testsuite/libgomp.fortran/target1.f90: New test.
7613         * testsuite/libgomp.fortran/target2.f90: New test.
7614         * testsuite/libgomp.fortran/target3.f90: New test.
7615         * testsuite/libgomp.fortran/target4.f90: New test.
7616         * testsuite/libgomp.fortran/target5.f90: New test.
7617         * testsuite/libgomp.fortran/target6.f90: New test.
7618         * testsuite/libgomp.fortran/target7.f90: New test.
7620 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
7622         PR fortran/60928
7623         * testsuite/libgomp.fortran/allocatable9.f90: New test.
7624         * testsuite/libgomp.fortran/allocatable10.f90: New test.
7625         * testsuite/libgomp.fortran/allocatable11.f90: New test.
7626         * testsuite/libgomp.fortran/allocatable12.f90: New test.
7627         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
7628         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
7629         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
7630         * testsuite/libgomp.fortran/associate1.f90: New test.
7631         * testsuite/libgomp.fortran/associate2.f90: New test.
7632         * testsuite/libgomp.fortran/procptr1.f90: New test.
7634 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
7636         * testsuite/libgomp.fortran/simd1.f90: New test.
7637         * testsuite/libgomp.fortran/udr1.f90: New test.
7638         * testsuite/libgomp.fortran/udr2.f90: New test.
7639         * testsuite/libgomp.fortran/udr3.f90: New test.
7640         * testsuite/libgomp.fortran/udr4.f90: New test.
7641         * testsuite/libgomp.fortran/udr5.f90: New test.
7642         * testsuite/libgomp.fortran/udr6.f90: New test.
7643         * testsuite/libgomp.fortran/udr7.f90: New test.
7644         * testsuite/libgomp.fortran/udr8.f90: New test.
7645         * testsuite/libgomp.fortran/udr9.f90: New test.
7646         * testsuite/libgomp.fortran/udr10.f90: New test.
7647         * testsuite/libgomp.fortran/udr11.f90: New test.
7649 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
7651         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
7652         vect_simd_clones effective target.
7653         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
7655 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
7657         PR middle-end/61252
7658         * testsuite/libgomp.c++/simd-9.C: New test.
7660 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
7662         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
7663         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
7664         texts according to their @menu entry positions.
7666 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
7668         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
7669         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
7670         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
7671         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
7672         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
7673         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
7674         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
7675         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
7676         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
7677         * testsuite/libgomp.fortran/depend-1.f90: New test.
7678         * testsuite/libgomp.fortran/depend-2.f90: New test.
7679         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
7680         * testsuite/libgomp.fortran/simd1.f90: New test.
7681         * testsuite/libgomp.fortran/simd2.f90: New test.
7682         * testsuite/libgomp.fortran/simd3.f90: New test.
7683         * testsuite/libgomp.fortran/simd4.f90: New test.
7684         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
7686 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
7688         * testsuite/libgomp.c/simd-10.c: New test.
7689         * testsuite/libgomp.c/simd-11.c: New test.
7690         * testsuite/libgomp.c/simd-12.c: New test.
7691         * testsuite/libgomp.c/simd-13.c: New test.
7693 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
7695         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
7696         atomic type clauses in any order and optional comma in between.
7697         * testsuite/libgomp.c++/atomic-15.C: Likewise.
7698         * testsuite/libgomp.c/atomic-17.c: Likewise.
7700         * testsuite/libgomp.c/simd-7.c: New test.
7701         * testsuite/libgomp.c/simd-8.c: New test.
7702         * testsuite/libgomp.c/simd-9.c: New test.
7703         * testsuite/libgomp.c/loop-16.c: New test.
7705 2014-04-02  Richard Henderson  <rth@redhat.com>
7707         * config/linux/futex.h (futex_wait): Get error value from errno.
7708         (futex_wake): Likewise.
7710 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
7712         PR c++/60331
7713         * testsuite/libgomp.c++/udr-11.C: New test.
7714         * testsuite/libgomp.c++/udr-12.C: New test.
7715         * testsuite/libgomp.c++/udr-13.C: New test.
7716         * testsuite/libgomp.c++/udr-14.C: New test.
7717         * testsuite/libgomp.c++/udr-15.C: New test.
7718         * testsuite/libgomp.c++/udr-16.C: New test.
7719         * testsuite/libgomp.c++/udr-17.C: New test.
7720         * testsuite/libgomp.c++/udr-18.C: New test.
7721         * testsuite/libgomp.c++/udr-19.C: New test.
7723 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7725         Update copyright years
7727 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7729         * hashtab.h: Use the standard form for the copyright notice.
7731 2014-01-02  Tobias Burnus  <burnus@net-b.de>
7733         * libgomp.texi: Bump @copying's copyright year.
7735 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
7737         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
7738         alloca () with __builtin_alloca ().
7739         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
7740         * testsuite/libgomp.c/lock-3.c: Likewise.
7741         * testsuite/libgomp.c/pr48591.c: Likewise.
7743 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
7745         PR testsuite/59534
7746         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
7747         comparisons.
7749 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
7751         PR libgomp/58756
7752         * testsuite/libgomp.c/pr58756.c: New test.
7754 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
7756         PR libgomp/59467
7757         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
7758         !$omp parallel.
7760 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
7762         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
7763         ALWAYS_CFLAGS.
7764         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
7765         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
7766         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
7767         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
7768         Likewise.
7770         * libgomp_g.h: Include <stddef.h> for size_t.
7772         * libgomp.spec.in: Update comment about libgomp's dependencies.
7773         * configure.ac: Likewise.
7774         * configure: Regenerate.
7776 2013-10-16  Tobias Burnus  <burnus@net-b.de>
7778         * libgomp.texi: (Runtime Library Routines): Update references for
7779         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
7780         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
7781         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
7782         (Environment Variables): Update references for OpenMP 4.0. Add
7783         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
7784         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
7785         order.
7787 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
7789         * env.c (parse_bind_var): Initialize value to avoid
7790         (false positive) warning.
7792 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
7794         PR libgomp/58691
7795         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
7796         to check variable.
7797         (gomp_init_num_threads): Move i variable declaration into
7798         #ifdef CPU_ALLOC_SIZE block.
7799         * config/linux/affinity.c (gomp_affinity_init_level): Test
7800         gomp_places_list_len == 0 rather than gomp_places_list == 0
7801         when checking for topology reading error.
7802         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
7803         * env.c (parse_affinity): Add ignore argument, if true, don't populate
7804         gomp_places_list, only parse env var and always return false.
7805         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
7806         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
7807         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
7808         and either of these variables were parsed correctly into a places
7809         list.
7811 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
7812             Jakub Jelinek  <jakub@redhat.com>
7814         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
7815         of 5 loopfn matches.
7816         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
7817         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
7818         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
7819         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
7820         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
7821         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
7822         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
7823         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
7825 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
7827         * Makefile.am (omp_lib.mod): Streamline rule.
7828         * Makefile.in: Regenerate.
7830         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
7831         exceptions.
7833         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
7834         * testsuite/libgomp.fortran/lib1.f90: Likewise.
7835         * testsuite/libgomp.fortran/lib2.f: Likewise.
7836         * testsuite/libgomp.fortran/lib3.f: Likewise.
7838         * configure.ac: Typo fix.
7839         * configure: Regenerate.
7841         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
7842         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
7844         * omp.h.in: Don't touch the user's namespace.
7846 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
7847             Tobias Burnus  <burnus@net-b.de>
7848             Richard Henderson  <rth@redhat.com>
7850         * target.c: New file.
7851         * Makefile.am (libgomp_la_SOURCES): Add target.c.
7852         * Makefile.in: Regenerated.
7853         * libgomp_g.h (GOMP_task): Add depend argument.
7854         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
7855         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
7856         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
7857         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
7858         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
7859         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
7860         GOMP_taskgroup_start, GOMP_taskgroup_end,
7861         GOMP_parallel_sections): New prototypes.
7862         * fortran.c (omp_is_initial_device): Add ialias_redirect.
7863         (omp_is_initial_device_): New function.
7864         (ULP, STR1, STR2, ialias_redirect): Removed.
7865         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
7866         omp_set_default_device_8_, omp_get_default_device_,
7867         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
7868         functions.
7869         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
7870         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
7871         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
7872         @@GOMP_4.0.
7873         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
7874         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
7875         omp_set_default_device, omp_set_default_device_,
7876         omp_set_default_device_8_, omp_get_default_device,
7877         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
7878         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
7879         omp_get_team_num_): Export @@OMP_4.0.
7880         * team.c (struct gomp_thread_start_data): Add place field.
7881         (gomp_thread_start): Clear thr->thread_pool and
7882         thr->task before returning.  Use gomp_team_barrier_wait_final
7883         instead of gomp_team_barrier_wait.  Initialize thr->place.
7884         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
7885         team_cancelled and task_queued_count fields.
7886         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
7887         before calling pthread_exit.
7888         (gomp_free_thread): No longer static.  Use
7889         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
7890         (gomp_team_start): Add flags argument.  Set
7891         thr->thread_pool->threads_busy to nthreads immediately after creating
7892         new pool.  Use gomp_managed_threads_lock instead of
7893         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
7894         (gomp_team_end): Use gomp_managed_threads_lock instead of
7895         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
7896         of gomp_team_barrier_wait.  If team->team_cancelled, call
7897         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
7898         rather than thr->ts.work_share.
7899         (initialize_team): Don't call gomp_sem_init here.
7900         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
7901         caller.
7902         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
7903         * env.c (gomp_global_icv): Add default_device_var, target_data and
7904         bind_var initializers.
7905         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
7906         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
7907         gomp_places_list_len): New variables.
7908         (parse_bind_var, parse_one_place, parse_places_var): New functions.
7909         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
7910         sized places.
7911         (gomp_cancel_var): New global variable.
7912         (parse_int): New function.
7913         (handle_omp_display_env): New function.
7914         (initialize_env): Use it.  Initialize default_device_var.
7915         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
7916         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
7917         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
7918         been successfully parsed (and call gomp_init_affinity in that case).
7919         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
7920         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
7921         omp_get_team_num, omp_is_initial_device): New functions.
7922         * libgomp.h: Include stdlib.h.
7923         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
7924         Define.
7925         (struct target_mem_desc): Forward declare.
7926         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
7927         and thread_limit_var fields.
7928         (gomp_get_num_devices): New prototype.
7929         (gomp_cancel_var): New extern decl.
7930         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
7931         team_cancelled and task_queued_count fields.  Add comments about
7932         task_{,queued_,running_}count.
7933         (gomp_cancel_kind): New enum.
7934         (gomp_work_share_end_cancel): New prototype.
7935         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
7936         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
7937         and depend fields.
7938         (struct gomp_taskgroup): New type.
7939         (struct gomp_task_depend_entry,
7940         struct gomp_dependers_vec): New types.
7941         (gomp_finish_task): Free depend_hash if non-NULL.
7942         (struct gomp_team_state): Add place_partition_off
7943         and place_partition_len fields.
7944         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
7945         gomp_places_list_len): New extern decls.
7946         (struct gomp_thread): Add place field.
7947         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
7948         (gomp_init_thread_affinity): Add place argument.
7949         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
7950         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
7951         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
7952         gomp_affinity_init_level, gomp_affinity_print_place): New
7953         prototypes.
7954         (gomp_team_start): Add flags argument.
7955         (gomp_thread_limit_var, gomp_remaining_threads_count,
7956         gomp_remaining_threads_lock): Remove.
7957         (gomp_managed_threads_lock): New variable.
7958         (struct gomp_thread_pool): Add threads_busy field.
7959         (gomp_free_thread): New prototype.
7960         * task.c: Include hashtab.h.
7961         (hash_entry_type): New typedef.
7962         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
7963         (gomp_init_task): Clear dependers, depend_hash, depend_count,
7964         copy_ctors_done and taskgroup fields.
7965         (GOMP_task): Add depend argument, handle depend clauses.  If
7966         gomp_team_barrier_cancelled or if it's taskgroup has been
7967         cancelled, don't queue or start new tasks.  Set copy_ctors_done
7968         field if needed.  Initialize taskgroup field.  If copy_ctors_done
7969         and already cancelled, don't discard the task.  If taskgroup is
7970         non-NULL, enqueue the task into taskgroup queue.  Increment
7971         num_children field in taskgroup.  Increment task_queued_count.
7972         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
7973         gomp_task_run_post_remove_taskgroup): New inline functions.
7974         (gomp_task_run_post_handle_depend_hash,
7975         gomp_task_run_post_handle_dependers,
7976         gomp_task_run_post_handle_depend): New functions.
7977         (GOMP_taskwait): Use them.  If more than one new tasks
7978         have been queued, wake other threads if needed.
7979         (gomp_barrier_handle_tasks): Likewise.  If
7980         gomp_team_barrier_cancelled, don't start any new tasks, just free
7981         all tasks.
7982         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
7983         * omp_lib.f90.in
7984         (omp_proc_bind_kind, omp_proc_bind_false,
7985         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
7986         omp_proc_bind_spread): New params.
7987         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
7988         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
7989         omp_get_team_num, omp_is_initial_device): New interfaces.
7990         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
7991         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
7992         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
7993         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
7994         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
7995         useless use omp_lib_kinds.
7996         * omp.h.in (omp_proc_bind_t): New typedef.
7997         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
7998         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
7999         omp_get_team_num, omp_is_initial_device): New prototypes.
8000         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
8001         through to gomp_team_start.
8002         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
8003         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
8004         Adjust gomp_parallel_loop_start callers.
8005         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
8006         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
8007         GOMP_loop_end_cancel): New functions.
8008         (GOMP_parallel_end): Add ialias_redirect.
8009         * hashtab.h: New file.
8010         * libgomp.texi (Environment Variables): Minor cleanup,
8011         update section refs to OpenMP 4.0rc2.
8012         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
8013         environment variables.
8014         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
8015         team->work_shares_to_free to thr->ts.work_share before calling
8016         free_work_share.
8017         (gomp_work_share_end_cancel): New function.
8018         * config/linux/proc.c: Include errno.h.
8019         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
8020         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
8021         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
8022         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
8023         gomp_cpuset_size is sizeof (cpu_set_t).
8024         (gomp_init_num_threads): Initialize gomp_cpuset_size,
8025         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
8026         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
8027         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
8028         contain any logical CPUs.
8029         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
8030         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
8031         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
8032         pthread_getaffinity_np.  Check gomp_places_list instead of
8033         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
8034         * config/linux/bar.c (gomp_barrier_wait_end,
8035         gomp_barrier_wait_last): Use BAR_* defines.
8036         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
8037         from state where needed.  Set work_share_cancelled to 0 on last
8038         thread.
8039         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
8040         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
8041         functions.
8042         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
8043         Add cpusetsize argument.
8044         (gomp_cpuset_size, gomp_cpusetp): Declare.
8045         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
8046         (affinity_counter): Remove.
8047         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
8048         if CPU_ALLOC_SIZE isn't defined.
8049         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
8050         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
8051         bind current thread to the first place.
8052         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
8053         pthread_setaffinity_np to gomp_places_list[place].
8054         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
8055         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
8056         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
8057         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
8058         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
8059         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
8060         (gomp_barrier_t): Add awaited_final field.
8061         (gomp_barrier_init): Initialize awaited_final field.
8062         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
8063         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
8064         prototypes.
8065         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
8066         defines.
8067         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
8068         gomp_team_barrier_cancelled): New inline functions.
8069         (gomp_barrier_last_thread,
8070         gomp_team_barrier_set_task_pending,
8071         gomp_team_barrier_clear_task_pending,
8072         gomp_team_barrier_set_waiting_for_tasks,
8073         gomp_team_barrier_waiting_for_tasks,
8074         gomp_team_barrier_done): Use BAR_* defines.
8075         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
8076         (gomp_barrier_wait_end): Use BAR_* defines.
8077         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
8078         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
8079         Use BAR_* defines.
8080         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
8081         gomp_team_barrier_cancel): New functions.
8082         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
8083         argument.
8084         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
8085         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
8086         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
8087         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
8088         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
8089         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
8090         (gomp_barrier_t): Add cancellable field.
8091         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
8092         gomp_team_barrier_cancel): New prototypes.
8093         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
8094         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
8095         gomp_team_barrier_cancelled): New inline functions.
8096         (gomp_barrier_wait_start, gomp_barrier_last_thread,
8097         gomp_team_barrier_set_task_pending,
8098         gomp_team_barrier_clear_task_pending,
8099         gomp_team_barrier_set_waiting_for_tasks,
8100         gomp_team_barrier_waiting_for_tasks,
8101         gomp_team_barrier_done): Use BAR_* defines.
8102         * barrier.c (GOMP_barrier_cancel): New function.
8103         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
8104         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
8105         omp_proc_bind_spread): New params.
8106         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
8107         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
8108         omp_get_team_num, omp_is_initial_device): New externals.
8109         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
8110         New functions.
8111         (gomp_resolve_num_threads): Adjust for thread_limit now being in
8112         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
8113         infinity.  If not nested, just return minimum of max_num_threads
8114         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
8115         to the returned value.  Otherwise, don't update atomically
8116         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
8117         (GOMP_parallel_end): Adjust for thread_limit now being in
8118         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
8119         infinity.  Adjust threads_busy in the pool rather than
8120         gomp_remaining_threads_count.  Remember team->nthreads and call
8121         gomp_team_end before adjusting threads_busy, if not nested
8122         afterwards, just set it to 1 non-atomically.  Add ialias.
8123         (GOMP_parallel_start): Adjust gomp_team_start caller.
8124         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
8125         * testsuite/libgomp.c/affinity-1.c: New test.
8126         * testsuite/libgomp.c/atomic-15.c: New test.
8127         * testsuite/libgomp.c/atomic-16.c: New test.
8128         * testsuite/libgomp.c/atomic-17.c: New test.
8129         * testsuite/libgomp.c/cancel-for-1.c: New test.
8130         * testsuite/libgomp.c/cancel-for-2.c: New test.
8131         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
8132         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
8133         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
8134         * testsuite/libgomp.c/cancel-sections-1.c: New test.
8135         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
8136         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
8137         * testsuite/libgomp.c/depend-1.c: New test.
8138         * testsuite/libgomp.c/depend-2.c: New test.
8139         * testsuite/libgomp.c/depend-3.c: New test.
8140         * testsuite/libgomp.c/depend-4.c: New test.
8141         * testsuite/libgomp.c/for-1.c: New test.
8142         * testsuite/libgomp.c/for-1.h: New file.
8143         * testsuite/libgomp.c/for-2.c: New test.
8144         * testsuite/libgomp.c/for-2.h: New file.
8145         * testsuite/libgomp.c/for-3.c: New test.
8146         * testsuite/libgomp.c/pr58392.c: New test.
8147         * testsuite/libgomp.c/simd-1.c: New test.
8148         * testsuite/libgomp.c/simd-2.c: New test.
8149         * testsuite/libgomp.c/simd-3.c: New test.
8150         * testsuite/libgomp.c/simd-4.c: New test.
8151         * testsuite/libgomp.c/simd-5.c: New test.
8152         * testsuite/libgomp.c/simd-6.c: New test.
8153         * testsuite/libgomp.c/target-1.c: New test.
8154         * testsuite/libgomp.c/target-2.c: New test.
8155         * testsuite/libgomp.c/target-3.c: New test.
8156         * testsuite/libgomp.c/target-4.c: New test.
8157         * testsuite/libgomp.c/target-5.c: New test.
8158         * testsuite/libgomp.c/target-6.c: New test.
8159         * testsuite/libgomp.c/target-7.c: New test.
8160         * testsuite/libgomp.c/taskgroup-1.c: New test.
8161         * testsuite/libgomp.c/thread-limit-1.c: New test.
8162         * testsuite/libgomp.c/thread-limit-2.c: New test.
8163         * testsuite/libgomp.c/thread-limit-3.c: New test.
8164         * testsuite/libgomp.c/udr-1.c: New test.
8165         * testsuite/libgomp.c/udr-2.c: New test.
8166         * testsuite/libgomp.c/udr-3.c: New test.
8167         * testsuite/libgomp.c++/affinity-1.C: New test.
8168         * testsuite/libgomp.c++/atomic-10.C: New test.
8169         * testsuite/libgomp.c++/atomic-11.C: New test.
8170         * testsuite/libgomp.c++/atomic-12.C: New test.
8171         * testsuite/libgomp.c++/atomic-13.C: New test.
8172         * testsuite/libgomp.c++/atomic-14.C: New test.
8173         * testsuite/libgomp.c++/atomic-15.C: New test.
8174         * testsuite/libgomp.c++/cancel-for-1.C: New test.
8175         * testsuite/libgomp.c++/cancel-for-2.C: New test.
8176         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
8177         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
8178         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
8179         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
8180         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
8181         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
8182         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
8183         * testsuite/libgomp.c++/cancel-test.h: New file.
8184         * testsuite/libgomp.c++/for-9.C: New test.
8185         * testsuite/libgomp.c++/for-10.C: New test.
8186         * testsuite/libgomp.c++/for-11.C: New test.
8187         * testsuite/libgomp.c++/simd-1.C: New test.
8188         * testsuite/libgomp.c++/simd-2.C: New test.
8189         * testsuite/libgomp.c++/simd-3.C: New test.
8190         * testsuite/libgomp.c++/simd-4.C: New test.
8191         * testsuite/libgomp.c++/simd-5.C: New test.
8192         * testsuite/libgomp.c++/simd-6.C: New test.
8193         * testsuite/libgomp.c++/simd-7.C: New test.
8194         * testsuite/libgomp.c++/simd-8.C: New test.
8195         * testsuite/libgomp.c++/target-1.C: New test.
8196         * testsuite/libgomp.c++/target-2.C: New test.
8197         * testsuite/libgomp.c++/target-2-aux.cc: New file.
8198         * testsuite/libgomp.c++/target-3.C: New test.
8199         * testsuite/libgomp.c++/taskgroup-1.C: New test.
8200         * testsuite/libgomp.c++/udr-1.C: New test.
8201         * testsuite/libgomp.c++/udr-2.C: New test.
8202         * testsuite/libgomp.c++/udr-3.C: New test.
8203         * testsuite/libgomp.c++/udr-4.C: New test.
8204         * testsuite/libgomp.c++/udr-5.C: New test.
8205         * testsuite/libgomp.c++/udr-6.C: New test.
8206         * testsuite/libgomp.c++/udr-7.C: New test.
8207         * testsuite/libgomp.c++/udr-8.C: New test.
8208         * testsuite/libgomp.c++/udr-9.C: New test.
8210 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
8212         PR testsuite/57605
8213         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
8214         ALWAYS_CFLAGS.
8216 2013-09-20  Alan Modra  <amodra@gmail.com>
8218         * configure: Regenerate.
8220 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
8222         * testsuite/libgomp.c/sections-2.c: New test.
8224 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8226         * testsuite/libgomp.fortran/strassen.f90:
8227         Add dg-skip-if aarch64_tiny.
8229 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
8230             Cesar Philippidis  <cesar@codesourcery.com>
8232         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
8233         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
8234         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
8235         * testsuite/libgomp.fortran/fortran.exp: Likewise.
8236         * testsuite/libgomp.graphite/graphite.exp: Likewise.
8237         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
8238         Use dg-runtest rather than gfortran-dg-runtest.
8240 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
8242         * testsuite/libgomp.c/icv-2.c: Extend current handling of
8243         Linux-based x86 systems to cover all GNU systems.
8244         * testsuite/libgomp.c/lock-3.c: Likewise.
8245         * testsuite/libgomp.c/pr48591.c: Likewise.
8247 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
8249         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
8250         GNU/Hurd, as done for Linux-based systems.
8252         * config/posix/ptrlock.h: Fix comment.
8254 2013-05-27  Tobias Burnus  <burnus@net-b.de>
8256         PR fortran/57423
8257         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
8258         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
8259         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
8260         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
8261         omp_destroy_nest_lock): Correct arguments to match the one in
8262         the OpenMP spec.
8263         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
8264         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
8265         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
8266         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
8268 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
8270         * testsuite/libgomp.c/loop-13.c: New test.
8271         * testsuite/libgomp.c/loop-14.c: New test.
8272         * testsuite/libgomp.c/loop-15.c: New test.
8273         * testsuite/libgomp.c++/loop-13.C: New test.
8274         * testsuite/libgomp.c++/loop-14.C: New test.
8275         * testsuite/libgomp.c++/loop-15.C: New test.
8277 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
8279         PR middle-end/56217
8280         * testsuite/libgomp.c++/pr56217.C: New test.
8282 2013-02-01  Alan Modra  <amodra@gmail.com>
8284         * task.c (GOMP_task, GOMP_taskwait): Comment.
8286 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
8287             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
8289         PR libgomp/55561
8290         * config/linux/wait.h (do_spin): Use atomic load for addr.
8291         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
8292         for intptr and ptrlock.
8293         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
8294         for ptrlock.
8296 2013-01-22  Alan Modra  <amodra@gmail.com>
8298         PR libgomp/51376
8299         PR libgomp/56073
8300         * task.c (GOMP_task): Revert 2011-12-09 change.
8301         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
8302         barrier to read task->children..
8303         (gomp_barrier_handle_tasks): ..and matching atomic store with
8304         release barrier here when setting parent->children to NULL.
8306 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
8307             Tobias Burnus  <burnus@net-b.de>
8309         PR driver/55884
8310         * testsuite/libgomp.fortran/fortran.exp: Use
8311         -fintrinsic-modules-path= instead of
8312         -fintrinsic-modules-path.
8314 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
8316         Update copyright years.
8318 2012-12-19  Tobias Burnus  <burnus@net-b.de>
8320         * testsuite/libgomp.fortran/fortran.exp: Set
8321         -fintrinsic-modules-path.
8323 2012-12-19  Tobias Burnus  <burnus@net-b.de>
8325         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
8326         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
8328 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
8330         PR libgomp/55411
8331         * team.c (gomp_free_thread): Decrease gomp_managed_threads
8332         if pool had any threads_used.
8334 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
8336         * testsuite/libgomp.c++/pr24455.C: Use
8337         -Wl,-undefined,dynamic_lookup on darwin.
8339 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
8341         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
8343 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
8345         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
8347 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
8348             Jim MacArthur  <jim.macarthur@arm.com>
8349             Marcus Shawcroft  <marcus.shawcroft@arm.com>
8350             Nigel Stephens  <nigel.stephens@arm.com>
8351             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8352             Richard Earnshaw  <rearnsha@arm.com>
8353             Sofiane Naci  <sofiane.naci@arm.com>
8354             Stephen Thomas  <stephen.thomas@arm.com>
8355             Tejas Belagod  <tejas.belagod@arm.com>
8356             Yufeng Zhang  <yufeng.zhang@arm.com>
8358         * configure.tgt: Add AArch64.
8360 2012-10-04  Jason Merrill  <jason@redhat.com>
8362         * testsuite/libgomp.c++/tls-init1.C: New.
8364 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
8366         * configure: Regenerated.
8368 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
8370         * config/linux/mips/futex.h (sys_futex0): Change to static
8371         function with noinline, nomips16 attributes under MIPS16. Adjust
8372         asm statement to place 'li v0,SYS_futex' immediately before
8373         syscall insn.
8375 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
8377         * libgomp.texi (Library Index): Renamed from "Index" to prevent
8378         conflict with index.html on case-insensitive file systems.
8380 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
8382         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
8383         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
8385 2012-07-02  Richard Guenther  <rguenther@suse.de>
8386             Michael Matz  <matz@suse.de>
8387             Tobias Grosser <tobias@grosser.es>
8388             Sebastian Pop <sebpop@gmail.com>
8390         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
8391         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
8392         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
8393         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
8395 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
8397         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
8399 2012-06-22  Richard Guenther  <rguenther@suse.de>
8401         Merge from graphite branch
8402         2012-01-13  Tobias Grosser  <tobias@grosser.es>
8404         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
8405         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
8407 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
8409         PR middle-end/53580
8410         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
8411         use GOMP_barrier () call instead.
8412         * testsuite/libgomp.c/pr26943-3.c: Likewise.
8413         * testsuite/libgomp.c/pr26943-4.c: Likewise.
8414         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
8415         call GOMP_barrier instead.
8416         * testsuite/libgomp.fortran/vla5.f90: Likewise.
8418 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
8420         PR libgomp/52993
8421         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
8422         argument to memset call.
8424 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
8426         * configure: Regenerated.
8428 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8430         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
8432 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
8434         PR bootstrap/52812
8435         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
8437 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
8439         PR middle-end/52547
8440         * testsuite/libgomp.c/pr52547.c: New test.
8442 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8444         * testsuite/lib/libgomp.exp: load fortran-modules.exp
8446 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8448         * configure.tgt (mips-sgi-irix6*): Remove.
8450 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8452         * configure.tgt (alpha*-dec-osf*): Remove.
8454         * config/osf/sem.h: Remove.
8455         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
8457 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
8459         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
8461 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8463         PR libstdc++/52188
8464         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
8465         Remove ENABLE_SYMVERS_SOL2.
8466         * configure: Regenerate.
8467         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
8468         (PREPROCESS): New variable.
8469         (libgomp.ver): New target.
8470         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
8471         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
8472         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
8473         Use libgomp.ver.
8474         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
8475         * Makefile.in: Regenerate.
8477 2012-02-14  Walter Lee  <walt@tilera.com>
8479         * configure.tgt: Handle tilegx and tilepro.
8480         * config/linux/tile/futex.h: New file.
8482 2012-02-08  Richard Guenther  <rguenther@suse.de>
8484         PR tree-optimization/46886
8485         * testsuite/libgomp.c/pr46886.c: New testcase.
8487 2012-01-25  Matthias Klose  <doko@ubuntu.com>
8489         * config/linux/arm: Remove empty directory.
8490         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
8492 2011-12-09  Alan Modra  <amodra@gmail.com>
8494         PR libgomp/51376
8495         * task.c (GOMP_taskwait): Don't access task->children outside of
8496         task_lock mutex region.
8497         (GOMP_task): Likewise.
8499 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
8501         PR libgomp/51132
8502         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
8503         to file scope.
8504         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
8505         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
8506         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
8507         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
8508         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
8510 2011-12-02  Alan Modra  <amodra@gmail.com>
8512         * config/linux/affinity.c: Use atomic rather than sync builtin.
8513         * config/linux/lock.c: Likewise.
8514         * config/linux/ptrlock.h: Likewise.
8515         * config/linux/ptrlock.c: Likewise.
8516         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
8517         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
8518         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
8519         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
8520         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
8521         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
8522         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
8523         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
8524         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
8525         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
8527 2011-11-30  Alan Modra  <amodra@gmail.com>
8529         PR libgomp/51298
8530         * config/linux/bar.h: Use atomic rather than sync builtins.
8531         * config/linux/bar.c: Likewise.  Add missing acquire
8532         synchronisation on generation field.
8533         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
8534         double unlock.
8536 2011-11-30  Alan Modra  <amodra@gmail.com>
8538         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
8539         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
8540         * config/linux/mutex.h: Use atomic rather than sync builtins.
8541         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
8542         * config/linux/omp-lock.h: Comment fix.
8543         * config/linux/arm/mutex.h: Delete.
8544         * config/linux/powerpc/mutex.h: Delete.
8545         * config/linux/ia64/mutex.h: Delete.
8546         * config/linux/mips/mutex.h: Delete.
8548 2011-11-30  Alan Modra  <amodra@gmail.com>
8550         PR libgomp/51249
8551         * config/linux/sem.h: Rewrite.
8552         * config/linux/sem.c: Rewrite.
8554 2011-11-28  Richard Henderson  <rth@redhat.com>
8556         * libgomp.h (enum memmodel): New.
8558 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
8560         * configure: Regenerate.
8562 2011-10-10  Matthias Klose  <doko@ubuntu.com>
8564         * config/posix95: Remove empty directory.
8566 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
8568         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
8570 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
8572         PR fortran/49792
8573         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
8574         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
8576 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8578         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
8580 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8582         PR libgomp/49965
8583         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
8585 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
8587         * config/linux/proc.h: New.
8588         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
8589         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
8590         (gomp_init_num_threads): Update call to cpuset_popcount.
8591         (get_num_procs): Ditto.
8592         * config/linux/affinity.c (gomp_init_affinity): Call
8593         gomp_cpuset_popcount.
8595 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
8597         PR fortran/42041
8598         PR fortran/46752
8599         * omp.h.in (omp_in_final): New prototype.
8600         * omp_lib.f90.in (omp_in_final): New interface.
8601         (omp_integer_kind, omp_logical_kind): Remove
8602         and replace all its uses in the module with 4.
8603         (openmp_version): Change to 201107.
8604         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
8605         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
8606         kind for the parameters.
8607         (omp_in_final): New external.
8608         (openmp_version): Change to 201107.
8609         * task.c (omp_in_final): New function.
8610         (gomp_init_task): Initialize final_task.
8611         (GOMP_task): Remove unused attribute from flags.  Handle final
8612         tasks.
8613         (GOMP_taskyield): New function.
8614         (omp_in_final): Return true if if (false) or final (true) task
8615         or descendant of final (true).
8616         * fortran.c (omp_in_final_): New function.
8617         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
8618         (GOMP_3.0): Export GOMP_taskyield.
8619         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
8620         variables.
8621         (parse_unsigned_long_list): New function.
8622         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
8623         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
8624         even if parse_affinity returned false.
8625         * config/linux/affinity.c (gomp_init_affinity): Handle
8626         gomp_cpu_affinity_len == 0.
8627         * libgomp_g.h (GOMP_taskyield): New prototype.
8628         * libgomp.h (struct gomp_task): Add final_task field.
8629         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
8630         * team.c (gomp_team_start): Override new task's nthreads_var icv
8631         if list form OMP_NUM_THREADS has been used and it has value for
8632         the new nesting level.
8634         * testsuite/libgomp.c/atomic-11.c: New test.
8635         * testsuite/libgomp.c/atomic-12.c: New test.
8636         * testsuite/libgomp.c/atomic-13.c: New test.
8637         * testsuite/libgomp.c/atomic-14.c: New test.
8638         * testsuite/libgomp.c/reduction-6.c: New test.
8639         * testsuite/libgomp.c/task-5.c: New test.
8640         * testsuite/libgomp.c++/atomic-2.C: New test.
8641         * testsuite/libgomp.c++/atomic-3.C: New test.
8642         * testsuite/libgomp.c++/atomic-4.C: New test.
8643         * testsuite/libgomp.c++/atomic-5.C: New test.
8644         * testsuite/libgomp.c++/atomic-6.C: New test.
8645         * testsuite/libgomp.c++/atomic-7.C: New test.
8646         * testsuite/libgomp.c++/atomic-8.C: New test.
8647         * testsuite/libgomp.c++/atomic-9.C: New test.
8648         * testsuite/libgomp.c++/task-8.C: New test.
8649         * testsuite/libgomp.c++/reduction-4.C: New test.
8650         * testsuite/libgomp.fortran/allocatable7.f90: New test.
8651         * testsuite/libgomp.fortran/allocatable8.f90: New test.
8652         * testsuite/libgomp.fortran/crayptr3.f90: New test.
8653         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
8654         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
8655         * testsuite/libgomp.fortran/pointer1.f90: New test.
8656         * testsuite/libgomp.fortran/pointer2.f90: New test.
8657         * testsuite/libgomp.fortran/task4.f90: New test.
8659 2011-08-02  Tobias Burnus  <burnus@net-b.de>
8661         * libgomp.texi: Update OpenMP spec references to 3.1.
8662         (omp_in_final,OMP_PROC_BIND): New sections.
8663         (OMP_NUM_THREADS): Document that the value can be now a list.
8664         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
8666 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
8668         * config/linux/x86/futex.h: Check __x86_64__ instead of
8669         __LP64__.
8671 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
8673         PR middle-end/49897
8674         PR middle-end/49898
8675         * testsuite/libgomp.c/pr49897-1.c: New test.
8676         * testsuite/libgomp.c/pr49897-2.c: New test.
8677         * testsuite/libgomp.c/pr49898-1.c: New test.
8678         * testsuite/libgomp.c/pr49898-2.c: New test.
8680 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
8682         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
8683         for ia32 instead of ilp32.
8685         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
8686         * testsuite/libgomp.c/atomic-6.c: Likewise.
8688 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
8690         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
8691         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
8693 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8695         PR libgomp/45351
8696         * config/osf/sem.h: New file.
8697         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
8699 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8701         PR target/49541
8702         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
8703         ldflags.
8705 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
8707         * config/linux/wait.h (do_spin): New inline, largely copied
8708         from do_wait, just don't do futex_wait here, instead return true if
8709         it should be done.
8710         (do_wait): Implement using do_spin.
8711         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
8712         to prototype.
8713         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
8714         __sync_bool_compare_and_swap, pass the oldval to
8715         gomp_mutex_lock_slow.
8716         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
8717         If all mutex contenders are just spinning and not sleeping, don't
8718         change state to 2 unnecessarily.  Optimize the loop when state has
8719         already become 2 to use just one atomic operation per loop instead
8720         of two.
8721         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
8722         to prototype.
8723         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
8724         __sync_bool_compare_and_swap, pass the oldval to
8725         gomp_mutex_lock_slow.
8727 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8729         PR libgomp/49490
8730         * iter.c (gomp_iter_static_next): For chunk size 0
8731         only use n ceil/ nthreads size for the first
8732         n % nthreads threads in the team instead of
8733         all threads except for the last few ones which
8734         get less work or none at all.
8735         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
8736         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
8737         chunk argument, set run_sched_modifier to 0 for static
8738         resp. 1 for other kinds.  If chunk argument is 0
8739         and not static, set value to 1.
8741 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
8743         PR c++/49043
8744         * testsuite/libgomp.c++/pr49043.C: New test.
8746         PR c++/48869
8747         * testsuite/libgomp.c++/pr48869.C: New test.
8749 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
8751         PR fortran/48894
8752         * fortran.c: Include limits.h.
8753         (TO_INT): Define.
8754         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
8755         *set.
8756         (omp_set_num_threads_8_, omp_set_schedule_8_,
8757         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
8758         omp_get_team_size_8_): Use TO_INT macro.
8759         * testsuite/libgomp.fortran/pr48894.f90: New test.
8761 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
8763         PR middle-end/48591
8764         * testsuite/libgomp.c/pr48591.c: New test.
8766 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8768         PR bootstrap/48135
8769         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
8770         * configure: Regenerate.
8772 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
8774         PR fortran/47886
8775         * testsuite/libgomp.fortran/task3.f90: New test.
8777 2011-02-24  Tobias Burnus  <burnus@net-b.de>
8779         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
8781 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
8783         PR libgomp/47854
8784         * libgomp.texi (omp_get_wtime): Don't say time in the past
8785         must be Unix Epoch.
8787 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
8789         PR libgomp/47804
8790         * testsuite/libgomp.fortran/fortran.exp: Check for both
8791         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
8792         but $blddir != "", still append ${blddir}/${lang_library_path}
8793         to ld_library_path.
8795 2011-02-16  Tobias Burnus  <burnus@net-b.de>
8797         PR libgomp/47758
8798         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
8799         of libquadmath.a before adding its libpath to ldflags.
8801 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
8803         PR libgomp/47731
8804         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
8805         to FUTEX_WAIT futex syscall.
8806         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
8808 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8810         * configure: Regenerate.
8812 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
8814         PR libstdc++/36104
8815         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
8817 2011-01-16  Gerald Pfeifer
8819         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
8821 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
8823         PR fortran/46874
8824         * libgomp.fortran/allocatable6.f90: New test.
8826 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8828         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
8829         * configure: Regenerate.
8831 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
8833         PR target/40125
8834         PR lto/46695
8835         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
8836         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
8837         * aclocal.m4: Regenerate.
8838         * configure: Regenerate.
8839         * Makefile.in: Regenerate.
8840         * testsuite/Makefile.in: Regenerate.
8842 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
8844         PR fortran/46753
8845         * libgomp.fortran/pr46753.f90: New test.
8847         PR libgomp/43706
8848         * env.c (initialize_env): Default to spin count 300000
8849         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
8850         is specified.
8852         PR libgomp/45240
8853         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
8854         at the end if sync builtins aren't supported.
8856 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8858         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
8860 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8862         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
8864 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
8866         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
8868 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8869             Tobias Burnus  <burnus@net-b.de>
8871         PR fortran/32049
8872         * configure.ac:
8873         * configure: Regenerate.
8875 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8877         * config/linux/futex.h: New.
8878         * config/linux/arm/mutex.h: New.
8879         * configure.tgt (arm*-*-linux*): Add config path.
8881 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
8883         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
8885 2010-09-23  Tobias Burnus  <burnus@net-b.de>
8887         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
8888         Change Fortran datatype to LOGICAL.
8889         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
8890         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
8892 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8894         * configure: Regenerate.
8896 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
8898         * libgomp.texi: Add function keyword to a couple of Fortran
8899         interfaces, use integer instead of int for Fortran.
8901 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
8903         * libgomp.texi: Fix spelling and pasto problems throughout.
8904         Adjust prototypes to match code.
8906 2010-07-24  Tobias Burnus  <burnus@net-b.de>
8908         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
8909         silence -fwhole-file warning.
8911 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8913         * configure.tgt (*-*-solaris2.[56]*): Removed.
8915 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8917         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
8918         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
8919         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
8920         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
8921         targetting solaris2*.
8922         * configure: Regenerate.
8923         * config.h.in: Regenerate.
8925         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
8926         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
8927         Add libgomp_version_dep.
8928         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
8929         versioning.
8930         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
8931         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
8932         * Makefile.in: Regenerate.
8934         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
8935         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
8936         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
8937         to common block, protected by
8938         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
8940 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
8942         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
8944 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
8946         PR bootstrap/43170
8947         * configure: Regenerate.
8949 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8951         PR other/43620
8952         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
8953         * configure: Regenerate.
8954         * Makefile.in: Regenerate.
8955         * testsuite/Makefile.in: Regenerate.
8957 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
8959         PR c/43893
8960         * testsuite/libgomp.c/pr43893.c: New test.
8961         * testsuite/libgomp.c++/pr43893.C: New test.
8963 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
8965         PR middle-end/43570
8966         * testsuite/libgomp.fortran/vla8.f90: New test.
8968 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
8970         PR libgomp/43706
8971         * config/linux/affinity.c (gomp_init_affinity): Decrease
8972         gomp_available_cpus if affinity mask confines the process to fewer
8973         CPUs.
8974         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
8975         non-NULL, just return gomp_available_cpus.
8977         PR libgomp/43569
8978         * sections.c (gomp_sections_init): Initialize ws->mode.
8980 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8982         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
8983         not unused bar variable.
8984         * configure: Regenerate.
8986 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8988         * Makefile.in: Regenerate.
8989         * aclocal.m4: Regenerate.
8990         * testsuite/Makefile.in: Regenerate.
8992 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
8994         PR libgomp/42942
8995         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
8996         (initialize_env): Adjust callers.
8997         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
8998         when the argument is 0.
9000         * testsuite/libgomp.c/pr42942.c: New test.
9002 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
9004         PR middle-end/42644
9005         PR middle-end/42130
9006         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
9007         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
9009 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9011         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
9012         * testsuite/libgomp.c++/task-6.C: Likewise.
9014 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
9016         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
9018 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
9020         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
9021         * configure: Regenerate.
9023 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
9025         PR fortran/42866
9026         * testsuite/libgomp.fortran/allocatable5.f90: New test.
9028 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
9030         * configure.ac: Test for executability of GFORTRAN.
9031         * configure: Regenerate.
9033 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9035         * configure: Regenerate.
9037 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
9039         PR libgomp/42602
9040         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
9042 2010-01-03  Richard Guenther  <rguenther@suse.de>
9044         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
9046 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
9048         * testsuite/libgomp.graphite/pr4118.c: New.
9050 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9052         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
9053         for darwin, protect the test with require-effective-target tls_runtime.
9054         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
9056 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9058         PR target/41605
9059         * testsuite/lib/libgomp.exp: Provide -B options to allow for
9060         link spec %s substitutions for static libraries.
9062 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
9064         PR testsuite/42135
9065         * libgomp.graphite/force-parallel-2.c: Reduce array size.
9067 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9069         * Makefile.in: Regenerate.
9070         * configure: Regenerate.
9071         * testsuite/Makefile.in: Regenerate.
9073 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
9075         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
9076         settings for LC_ALL and LANG.
9078 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
9080         PR fortran/42162
9081         * testsuite/libgomp.fortran/pr42162.f90: New test.
9083 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
9085         PR middle-end/42029
9086         * testsuite/libgomp.c/pr42029.c: New test.
9088 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
9090         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
9091         *s.  Accept ld version without text in ()s.
9092         * configure: Regenerated.
9094 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
9096         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
9098 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9100         PR libgomp/41418
9101         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
9102         or a hyphen (happens with fortran language disabled).
9103         * configure: Regenerate.
9105 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9107         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
9108         use sed script portable to Solaris /bin/sed for extracting ld
9109         version.
9110         * configure: Regenerate.
9112 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
9114         * testsuite/libgomp.graphite/bounds.c: New test.
9116 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9118         * Makefile.am (libgomp_la_LINK): New.
9119         * Makefile.in: Regenerate.
9121 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9123         * configure.ac (AC_PREREQ): Bump to 2.64.
9125 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9127         * Makefile.am (install-html, install-pdf): Remove.
9128         * Makefile.in: Regenerate.
9130         * Makefile.in: Regenerate.
9131         * aclocal.m4: Regenerate.
9132         * config.h.in: Regenerate.
9133         * configure: Regenerate.
9134         * testsuite/Makefile.in: Regenerate.
9136 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9138         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
9139         * Makefile.in: Regenerate.
9141 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
9143         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
9144         * Makefile.in: Regenerate.
9146 2009-08-19  Tobias Burnus  <burnus@net-b.de>
9148         PR fortran/41102
9149         omp_lib.h.in: Fix -std=f95 errors.
9151 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
9153         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
9154         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
9155         * testsuite/libgomp.graphite/graphite.exp: New.
9157 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
9159         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
9160         only build.
9162 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
9164         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
9165         needed memory barrier semantics.
9166         * config/linux/mips/mutex.h: New file.
9168 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9170         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
9172 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
9174         * configure: Regenerate.
9176 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
9178         PR testsuite/40699
9179         PR testsuite/40707
9180         PR testsuite/40709
9181         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
9182         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
9183         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
9185 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
9187         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
9188         options when choosing a multilib.
9190 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
9192         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
9193         ld_library_path.  Use add_path.  Add just find_libgcc_s to
9194         ld_library_path, not every libgcc multilib directory.
9195         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
9196         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
9197         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
9198         Use add_path.
9199         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
9201 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
9203         * Makefile.am (LTLDFLAGS): Define.
9204         (LINK): Define.
9205         * Makefile.in: Regenerate.
9207 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
9209         PR fortran/39718
9210         * testsuite/libgomp.fortran/fortran.exp: Don't link with
9211         libgfortranbegin, check existence of libgfortran.a instead of
9212         libgfortranbegin.a.
9214 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
9216         PR libgomp/40174
9217         * team.c (gomp_thread_start): Destroy thr->release semaphore.
9218         (gomp_free_pool_helper): Likewise.
9220 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
9221             Jakub Jelinek  <jakub@redhat.com>
9223         PR fortran/35423
9224         * testsuite/libgomp.fortran/workshare2.f90: New test.
9226 2009-04-09  Nick Clifton  <nickc@redhat.com>
9228         * iter.c: Change copyright header to refer to version 3 of the
9229         GNU General Public License with version 3.1 of the GCC Runtime
9230         Library Exception and to point readers at the COPYING3 and
9231         COPYING3.RUNTIME files and the FSF's license web page.
9232         * alloc.c: Likewise.
9233         * barrier.c: Likewise.
9234         * config/bsd/proc.c: Likewise.
9235         * config/linux/affinity.c: Likewise.
9236         * config/linux/alpha/futex.h: Likewise.
9237         * config/linux/bar.c: Likewise.
9238         * config/linux/bar.h: Likewise.
9239         * config/linux/ia64/futex.h: Likewise.
9240         * config/linux/ia64/mutex.h: Likewise.
9241         * config/linux/lock.c: Likewise.
9242         * config/linux/mips/futex.h: Likewise.
9243         * config/linux/mutex.c: Likewise.
9244         * config/linux/mutex.h: Likewise.
9245         * config/linux/powerpc/futex.h: Likewise.
9246         * config/linux/proc.c: Likewise.
9247         * config/linux/ptrlock.c: Likewise.
9248         * config/linux/ptrlock.h: Likewise.
9249         * config/linux/s390/futex.h: Likewise.
9250         * config/linux/sem.c: Likewise.
9251         * config/linux/sem.h: Likewise.
9252         * config/linux/sparc/futex.h: Likewise.
9253         * config/linux/wait.h: Likewise.
9254         * config/linux/x86/futex.h: Likewise.
9255         * config/mingw32/proc.c: Likewise.
9256         * config/mingw32/time.c: Likewise.
9257         * config/posix/affinity.c: Likewise.
9258         * config/posix/bar.c: Likewise.
9259         * config/posix/bar.h: Likewise.
9260         * config/posix/lock.c: Likewise.
9261         * config/posix/mutex.h: Likewise.
9262         * config/posix/proc.c: Likewise.
9263         * config/posix/ptrlock.h: Likewise.
9264         * config/posix/sem.c: Likewise.
9265         * config/posix/sem.h: Likewise.
9266         * config/posix/time.c: Likewise.
9267         * config/posix95/lock.c: Likewise.
9268         * critical.c: Likewise.
9269         * env.c: Likewise.
9270         * error.c: Likewise.
9271         * fortran.c: Likewise.
9272         * iter_ull.c: Likewise.
9273         * libgomp.h: Likewise.
9274         * libgomp_f.h.in: Likewise.
9275         * libgomp_g.h: Likewise.
9276         * loop.c: Likewise.
9277         * loop_ull.c: Likewise.
9278         * omp.h.in: Likewise.
9279         * omp_lib.f90.in: Likewise.
9280         * omp_lib.h.in: Likewise.
9281         * ordered.c: Likewise.
9282         * parallel.c: Likewise.
9283         * sections.c: Likewise.
9284         * single.c: Likewise.
9285         * task.c: Likewise.
9286         * team.c: Likewise.
9287         * work.c: Likewise.
9289 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
9291         * testsuite/config/default.exp: Change copyright header to refer to
9292         version 3 of the GNU General Public License and to point readers
9293         at the COPYING3 file and the FSF's license web page.
9295 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
9297         PR middle-end/39573
9298         * libgomp.c++/pr39573.C: New test.
9300 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9302         PR other/39591
9303         * testsuite/libgomp.c/pr39591-1.c: New test.
9304         * testsuite/libgomp.c/pr39591-2.c: New test.
9305         * testsuite/libgomp.c/pr39591-3.c: New test.
9307 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
9309         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
9310         * testsuite/libgomp.c/atomic-6.c: Ditto.
9312 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
9314         PR c/39495
9315         * testsuite/libgomp.c/loop-12.c: New test.
9316         * testsuite/libgomp.c/loop-11.c: New test.
9317         * testsuite/libgomp.c++/loop-11.C: New test.
9318         * testsuite/libgomp.c++/loop-12.C: New test.
9319         * testsuite/libgomp.c++/for-8.C: New test.
9321 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9323         * configure: Regenerate.
9325 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
9327         PR middle-end/39154
9328         * testsuite/libgomp.c/pr39154.c: New test.
9330 2009-01-30  Ian Lance Taylor  <iant@google.com>
9332         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
9333         libgomp_ld_is_gold.  Get gold version number.
9334         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
9335         * configure: Rebuild.
9337 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9339         * testsuite/lib/libgomp.exp: Add -B option for targets that
9340         use libgfortran.a%s in their specs.
9342 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
9344         PR libgomp/38086
9345         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
9346         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
9347         HAVE_AS_SYMVER_DIRECTIVE is not defined.
9348         * configure: Regenerated.
9349         * config.h.in: Likewise.
9351 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
9353         PR c++/38650
9354         * testsuite/libgomp.c/pr38650.c: New test.
9355         * testsuite/libgomp.c++/pr38650.C: New test.
9357 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
9359         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
9361 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
9363         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
9365 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9367         * configure: Regenerate.
9369 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
9371         PR middle-end/36802
9372         * testsuite/libgomp.c/pr36802-1.c: New test.
9373         * testsuite/libgomp.c/pr36802-2.c: New test.
9374         * testsuite/libgomp.c/pr36802-3.c: New test.
9376 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
9378         PR libgomp/38270
9379         * config/linux/powerpc/mutex.h: New.
9381 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
9383         PR c++/38257
9384         * testsuite/libgomp.c++/for-7.C: New test.
9386         PR c++/38348
9387         * testsuite/libgomp.c++/for-6.C: New test.
9389 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
9391         PR testsuite/28870
9392         * testsuite/lib/libgomp.exp: Include new timeout library files.
9393         (libgomp_target_compile): Set timeout value from new proc.
9395 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
9397         PR libgomp/37938
9398         * config/linux/ia64/mutex.h: New.
9400 2008-11-04  Tobias Burnus  <burnus@net-b.de>
9402         PR libgomp/37935
9403         * libgomp.texi (Runtime library routines, environment variables):
9404         Update for OpenMP version 3.0.
9406 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
9407             Steve Ellcey  <sje@cup.hp.com>
9409         * configure: Regenerate for new libtool.
9410         * Makefile.in: Ditto.
9411         * testsuite/Makefile.in: Ditto.
9413 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
9414             Andreas Tobler  <a.tobler@schweiz.org>
9416         * config/bsd/proc.c: New file.
9417         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
9418         * configure.ac: Check for header <sys/sysctl.h>
9419         * configure: Regenerate.
9420         * config.h.in: Likewise.
9422 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
9424         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
9426 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9428         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
9429         * Makefile.in: Regenerated.
9430         * testsuite/Makefile.in: Regenerated.
9432 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
9434         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
9435         depend on blddir if blddir exists.
9436         (libgomp_target_compile): Likewise.
9437         * testsuite/libgomp.c++/c++.exp: Likewise.
9438         * testsuite/libgomp.fortran/fortran.exp: Likewise.
9440 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9442         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
9443         Do not list GPL as Invariant Section.
9445 2008-07-28  Ilie Garbacea  <ilie@mips.com>
9446             Chao-ying Fu  <fu@mips.com>
9448         * configure.tgt: Enable futex for MIPS.
9449         * config/linux/mips/futex.h: New file.
9451 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
9453         * team.c (gomp_team_end): Free team immediately if it has
9454         just one thread.
9456 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
9458         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
9459         * testsuite/libgomp.fortran/fortran.exp: Same.
9460         * testsuite/libgomp.c/c.exp: Same.
9461         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
9462         directory to library path first.
9464 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
9466         * env.c (parse_stacksize): Add cast to avoid warning.
9467         (parse_spincount): Likewise.
9469 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
9471         * testsuite/libgomp.c/loop-10.c: New test.
9472         * libgomp.c/loop-3.c (main): Add lastprivate clause.
9473         * libgomp.c++/loop-6.C (main): Likewise.
9475         PR debug/36617
9476         * testsuite/libgomp.c/debug-1.c: New test.
9478 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
9480         * testsuite/libgomp.c/nqueens-1.c: New test.
9482         PR c++/36523
9483         * testsuite/libgomp.c++/task-7.C: New function.
9485 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9487         * configure: Regenerate.
9489 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9491         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
9492         mutex when HAVE_SYNC_BUILTINS isn't defined.
9494 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9496         * libgomp.texi (omp_test_lock): Fix typo.
9498 2008-06-12  Tobias Burnus  <burnus@net-b.de>
9500         * omp_lib.f90.in: Add "implicit none".
9502 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
9504         PR middle-end/36506
9505         * testsuite/libgomp.c/reduction-5.c: New test.
9507 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
9509         * libgomp.h (struct gomp_task): Add in_tied_task field.
9510         * task.c (gomp_init_task): Initialize it.
9511         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
9512         unconditionally.  Don't call gomp_team_barrier_wake if
9513         current task is implicit or if(0) from implicit and number of
9514         running tasks is equal to nthreads - 1.
9516         PR libgomp/36471
9517         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
9518         omp_get_team_size_8): Fix pastos.
9520         PR libgomp/36469
9521         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
9522         * configure: Regenerated.
9523         * config.h.in: Regenerated.
9524         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
9525         defined.
9527 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
9529         PR bootstrap/36452
9530         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
9531         (GOMP_loop_ull_dynamic_start): Likewise.
9532         (GOMP_loop_ull_guided_start): Likewise.
9533         (GOMP_loop_ull_ordered_static_start): Likewise.
9534         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
9535         (GOMP_loop_ull_ordered_guided_start): Likewise.
9537 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
9538             Richard Henderson  <rth@redhat.com>
9539             Ulrich Drepper  <drepper@redhat.com>
9540             Jakob Blomer  <jakob.blomer@ira.uka.de>
9542         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
9543         Substitute also OMP_*LOCK_25*.
9544         * configure: Regenerated.
9545         * config.h.in: Regenerated.
9546         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
9547         ptrlock.c and task.c.
9548         * Makefile.in: Regenerated.
9549         * testsuite/Makefile.in: Regenerated.
9550         * task.c: New file.
9551         * loop_ull.c: New file.
9552         * iter_ull.c: New file.
9553         * libgomp.h: Include ptrlock.h.
9554         (enum gomp_task_kind): New type.
9555         (struct gomp_team): Add task_lock, task_queue, task_count,
9556         task_running_count, single_count fields.  Add
9557         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
9558         Remove work_share_lock, generation_mask,
9559         oldest_live_gen, num_live_gen and init_work_shares fields, add
9560         work work_share_list_alloc, work_share_list_free and work_share_chunk
9561         fields.  Change work_shares from pointer to pointers into an array.
9562         Change ordered_release field into gomp_sem_t ** from flexible array
9563         member.  Add implicit_task and initial_work_shares fields.
9564         Move close to the end of the struct.
9565         (struct gomp_team_state): Add single_count, last_work_share,
9566         active_level and level fields, remove work_share_generation.
9567         (gomp_barrier_handle_tasks): New prototype.
9568         (gomp_finish_task): New inline function.
9569         (struct gomp_work_share): Move chunk_size, end, incr into
9570         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
9571         next_ll fields.  Reshuffle fields.  Add next_alloc,
9572         next_ws, next_free and inline_ordered_team_ids fields, change
9573         ordered_team_ids into pointer from flexible array member.
9574         Add mode field.  Put lock and next into a different cache line
9575         from most of the write-once fields.
9576         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
9577         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
9578         gomp_iter_ull_guided_next): New prototypes.
9579         (gomp_new_icv): New prototype.
9580         (struct gomp_thread): Add thread_pool and task fields.
9581         (struct gomp_thread_pool): New type.
9582         (gomp_new_team): New prototype.
9583         (gomp_team_start): Change type of last argument.
9584         (gomp_new_work_share): Removed.
9585         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
9586         (gomp_work_share_init_done): New static inline.
9587         (gomp_throttled_spin_count_var, gomp_available_cpus,
9588         gomp_managed_threads): New extern decls.
9589         (gomp_init_task): New prototype.
9590         (gomp_spin_count_var): New extern var decl.
9591         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
9592         or no alias support, or if not PIC.
9593         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
9594         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
9595         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
9596         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
9597         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
9598         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
9599         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
9600         gomp_test_nest_lock_25): New prototypes.
9601         (omp_lock_symver, strong_alias): Define.
9602         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
9603         decls.
9604         (gomp_end_task): New.
9605         (struct gomp_task_icv, gomp_global_icv): New.
9606         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
9607         (struct gomp_task): New.
9608         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
9609         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
9610         (gomp_icv): New.
9611         (gomp_schedule_type): Reorder enum to match
9612         omp_sched_t.
9613         * team.c (struct gomp_thread_start_data): Add thread_pool and task
9614         fields.
9615         (gomp_thread_start): Add gomp_team_barrier_wait call.
9616         For non-nested case remove clearing of docked thread thr fields.
9617         Use pool fields instead of global gomp_* variables.  Use
9618         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
9619         Create tasks for each member thread.
9620         (free_team): Only destroy team barrier, task_lock here and free it.
9621         (gomp_free_thread): Free last_team if non-NULL.
9622         (gomp_team_end): Call gomp_team_barrier_wait instead of
9623         gomp_barrier_wait.  For nested case call one extra
9624         gomp_barrier_wait.  Move here some destruction from free_team.
9625         Call free_team on pool->last_team if any, rather than freeing
9626         current team.  Destroy work_share_list_free_lock ifndef
9627         HAVE_SYNC_BUILTINS.
9628         (gomp_new_icv): New function.
9629         (gomp_threads, gomp_threads_size, gomp_threads_used,
9630         gomp_threads_dock): Removed.
9631         (gomp_thread_destructor): New variable.
9632         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
9633         functions.
9634         (gomp_team_start): Create new pool if current thread doesn't have
9635         one.  Use pool fields instead of global gomp_* variables.
9636         Initialize thread_pool field for new threads.  Clear single_count.
9637         Change last argument from ws to team, don't create
9638         new team, set ts.work_share to &team->work_shares[0] and clear
9639         ts.last_work_share.  Don't clear ts.work_share_generation.
9640         If number of threads changed, adjust atomically gomp_managed_threads.
9641         Use gomp_init_task instead of gomp_new_task,
9642         set thr->task to the corresponding implicit_task array entry.
9643         Create tasks for each member thread.  Initialize ts.level.
9644         (initialize_team): Call pthread_key_create on
9645         gomp_thread_destructor.
9646         (team_destructor): New function.
9647         (new_team): Removed.
9648         (gomp_new_team): New function.
9649         (free_team): Free gomp_work_share blocks chained through next_alloc,
9650         instead of freeing work_shares and destroying work_share_lock.
9651         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
9652         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
9653         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
9654         of gomp_barrier_wait.
9655         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
9656         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
9657         if gomp_work_share_start returned true.  Don't unlock ws->lock.
9658         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
9659         of gomp_barrier_wait.
9660         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
9661         gomp_work_share_init_done if gomp_work_share_start returned true.
9662         Don't unlock ws->lock.
9663         * work.c: Include stddef.h.
9664         (free_work_share): Use work_share_list_free_lock instead
9665         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
9666         Call gomp_fini_work_share and then either free ws if orphaned, or
9667         put it into work_share_list_free list of the current team.
9668         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
9669         functions.
9670         (gomp_work_share_start, gomp_work_share_end,
9671         gomp_work_share_end_nowait): Rewritten.
9672         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
9673         (openmp_version): Set to 200805.
9674         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
9675         omp_sched_guided, omp_sched_auto): New parameters.
9676         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
9677         omp_set_max_active_levels, omp_get_max_active_levels,
9678         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
9679         omp_get_active_level): New interfaces.
9680         * omp_lib.h.in (openmp_version): Set to 200805.
9681         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
9682         omp_sched_guided, omp_sched_auto): New parameters.
9683         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
9684         omp_set_max_active_levels, omp_get_max_active_levels,
9685         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
9686         omp_get_active_level): New externals.
9687         * loop.c: Include limits.h.
9688         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
9689         GFS_AUTO.
9690         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
9691         Likewise.  Use gomp_icv.
9692         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
9693         ts.static_trip here.
9694         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
9695         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
9696         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
9697         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
9698         don't unlock ws->lock, otherwise lock it.
9699         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
9700         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
9701         (gomp_parallel_loop_start): Call gomp_new_team instead of
9702         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
9703         Adjust gomp_team_start caller.  Pass 0 as second argument to
9704         gomp_resolve_num_threads.
9705         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
9706         If adding ws->chunk_size nthreads + 1 times after end won't
9707         overflow, set ws->mode to 1.
9708         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
9709         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
9710         GOMP_loop_ull_ordered_static_start,
9711         GOMP_loop_ull_ordered_dynamic_start,
9712         GOMP_loop_ull_ordered_guided_start,
9713         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
9714         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
9715         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
9716         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
9717         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
9718         prototypes.
9719         * libgomp.map: Export lock routines also @@OMP_2.0.
9720         (GOMP_loop_ordered_dynamic_first,
9721         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
9722         GOMP_loop_ordered_static_first): Remove.
9723         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
9724         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
9725         GOMP_loop_ull_ordered_dynamic_next,
9726         GOMP_loop_ull_ordered_dynamic_start,
9727         GOMP_loop_ull_ordered_guided_next,
9728         GOMP_loop_ull_ordered_guided_start,
9729         GOMP_loop_ull_ordered_runtime_next,
9730         GOMP_loop_ull_ordered_runtime_start,
9731         GOMP_loop_ull_ordered_static_next,
9732         GOMP_loop_ull_ordered_static_start,
9733         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
9734         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
9735         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
9736         (omp_set_schedule, omp_get_schedule,
9737         omp_get_thread_limit, omp_set_max_active_levels,
9738         omp_get_max_active_levels, omp_get_level,
9739         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
9740         omp_set_schedule_, omp_set_schedule_8_,
9741         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
9742         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
9743         omp_get_max_active_levels_, omp_get_level_,
9744         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
9745         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
9746         New exports @@OMP_3.0.
9747         * omp.h.in (omp_sched_t): New type.
9748         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
9749         omp_set_max_active_levels, omp_get_max_active_levels,
9750         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
9751         omp_get_active_level): New prototypes.
9752         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
9753         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
9754         gomp_thread_limit_var, gomp_remaining_threads_count,
9755         gomp_remaining_threads_lock): New variables.
9756         (parse_spincount): New function.
9757         (initialize_env): Call gomp_init_num_threads unconditionally.
9758         Initialize gomp_available_cpus.  Call parse_spincount,
9759         initialize gomp_{,throttled_}spin_count_var
9760         depending on presence and value of OMP_WAIT_POLICY and
9761         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
9762         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
9763         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
9764         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
9765         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
9766         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
9767         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
9768         (gomp_global_icv): New.
9769         (parse_schedule): Use it.  Parse "auto".
9770         (omp_set_num_threads): Use gomp_icv.
9771         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
9772         Likewise.
9773         (omp_get_max_threads): Move from parallel.c.
9774         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
9775         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
9776         add ialias.
9777         (parse_stacksize, parse_wait_policy): New functions.
9778         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
9779         both wrappers for compatibility and new locks.
9780         (omp_set_schedule, omp_get_schedule,
9781         omp_get_thread_limit, omp_set_max_active_levels,
9782         omp_get_max_active_levels, omp_get_level,
9783         omp_get_ancestor_thread_num, omp_get_team_size,
9784         omp_get_active_level): New ialias_redirect.
9785         (omp_set_schedule_, omp_set_schedule_8_,
9786         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
9787         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
9788         omp_get_max_active_levels_, omp_get_level_,
9789         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
9790         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
9791         New functions.
9792         * parallel.c: Include limits.h.
9793         (gomp_resolve_num_threads): Add count argument.  Rewritten.
9794         (GOMP_parallel_start): Call gomp_new_team and pass that as last
9795         argument to gomp_team_start.  Pass 0 as second argument to
9796         gomp_resolve_num_threads.
9797         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
9798         if gomp_thread_limit_var != ULONG_MAX.
9799         (omp_in_parallel): Implement using ts.active_level.
9800         (omp_get_max_threads): Move to env.c.
9801         (omp_get_level, omp_get_ancestor_thread_num,
9802         omp_get_team_size, omp_get_active_level): New functions,
9803         add ialias.
9804         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
9805         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
9806         gomp_iter_dynamic_next instead of the _locked variant and don't take
9807         lock around it, otherwise acquire it before calling
9808         gomp_iter_dynamic_next_locked.
9809         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
9810         gomp_iter_dynamic_next instead of the _locked variant and don't take
9811         lock around it.
9812         (GOMP_parallel_sections_start): Call gomp_new_team instead of
9813         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
9814         Adjust gomp_team_start caller.  Pass count as second argument to
9815         gomp_resolve_num_threads, don't adjust num_threads after the call.
9816         Use gomp_icv.
9817         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
9818         ws->chunk_size by incr.
9819         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
9820         code.
9821         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
9822         types.
9823         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
9824         (omp_check_defines): Check even the compat defines.
9825         * config/linux/ptrlock.c: New file.
9826         * config/linux/ptrlock.h: New file.
9827         * config/linux/wait.h: New file.
9828         * config/posix/ptrlock.c: New file.
9829         * config/posix/ptrlock.h: New file.
9830         * config/linux/bar.h (gomp_team_barrier_wait,
9831         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
9832         (gomp_team_barrier_set_task_pending,
9833         gomp_team_barrier_clear_task_pending,
9834         gomp_team_barrier_set_waiting_for_tasks,
9835         gomp_team_barrier_waiting_for_tasks,
9836         gomp_team_barrier_done): New inlines.
9837         (gomp_barrier_t): Rewritten.
9838         (gomp_barrier_state_t): New typedef.
9839         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
9840         gomp_barrier_wait_start): Rewritten.
9841         (gomp_barrier_wait_end): Change second argument to
9842         gomp_barrier_state_t.
9843         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
9844         inlines.
9845         * config/linux/bar.c: Include wait.h instead of libgomp.h and
9846         futex.h.
9847         (gomp_barrier_wait_end): Rewritten.
9848         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
9849         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
9850         * config/posix/bar.h (gomp_barrier_t): Add generation field.
9851         (gomp_barrier_state_t): New typedef.
9852         (gomp_team_barrier_wait,
9853         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
9854         (gomp_barrier_wait_start): Or all but low 2 bits from generation
9855         into the return value.  Return gomp_barrier_state_t.
9856         (gomp_team_barrier_set_task_pending,
9857         gomp_team_barrier_clear_task_pending,
9858         gomp_team_barrier_set_waiting_for_tasks,
9859         gomp_team_barrier_waiting_for_tasks,
9860         gomp_team_barrier_done): New inlines.
9861         (gomp_barrier_wait_end): Change second argument to
9862         gomp_barrier_state_t.
9863         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
9864         inlines.
9865         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
9866         (gomp_barrier_wait_end): Change second argument to
9867         gomp_barrier_state_t.
9868         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
9869         gomp_team_barrier_wake): New functions.
9870         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
9871         futex.h.
9872         (gomp_futex_wake, gomp_futex_wait): New variables.
9873         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
9874         * config/linux/lock.c: Rewrite to make locks task owned,
9875         for backwards compatibility provide the old entrypoints
9876         if symbol versioning.  Include wait.h instead of libgomp.h and
9877         futex.h.
9878         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
9879         * config/posix95/lock.c: Rewrite to make locks task owned,
9880         for backwards compatibility provide the old entrypoints
9881         if symbol versioning.
9882         * config/posix/lock.c: Rewrite to make locks task owned,
9883         for backwards compatibility provide the old entrypoints
9884         if symbol versioning.
9885         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
9886         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
9887         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
9888         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9889         (sys_futex0): Return error code.
9890         (futex_wake, futex_wait): If ENOSYS was returned, clear
9891         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9892         (cpu_relax, atomic_write_barrier): New static inlines.
9893         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9894         (futex_wake, futex_wait): If ENOSYS was returned, clear
9895         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9896         (cpu_relax, atomic_write_barrier): New static inlines.
9897         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9898         (sys_futex0): Return error code.
9899         (futex_wake, futex_wait): If ENOSYS was returned, clear
9900         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9901         (cpu_relax, atomic_write_barrier): New static inlines.
9902         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9903         (sys_futex0): Return error code.
9904         (futex_wake, futex_wait): If ENOSYS was returned, clear
9905         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9906         (cpu_relax, atomic_write_barrier): New static inlines.
9907         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9908         (sys_futex0): Return error code.
9909         (futex_wake, futex_wait): If ENOSYS was returned, clear
9910         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9911         (cpu_relax, atomic_write_barrier): New static inlines.
9912         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
9913         (sys_futex0): Return error code.
9914         (futex_wake, futex_wait): If ENOSYS was returned, clear
9915         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
9916         (cpu_relax, atomic_write_barrier): New static inlines.
9917         * config/linux/sem.c: Include wait.h instead of libgomp.h and
9918         futex.h.
9919         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
9920         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
9921         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
9922         types.
9923         (omp_nest_lock_t): Change owner into void *, add lock field.
9924         * config/posix95/omp-lock.h: Include semaphore.h.
9925         (omp_lock_25_t, omp_nest_lock_25_t): New types.
9926         (omp_lock_t): Use sem_t instead of mutex if semaphores
9927         aren't broken.
9928         (omp_nest_lock_t): Likewise.  Change owner to void *.
9929         * config/posix/omp-lock.h: Include semaphore.h.
9930         (omp_lock_25_t, omp_nest_lock_25_t): New types.
9931         (omp_lock_t): Use sem_t instead of mutex if semaphores
9932         aren't broken.
9933         (omp_nest_lock_t): Likewise.  Add owner field.
9935 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
9937         * testsuite/libgomp.c/collapse-1.c: New test.
9938         * testsuite/libgomp.c/collapse-2.c: New test.
9939         * testsuite/libgomp.c/collapse-3.c: New test.
9940         * testsuite/libgomp.c/icv-1.c: New test.
9941         * testsuite/libgomp.c/icv-2.c: New test.
9942         * testsuite/libgomp.c/lib-2.c: New test.
9943         * testsuite/libgomp.c/lock-1.c: New test.
9944         * testsuite/libgomp.c/lock-2.c: New test.
9945         * testsuite/libgomp.c/lock-3.c: New test.
9946         * testsuite/libgomp.c/loop-4.c: New test.
9947         * testsuite/libgomp.c/loop-5.c: New test.
9948         * testsuite/libgomp.c/loop-6.c: New test.
9949         * testsuite/libgomp.c/loop-7.c: New test.
9950         * testsuite/libgomp.c/loop-8.c: New test.
9951         * testsuite/libgomp.c/loop-9.c: New test.
9952         * testsuite/libgomp.c/nested-3.c: New test.
9953         * testsuite/libgomp.c/nestedfn-6.c: New test.
9954         * testsuite/libgomp.c/sort-1.c: New test.
9955         * testsuite/libgomp.c/task-1.c: New test.
9956         * testsuite/libgomp.c/task-2.c: New test.
9957         * testsuite/libgomp.c/task-3.c: New test.
9958         * testsuite/libgomp.c/task-4.c: New test.
9959         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
9960         to C++ testsuite default compiler options.
9961         * testsuite/libgomp.c++/collapse-1.C: New test.
9962         * testsuite/libgomp.c++/collapse-2.C: New test.
9963         * testsuite/libgomp.c++/ctor-10.C: New test.
9964         * testsuite/libgomp.c++/for-1.C: New test.
9965         * testsuite/libgomp.c++/for-2.C: New test.
9966         * testsuite/libgomp.c++/for-3.C: New test.
9967         * testsuite/libgomp.c++/for-4.C: New test.
9968         * testsuite/libgomp.c++/for-5.C: New test.
9969         * testsuite/libgomp.c++/loop-8.C: New test.
9970         * testsuite/libgomp.c++/loop-9.C: New test.
9971         * testsuite/libgomp.c++/loop-10.C: New test.
9972         * testsuite/libgomp.c++/task-1.C: New test.
9973         * testsuite/libgomp.c++/task-2.C: New test.
9974         * testsuite/libgomp.c++/task-3.C: New test.
9975         * testsuite/libgomp.c++/task-4.C: New test.
9976         * testsuite/libgomp.c++/task-5.C: New test.
9977         * testsuite/libgomp.c++/task-6.C: New test.
9978         * testsuite/libgomp.fortran/allocatable1.f90: New test.
9979         * testsuite/libgomp.fortran/allocatable2.f90: New test.
9980         * testsuite/libgomp.fortran/allocatable3.f90: New test.
9981         * testsuite/libgomp.fortran/allocatable4.f90: New test.
9982         * testsuite/libgomp.fortran/collapse1.f90: New test.
9983         * testsuite/libgomp.fortran/collapse2.f90: New test.
9984         * testsuite/libgomp.fortran/collapse3.f90: New test.
9985         * testsuite/libgomp.fortran/collapse4.f90: New test.
9986         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
9987         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
9988         * testsuite/libgomp.fortran/lib4.f90: New test.
9989         * testsuite/libgomp.fortran/lock-1.f90: New test.
9990         * testsuite/libgomp.fortran/lock-2.f90: New test.
9991         * testsuite/libgomp.fortran/nested1.f90: New test.
9992         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
9993         * testsuite/libgomp.fortran/strassen.f90: New test.
9994         * testsuite/libgomp.fortran/tabs1.f90: New test.
9995         * testsuite/libgomp.fortran/tabs2.f: New test.
9996         * testsuite/libgomp.fortran/task1.f90: New test.
9997         * testsuite/libgomp.fortran/task2.f90: New test.
9998         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
9999         * testsuite/libgomp.fortran/vla5.f90: Likewise.
10000         * testsuite/libgomp.c/pr26943-2.c: Likewise.
10001         * testsuite/libgomp.c/pr26943-3.c: Likewise.
10002         * testsuite/libgomp.c/pr26943-4.c: Likewise.
10004 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
10006         PR c++/36308
10007         * testsuite/libgomp.c++/ctor-11.C: New test.
10008         * testsuite/libgomp.c++/ctor-12.C: New test.
10010 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
10012         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
10014 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
10016         PR middle-end/36106
10017         * testsuite/libgomp.c/atomic-5.c: New test.
10018         * testsuite/libgomp.c/atomic-6.c: New test.
10019         * testsuite/libgomp.c/autopar-1.c: New test.
10021 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10023         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
10024         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
10025         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
10026         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
10027         * configure: Regenerate.
10028         * Makefile.in, testsuite/Makefile.in: Likewise.
10030 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
10032         PR bootstrap/35457
10033         * aclocal.m4: Regenerate.
10034         * configure: Regenerate.
10036 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
10038         PR middle-end/35611
10039         * testsuite/libgomp.c/atomic-4.c: New test.
10041         PR libgomp/35625
10042         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
10043         (gomp_iter_guided_next): Likewise.
10044         * testsuite/libgomp.c/pr35625.c: New test.
10046 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10048         * aclocal.m4: Regenerate.
10049         * configure: Likewise.
10050         * Makefile.in: Likewise.
10051         * testsuite/Makefile.in: Likewise.
10053 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
10055         PR middle-end/35185
10056         * testsuite/libgomp.c++/pr35185.C: New test.
10058 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
10060         PR middle-end/35549
10061         * testsuite/libgomp.c/pr35549.c: New test.
10063 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
10065         * testsuite/libgomp.c/atomic-3.c: New test.
10067 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10069         PR fortran/33197
10070         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
10071         .F08 file suffixes.
10073 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
10075         PR libgomp/33131
10076         * configure.ac: Add ACX_HEADER_STRING.
10077         * env.c: Include strings.h.
10078         * aclocal.m4: Regenerate.
10079         * config.h.in: Regenerate.
10080         * configure: Regenerate.
10081         * Makefile.in: Regenerate.
10082         * testsuite/Makefile.in: Regenerate.
10084 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10086         PR middle-end/35196
10087         * testsuite/libgomp.c/pr35196.c: New test.
10089         PR middle-end/35130
10090         * testsuite/libgomp.fortran/pr35130.f90: New test.
10091         * testsuite/libgomp.c/pr35130.c: New test.
10093 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
10095         PR middle-end/33880
10096         * testsuite/libgomp.c/pr33880.c: New test.
10097         * testsuite/libgomp.fortran/pr33880.f90: New test.
10099 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
10101         * configure: Regenerate.
10103 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10105         * configure.ac: Move futex checking into ../config/futex.m4.
10106         * configure: Rebuilt.
10107         * aclocal.m4: Rebuilt.
10108         * Makefile.in: Rebuilt.
10110         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
10111         2007-10-15 ../config/tls.m4 change.
10113 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
10115         PR c++/34513
10116         * testsuite/libgomp.c/pr34513.c: New test.
10117         * testsuite/libgomp.c++/pr34513.C: New test.
10119 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
10121         PR target/32765
10122         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
10124 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
10126         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
10128 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
10130         * testsuite/libgomp.c/private-1.c: New test.
10132 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
10133             Paolo Bonzini  <bonzini@gnu.org>
10135         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
10136         instead of 'VPATH ='.
10137         * Makefile.in: Regenerate.
10139 2007-11-23  Matthias Klose  <doko@ubuntu.com>
10141         * configure.ac: Adjust makeinfo version check.
10142         * configure: Regenerate.
10144 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
10146         PR fortran/34020
10147         * testsuite/libgomp.fortran/pr34020.f90: New test.
10149 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
10151         PR c++/33894
10152         * testsuite/libgomp.c++/atomic-1.C: New test.
10154 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
10156         PR libgomp/33275
10157         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
10158         Make x and y integers rather than (implicit) reals.  Add private (j)
10159         clause to the last omp parallel.
10161 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
10163         * configure: Regenerate following changes to ../config/tls.m4.
10165 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
10167         * testsuite/libgomp.fortran/stack.f90: New test.
10169 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
10171         * config/mingw32/proc.c: New file.
10173 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
10175         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
10176         (main): Use __get_cpuid to get i386 target fetaures.
10177         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
10178         (main): Use __get_cpuid to get x86_64 target fetaures.
10180 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
10182         PR target/32765
10183         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
10184         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
10186 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
10188         PR fortran/32550
10189         * testsuite/libgomp.fortran/pr32550.f90: New test.
10190         * testsuite/libgomp.fortran/crayptr2.f90: New test.
10192 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
10194         * aclocal.m4: Regenerated.
10196 2007-07-05  Tobias Burnus  <burnus@net-b.de>
10198         PR fortran/32359
10199         * testsuite/libgomp.fortran/pr32359.f90: New.
10201 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
10203         PR libgomp/32468
10204         * sections.c (GOMP_parallel_sections_start): Only decrease
10205         number of threads to COUNT if dyn_var is true.
10206         * testsuite/libgomp.c/pr32468.c: New test.
10208 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10210         PR libgomp/26308
10211         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
10213 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
10215         PR middle-end/32362
10216         * testsuite/libgomp.c/pr32362-1.c: New test.
10217         * testsuite/libgomp.c/pr32362-2.c: New test.
10218         * testsuite/libgomp.c/pr32362-3.c: New test.
10220 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
10222         * team.c (gomp_team_start): Fix setting up thread_attr
10223         stack size.
10225 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
10227         * configure: Regenerate.
10229 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
10231         * Makefile.in: Regenerate.
10232         * configure: Regenerate.
10233         * aclocal.m4: Regenerate.
10234         * testsuite/Makefile.in: Regenerate.
10236 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
10238         * config/linux/proc.c: New file.
10240         PR libgomp/28482
10241         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
10243 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
10245         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
10247 2007-04-16  Matthias Klose  <doko@debian.org>
10249         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
10250         flags if not building with -m64.
10251         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
10252         flag for i?86-*-* targets, if current target matches -m64.
10254 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
10256         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
10257         * Makefile.in: Regenerate.
10259 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10261         PR testsuite/31369
10262         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
10263         ld_library_path.
10264         * testsuite/libgomp.fortran/fortran.exp: Likewise.
10266 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
10268         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
10269         decls.
10270         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
10271         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
10272         (parse_affinity): New function.
10273         (initialize_env): Call it and gomp_init_affinity.
10274         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
10275         create new pthread_attr_t and call gomp_init_thread_affinity
10276         on it for each thread before passing the attribute to pthread_create.
10277         * config/linux/affinity.c: New file.
10278         * config/posix/affinity.c: New file.
10279         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
10280         * configure: Rebuilt.
10281         * config.h.in: Rebuilt.
10282         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
10283         * Makefile.in: Rebuilt.
10285 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
10287         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
10288         *-*-darwin*.
10289         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
10290         and use it if found.
10292 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
10294         * testsuite/config/default.exp: New file.
10295         * testsuite/lib/libgomp.exp: New file.
10296         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
10297         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
10298         load_lib *, load_gcc_lib *): Move to libgomp.exp.
10299         (libgomp_load): Remove.
10300         * testsuite/lib/libgomp.exp (libgomp_init): Compute
10301         always_ld_library_path, not ld_library_path.  Set additional_flags
10302         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
10303         (target_compile): Do not call libgomp_init.  Append lang_library_path
10304         and lang_link_flags to options.
10305         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
10306         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
10307         here.
10308         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
10309         always_ld_library_path.  Set LD_LIBRARY_PATH here.
10310         * testsuite/libgomp.fortran/fortran.exp: Ditto.
10311         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
10312         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
10313         CX8 flag.
10314         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
10315         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
10316         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
10317         * testsuite/libgomp.c/pr29947-1.c: Ditto.
10318         * testsuite/libgomp.c/atomic-10.c: Ditto.
10320 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
10322         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
10323         dg-final cleanup-modules line.
10324         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
10325         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
10326         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
10327         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
10328         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
10329         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
10330         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
10332 2007-03-18  Andreas Schwab  <schwab@suse.de>
10334         * acinclude.m4: Adjust regular expression for ld version
10335         extraction.
10336         * configure: Regenerate.
10338 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
10340         * Makefile.am: Add install-pdf target as copied from
10341         automake v1.10 rules.
10342         * Makefile.in: Regenerate
10344 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
10346         PR libgomp/28486
10347         * configure: Regenerate.
10349         PR c++/30703
10350         * testsuite/libgomp.c++/pr30703.C: New test.
10352 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
10354         Revert:
10355         2006-07-05  Eric Christopher  <echristo@apple.com>
10356         * configure.ac: Depend addition of -pthread on host OS.
10357         * configure: Regenerate.
10359 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10361         * libgomp.texi: Fix spacing after abbreviations.
10363 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
10365         PR libgomp/30546
10366         * configure.ac: Add check for makeinfo
10367         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
10368         if an appropiate version of makeinfo is found.
10369         * aclocal.m4: Regenerated.
10370         * configure: Regenerated.
10371         * Makefile.in: Regenerated.
10372         * testsuite/Makefile.in: Regenerated.
10374 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
10376         PR libgomp/30540
10377         * libgomp.texi: More about implementation-dependent settings.
10379 2007-01-26  Tobias Burnus  <burnus@net-b.de>
10381         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
10383 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
10385         PR middle-end/30494
10386         * testsuite/libgomp.c/pr30494.c: New test.
10388 2007-01-15  Tom Tromey  <tromey@redhat.com>
10390         * configure: Rebuilt.
10391         * configure.ac: Fixed comment.
10393 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
10395         * libgomp.texi: Document implementation specific default values of
10396         environment variables.
10398 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
10400         PR libgomp/28209
10401         * libgomp.texi: New file.
10402         * configure.ac: Add --enable-generated-files-in-srcdir option.
10403         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
10404         files to srcdir.
10405         * Makefile.in: Regenerated.
10406         * config.h.in: Regenerated.
10407         * testsuite/Makefile.in: Regenerated.
10408         * NOTES: Removed.
10410 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
10412         PR libgomp/29949
10413         * env.c (omp_set_num_threads): Set illegal thread count to 1.
10415 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10417         * configure: Regenerate.
10419 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
10421         PR libgomp/29947
10422         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
10423         start if there shouldn't be any loop iterations.
10424         (gomp_loop_ordered_static_start): Remove start == end test.
10425         * testsuite/libgomp.c/pr29947-1.c: New test.
10426         * testsuite/libgomp.c/pr29947-2.c: New test.
10428 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10430         * configure.tgt: Force initial-exec TLS model on Linux only.
10432 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
10434         * configure: Regenerated.
10436 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
10438         * env.c (parse_schedule): Reject out of range values.
10439         (parse_unsigned_long): Reject out of range, negative or zero values.
10441 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
10443         PR fortran/29629
10444         * testsuite/libgomp.fortran/pr29629.f90: New test.
10446 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
10448         PR libgomp/29494
10449         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
10450         * config/posix95: New directory.
10451         * config/posix95/omp-lock.h: New file.
10452         * config/posix95/lock.c: Likewise.
10454 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
10456         * aclocal.m4: Regenerate.
10457         * configure: Regenerate.
10459 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
10461         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
10462         '<' to '<='.
10464 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
10466         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
10467         test.
10468         * configure: Regenerate.
10469         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
10471 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
10473         PR middle-end/25261
10474         PR middle-end/28790
10475         * testsuite/libgomp.c/nestedfn-4.c: New test.
10476         * testsuite/libgomp.c/nestedfn-5.c: New test.
10477         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
10479         PR fortran/29097
10480         * testsuite/libgomp.fortran/condinc1.f: New test.
10481         * testsuite/libgomp.fortran/condinc2.f: New test.
10482         * testsuite/libgomp.fortran/condinc3.f90: New test.
10483         * testsuite/libgomp.fortran/condinc4.f90: New test.
10484         * testsuite/libgomp.fortran/condinc1.inc: New file.
10486 2006-09-18  Tom Tromey  <tromey@redhat.com>
10488         * configure: Rebuilt.
10490 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
10492         PR c/28768
10493         PR preprocessor/14634
10494         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
10495         to AC_DEFINE.
10496         * configure: Regenerate.
10498 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
10500         * testsuite/libgomp.fortran/reduction3.f90: Change
10501         -2147483648 to -huge(i)-1 to avoid overflow.
10502         * testsuite/libgomp.fortran/reduction4.f90: Change
10503         Z'ffffffff' to not(0) to avoid overflow.
10505 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
10507         PR libgomp/25938
10508         * Makefile.am (libsubincludedir): New.
10509         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
10510         * Makefile.in: Regenerate.
10512 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
10514         PR libgomp/28725
10515         * env.c: Include ctype.h.
10516         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
10517         leading and/or trailing whitespace and compare strings case
10518         insensitively.
10520 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
10522         PR fortran/28390
10523         * testsuite/libgomp.fortran/pr28390.f: New test.
10525 2006-07-05  Eric Christopher  <echristo@apple.com>
10527         * configure.ac: Depend addition of -pthread on host OS.
10528         * configure: Regenerate.
10530 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
10532         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
10533         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
10534         defined.
10536 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
10538         PR libgomp/26175
10539         PR libgomp/26477
10540         * configure.ac: If neither --enable-linux-futex nor
10541         --disable-linux-futex is passed, determine the default by checking
10542         for compiling and/or running against NPTL.  With --enable-linux-futex,
10543         check if SYS_gettid and SYS_futex are defined.
10544         * configure: Rebuilt.
10546 2006-06-14  Richard Henderson  <rth@redhat.com>
10548         PR libgomp/28008
10549         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
10550         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
10552 2006-06-09  Richard Henderson  <rth@redhat.com>
10554         * env.c (gomp_nthreads_var): Change to unsigned long.
10555         (gomp_run_sched_chunk): Likewise.
10556         (parse_unsigned_long): Rename from parse_num_threads and generalize.
10557         (initialize_env): Initialize gomp_thread_attr.
10558         * libgomp.h (gomp_nthreads_var): Update decl.
10559         (gomp_run_sched_chunk): Likewise.
10560         (gomp_thread_attr): Declare.
10561         * team.c (gomp_thread_attr): Export.
10562         (initialize_team): Don't initialize it.
10564 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
10566         PR fortran/27916
10567         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
10568         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
10570 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10572         * config/mingw32/time.c: New file.
10573         * configure.tgt: Use it.
10575 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
10577         * Makefile.am: Add install-html target. Add install-html to .PHONY
10578         * Makefile.in: Regenerate.
10580 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10582         PR libgomp/27612
10583         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
10584         * testsuite/libgomp.c/critical-1.c: Likewise.
10585         * testsuite/libgomp.c/loop-1.c: Likewise.
10586         * testsuite/libgomp.c/loop-2.c: Likewise.
10587         * testsuite/libgomp.c/single-1.c: Likewise.
10588         * testsuite/libgomp.c/ordered-1.c: Likewise.
10589         * testsuite/libgomp.c/ordered-2.c: Likewise.
10591 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
10593         PR middle-end/27416
10594         * libgomp.fortran/pr27416-1.f90: New test.
10596 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
10598         PR fortran/27395
10599         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
10600         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
10602 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
10604         PR c++/26943
10605         * testsuite/libgomp.c/pr26943-1.c: New test.
10606         * testsuite/libgomp.c/pr26943-2.c: New test.
10607         * testsuite/libgomp.c/pr26943-3.c: New test.
10608         * testsuite/libgomp.c/pr26943-4.c: New test.
10609         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
10610         * testsuite/libgomp.c++/pr26943.C: New test.
10612 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
10614         PR middle-end/27337
10615         * testsuite/libgomp.c++/pr27337.C: New test.
10617 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
10619         PR c/26171
10620         * testsuite/libgomp.c/pr26171.c: New test.
10622 2006-04-25  Richard Henderson  <rth@redhat.com>
10624         PR libgomp/25865
10625         * configure.ac: Use GCC_CHECK_TLS.
10626         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
10627         * Makefile.in, aclocal.m4, configure: Regenerate.
10629 2006-04-10  Matthias Klose  <doko@debian.org>
10631         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
10632         directory names containing underscores.
10634 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
10636         PR c++/26691
10637         * testsuite/libgomp.c++/pr26691.C: New test.
10639 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
10641         * testsuite/libgomp.fortran/retval2.f90: New test.
10643 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
10645         * testsuite/libgomp.c++: New directory.
10647 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
10649         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
10650         * config/posix/sem.c: Implement the above.
10652 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
10654         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
10655         define HAVE_BROKEN_POSIX_SEMAPHORES.
10656         * configure: Rebuilt.
10657         * config.h.in: Rebuilt.
10659 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10661         PR bootstrap/26161
10662         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
10663         for the other pthread check.
10664         * configure: Regenerate.
10665         * config.h.in: Regenerate.
10667 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
10669         PR libgomp/25938
10670         PR libgomp/25984
10671         * Makefile.am (fincludedir): New variable.
10672         (nodist_include_HEADERS): Remove Fortran files.
10673         (nodist_finclude_HEADERS): New variable.
10674         * Makefile.in: Regenerated.
10676 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
10678         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
10679         Remove tests for returning assumed character length arrays.
10681 2006-02-12  Roger Sayle  <roger@eyesopen.com>
10682             John David Anglin  <dave@hiauly1.hia.nrc.ca>
10684         PR libgomp/25936
10685         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
10687 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
10689         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
10691 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10693         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
10694         part of LD_LIBRARY_PATH manually.
10696 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
10698         PR libgomp/25852
10699         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
10700         libgomp_init.
10702 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
10704         PR libgomp/25884
10705         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
10706         * configure.ac (PERL): Don't set.
10707         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
10708         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
10709         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
10710         * omp.h.in: Wrap the new configure substitutions with @ characters.
10711         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
10712         * aclocal.m4, configure, Makefile.in: Regenerate.
10713         * mkomp_h.pl: Delete.
10715 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
10717         PR libgomp/25259
10718         * configure.ac: Use GCC_HEADER_STDINT.
10719         * libgomp.h: Include gstdint.h.
10720         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
10721         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
10723 2006-01-24  Richard Henderson  <rth@redhat.com>
10725         PR libgomp/25942
10726         * configure.ac: Add AM_MAINTAINER_MODE.
10727         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
10729 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
10731         * Makefile.in: Regenerate.
10732         * testsuite/Makefile.in: Regenerate.
10733         * aclocal.m4: Regenerate.
10735 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
10737         * config/posix/proc.c: Conditional include of sys/loadavg.h for
10738         Solaris.
10739         * configure.ac: Add check for loadavg.h.
10740         (link_gomp): Adjust comment.
10741         * configure: Regenerate.
10742         * config.h.in: Regenerate.
10744 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
10746         PR libgomp/25877
10747         * configure.ac: Remove check for alloca.h.
10748         * configure: Regenerate.
10749         * config.h.in: Regenerate.
10750         * libgomp.h: define gomp_alloca to be __builtin_alloca.
10751         * team.c: Remove use of alloca.h.
10752         Call gomp_alloca instead of alloca.
10754 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
10756         PR libgomp/25877
10757         * team.c: Add include of alloca.h.
10758         * configure.ac: Add check for alloca.h.
10759         * configure: Regenerate.
10760         * config.h.in: Regenerate.
10762 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
10764         PR fortran/25219
10765         * testsuite/libgomp.fortran/pr25219.f90: New test.
10767 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
10769         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
10770         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
10771         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
10772         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
10773         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
10774         testsuite/libgomp.fortran/threadprivate1.f90,
10775         testsuite/libgomp.fortran/threadprivate2.f90,
10776         testsuite/libgomp.fortran/threadprivate3.f90,
10777         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
10778         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
10779         testsuite/libgomp.fortran/omp_parse3.f90: Change required
10780         effective-target to TLS runtime.
10782         * testsuite/libgomp.fortran/pr25162.f: Require
10783         effective-target TLS runtime.
10785 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
10787         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
10788         * testsuite/libgomp.c/nestedfn-3.c: New test.
10790 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
10792         PR fortran/25162
10793         * testsuite/libgomp.fortran/pr25162.f: New test.
10795 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
10797         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
10798         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
10800 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
10802         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
10803         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
10804         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
10805         single.c, team.c, work.c, config/linux/alpha/futex.h,
10806         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
10807         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
10808         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
10809         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
10810         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
10811         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
10812         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
10813         FSF address.
10815 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
10817         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
10818         to nodist_noinst_HEADERS.
10819         * Makefile.in: Rebuilt.
10821         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
10822         add integer count field.
10823         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
10824         omp_nest_lock_t type change.
10825         (omp_init_nest_lock): Likewise.  Initialize count to 0.
10826         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
10827         Increment count.
10828         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
10829         Decrement count.
10830         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
10831         Increment count if successful and return the new nesting level.
10832         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
10833         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
10834         * testsuite/libgomp.c/lib-1.c: New test.
10835         * testsuite/libgomp.fortran/lib1.f90: New test.
10836         * testsuite/libgomp.fortran/lib2.f: New test.
10837         * testsuite/libgomp.fortran/lib3.f: New test.
10839 2005-11-17  Richard Henderson  <rth@redhat.com>
10841         PR 24845
10842         * Makefile.am (nodist_toolexeclib_HEADERS): New.
10843         * configure.ac (link_gomp): New.  Substitute it.
10844         (AC_CONFIG_FILES): Add libgomp.spec.
10845         * libgomp.spec.in: New file.
10846         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
10847         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
10849 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
10851         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
10852         reduction(-:var) behaving the same as reduction(+:var).
10853         * testsuite/libgomp.c/reduction-4.c: New test.
10855 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
10857         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
10858         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
10859         testsuite/libgomp.c/copyin-3.c,
10860         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
10861         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
10862         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
10863         testsuite/libgomp.c++/pr24455.C,
10864         testsuite/libgomp.fortran/threadprivate1.f90,
10865         testsuite/libgomp.fortran/threadprivate2.f90,
10866         testsuite/libgomp.fortran/threadprivate3.f90,
10867         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
10868         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
10869         testsuite/libgomp.fortran/omp_parse3.f90: Require
10870         effective-target TLS.
10872 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
10874         * HEADER: Remove.
10876 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
10878         PR libgomp/24797
10879         * team.c (initialize_team): Pass NULL rather than free as
10880         pthread_key_create destructor.  Initialize thread specific data
10881         pointer in initial thread to a static local variable rather than
10882         malloced memory.
10884 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
10886         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
10887         its location to ld_library_path.
10889 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
10891         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
10893 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
10895         * testsuite/libgomp.c: Rename from libgomp.dg.
10897 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
10899         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
10900         threadprivate variable 'i'.
10902 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
10904         * config/linux/s390/futex.h: New file.
10905         * configure.tgt: Use it.
10907         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
10908         before the parallel.
10910 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
10912         PR c++/24734
10913         * testsuite/libgomp.c++/master-1.C: New test.
10915 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
10917         * testsuite/libgomp.dg/copyin-3.c: New test.
10919 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
10921         * testsuite/libgomp.fortran/retval1.f90: New test.
10922         * testsuite/libgomp.fortran/vla7.f90: New test.
10924 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
10926         * testsuite/libgomp.fortran/vla2.f90: New test.
10927         * testsuite/libgomp.fortran/vla3.f90: New test.
10928         * testsuite/libgomp.fortran/vla4.f90: New test.
10929         * testsuite/libgomp.fortran/vla5.f90: New test.
10930         * testsuite/libgomp.fortran/vla6.f90: New test.
10932 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
10934         * config/linux/sparc/futex.h: New file.
10935         * configure.tgt: Use it.
10936         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
10938         * critical.c: Include stdlib.h.
10939         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
10940         ignoring return value.
10941         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
10942         LIBGOMP_CHECK_SYNC_BUILTINS check.
10943         * configure: Rebuilt.
10945 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
10947         * testsuite/libgomp.fortran/vla1.f90: New test.
10949 2005-10-31  Richard Henderson  <rth@redhat.com>
10951         * testsuite/libgomp.fortran/character2.f90: Fix race condition
10952         setting 's' in different threads.
10954 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
10956         * libgomp.h (attribute_hidden, ialias): Define.
10957         * config/posix/proc.c (omp_get_num_procs): Add ialias.
10958         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
10959         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
10960         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
10961         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
10962         omp_test_lock, omp_test_nest_lock): Likewise.
10963         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
10964         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
10965         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
10966         omp_test_lock, omp_test_nest_lock): Likewise.
10967         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
10968         omp_get_dynamic, omp_get_nested): Likewise.
10969         * parallel.c (omp_get_num_threads, omp_get_max_threads,
10970         omp_get_thread_num, omp_in_parallel): Likewise.
10971         * fortran.c (ialias_redirect): Define.
10972         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
10973         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
10974         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
10975         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
10976         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
10977         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
10978         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
10979         omp_get_wtime): Add ialias_redirect.
10981 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
10983         * fortran.c: Include stdlib.h.
10985 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
10987         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
10988         * Makefile.in: Regenerated.
10990 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
10992         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
10993         * libgomp_f.h.in (omp_check_defines): New function.
10994         * env.c: Include libgomp_f.h.
10995         (initialize_env): Call omp_check_defines.
10997         * testsuite/libgomp.dg/copyin-2.c: New test.
10998         * testsuite/libgomp.c++/copyin-2.C: New test.
10999         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
11001         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
11002         * testsuite/libgomp.fortran/sharing2.f90: New test.
11004         * testsuite/libgomp.dg/copyin-1.c: New test.
11005         * testsuite/libgomp.c++/copyin-1.C: New test.
11007 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
11009         * testsuite/libgomp.fortran/crayptr1.f90: New test.
11011         * testsuite/libgomp.fortran/workshare1.f90: New test.
11013         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
11014         only test.
11015         * libgomp.fortran/sharing1.f90: New test.
11017 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
11019         PR c++/24502
11020         * testsuite/libgomp.c++/loop-7.C: New test.
11022         * testsuite/libgomp.dg/nestedfn-2.c: New test.
11024         * testsuite/libgomp.dg/nestedfn-1.c: New test.
11025         * testsuite/libgomp.fortran/reduction6.f90: New test.
11026         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
11028 2005-10-23  Richard Henderson  <rth@redhat.com>
11030         * testsuite/libgomp.c++/ctor-1.C: New.
11031         * testsuite/libgomp.c++/ctor-2.C: New.
11032         * testsuite/libgomp.c++/ctor-3.C: New.
11033         * testsuite/libgomp.c++/ctor-4.C: New.
11034         * testsuite/libgomp.c++/ctor-5.C: New.
11035         * testsuite/libgomp.c++/ctor-6.C: New.
11036         * testsuite/libgomp.c++/ctor-7.C: New.
11037         * testsuite/libgomp.c++/ctor-8.C: New.
11038         * testsuite/libgomp.c++/ctor-9.C: New.
11040 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
11042         PR 24455
11043         * testsuite/libgomp.c++/pr24455-1.C: New test.
11044         * testsuite/libgomp.c++/pr24455.C: New test.
11045         * testsuite/libgomp.dg/pr24455-1.c: New test.
11046         * testsuite/libgomp.dg/pr24455.c: New test.
11048 2005-10-20  Richard Henderson  <rth@redhat.com>
11050         * testsuite/libgomp.c++/loop-6.C: New.
11051         * testsuite/libgomp.dg/loop-3.c: New.
11053 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
11055         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
11056         explicitly private.
11057         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
11058         explicitly shared.
11060 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
11062         * testsuite/libgomp.fortran/jacobi.f: New test.
11064 2005-10-19  Richard Henderson  <rth@redhat.com>
11066         * configure.tgt (i?86-linux): Default to with_arch instead of
11067         CFLAGS.  Add -mtune to match target_cpu.
11068         (x86_64-linux): Tune to i686.
11070         * fortran.c (omp_test_nest_lock_): Fix typo.
11072 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
11074         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
11075         gomp_ordered_sync): Do nothing if team->nthreads == 1.
11076         * testsuite/libgomp.dg/ordered-3.c: New test.
11078         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
11079         Remove volatile keyword.
11081         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
11082         in COMMON block to avoid warnings on 64-bit targets.
11084 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
11086         * testsuite/libgomp.dg/shared-3.c: New test.
11088 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
11090         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
11091         * testsuite/libgomp.fortran/reduction5.f90: New test.
11093 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
11095         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
11096         dg-options.
11097         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
11098         flush loop now that __sync_synchronize has proper memory barrier.
11099         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
11100         Add -ffixed-form to dg-options.
11102 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
11104         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
11105         from subdirectories.
11106         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
11107         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
11108         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
11109         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
11110         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
11111         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
11112         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
11113         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
11114         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
11115         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
11116         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
11117         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
11118         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
11119         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
11120         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
11121         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
11122         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
11123         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
11124         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
11125         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
11126         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
11127         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
11128         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
11129         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
11130         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
11132 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
11134         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
11135         lang_library_path exists.  Use find instead of glob to gather tests.
11136         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
11138 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
11140         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
11141         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
11142         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
11143         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
11144         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
11145         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
11146         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
11147         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
11148         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
11149         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
11150         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
11151         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
11152         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
11154 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
11156         * testsuite/libgomp.dg/vla-1.c: New test.
11158         * testsuite/libgomp.fortran/reference2.f90: New test.
11160         * testsuite/libgomp.fortran/character2.f90: Remove explicit
11161         declaration of omp_get_thread_num.
11162         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
11163         use omp_lib.
11165         * testsuite/libgomp.fortran/reduction1.f90: New test.
11166         * testsuite/libgomp.fortran/reduction2.f90: New test.
11167         * testsuite/libgomp.fortran/reduction3.f90: New test.
11168         * testsuite/libgomp.fortran/reduction4.f90: New test.
11170 2005-10-13  Richard Henderson  <rth@redhat.com>
11172         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
11173         * Makefile.in: Regenerate.
11174         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
11175         * libgomp.h: Include bar.h.
11176         (struct gomp_barrier): Remove.
11177         (struct gomp_team): Add barrier.  Replace master_barrier with
11178         master_release.  Replace threads with ordered_release.
11179         (struct gomp_thread): Replace barrier with release.
11180         * ordered.c (gomp_ordered_first): Update for ordered_release change.
11181         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
11182         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
11183         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
11184         (GOMP_single_copy_end): Likewise.
11185         * team.c (gomp_threads_dock): New.
11186         (gomp_barrier_init, gomp_barrier_destroy): Remove.
11187         (gomp_thread_start): Use gomp_barrier_wait.
11188         (new_team, free_team): Update for gomp_team changes.
11189         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
11190         (gomp_team_end): Use gomp_barrier_wait.
11191         (initialize_team): Update for gomp_thread changes.
11192         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
11193         (gomp_work_share_end_nowait): Use atomic ops when available.
11194         * config/linux/bar.c, config/linux/bar.h: New files.
11195         * config/posix/bar.c, config/posix/bar.h: New files.
11197 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
11199         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
11200         * testsuite/libgomp.dg/single-2.c: New test.
11202         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
11203         lang_link_flags): Unset, so that they aren't inherited from previously
11204         sourced *.exp.
11206         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
11208 2005-10-12  Richard Henderson  <rth@redhat.com>
11210         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
11211         (libgomp_init): Use lang_test_file, lang_library_path, and
11212         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
11214         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
11215         (lang_test_file, lang_link_flags): New.
11216         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
11218         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
11219         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
11220         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
11221         testsuite/libgomp.c++/parallel-1.C,
11222         testsuite/libgomp.c++/reduction-1.C,
11223         testsuite/libgomp.c++/reduction-2.C,
11224         testsuite/libgomp.c++/reduction-3.C,
11225         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
11226         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
11227         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
11228         New files, largely cribbed from the C testsuite.
11230 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
11232         * testsuite/libgomp.fortran/character1.f90: New test.
11233         * testsuite/libgomp.fortran/character2.f90: New test.
11235         * testsuite/libgomp.dg/nested-1.c: New test.
11236         * testsuite/libgomp.dg/nested-2.c: New test.
11237         * testsuite/libgomp.fortran/do1.f90: New test.
11238         * testsuite/libgomp.fortran/do2.f90: New test.
11240         * testsuite/libgomp.fortran/reference1.f90: New test.
11242 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
11244         * testsuite/libgomp.dg/reduction-1.c: New test.
11245         * testsuite/libgomp.dg/reduction-2.c: New test.
11246         * testsuite/libgomp.dg/reduction-3.c: New test.
11248 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
11250         * testsuite/libgomp.dg/atomic-1.c: New test.
11251         * testsuite/libgomp.dg/atomic-2.c: New test.
11253 2005-10-09  Richard Henderson  <rth@redhat.com>
11255         * critical.c (atomic_lock): New.
11256         (initialize_critical): Initialize it.
11257         (GOMP_atomic_start, GOMP_atomic_end): New.
11258         * libgomp.map: Export them.
11259         * libgomp_g.h: Declare them.
11261         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
11263 2005-10-02  Richard Henderson  <rth@redhat.com>
11265         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
11266         to XCFLAGS instead of CFLAGS.
11268 2005-09-30  Richard Henderson  <rth@redhat.com>
11270         * configure.ac: Determine whether -pthread or -lpthread is needed.
11271         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
11272         * Makefine.in, configure: Rebuild.
11274 2005-09-28  Richard Henderson  <rth@redhat.com>
11276         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
11277         * testsuite/libgomp.dg/omp-single-3.c: New test.
11279 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
11281         * testsuite/libgomp.dg/omp-single-2.c: New test.
11282         * testsuite/libgomp.dg/shared-2.c: Fix return code.
11284 2005-09-27  Richard Henderson  <rth@redhat.com>
11286         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
11287         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
11289 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
11291         * testsuite/libgomp.dg/omp-loop03.c: New test.
11293 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
11295         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
11297 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
11299         * testsuite/libgomp.dg/omp-single-1.c: New test.
11300         * testsuite/libgomp.dg/shared-1.c: Return 0.
11301         Add prototype for abort.
11302         * testsuite/libgomp.dg/shared-2.c: Likewise.
11304 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
11306         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
11307         constructs.
11309 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
11311         * testsuite/libgomp.dg/shared-1.c: New test.
11312         * testsuite/libgomp.dg/shared-2.c: New test.
11314 2005-09-24  Richard Henderson  <rth@redhat.com>
11316         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
11318 2005-09-24  Richard Henderson  <rth@redhat.com>
11320         * iter.c (gomp_iter_static_next): Round up when computing number
11321         of iterations.  Don't bother distributing a remainder equally.
11323         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
11324         Don't call srand.  Zero b before testing.
11325         (main): New.
11327 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
11329         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
11330         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
11332 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
11334         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
11335         without !$omp end do, followed immediately by subroutine end.
11337 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
11339         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
11341 2005-09-22  Richard Henderson  <rth@redhat.com>
11343         * critical.c (GOMP_critical_name_start): Change argument to void**.
11344         Reuse the pointer space if the mutex fits.
11345         (GOMP_critical_name_end): Likewise.
11346         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
11347         * libgomp_g.h (GOMP_critical_name_start): Update decl.
11348         (GOMP_critical_name_end): Likewise.
11349         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
11350         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
11352 2005-09-20  Richard Henderson  <rth@redhat.com>
11354         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
11355         (create_lock_lock): New.
11356         (initialize_critical): Initialize it.
11357         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
11358         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
11360 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
11362         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
11364 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
11366         * testsuite/libgomp.dg/omp-loop01.c: New test.
11367         * testsuite/libgomp.dg/omp-loop02.c: New test.
11369 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
11371         * configure.ac (AC_PROG_FC): Add.
11372         (USE_FORTRAN): New automake conditional.
11373         * configure: Rebuilt.
11374         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
11375         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
11376         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
11377         Add rules to build them.
11378         * Makefile.in: Rebuilt.
11379         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
11380         OMP_NEST_LOCK_KIND.
11381         * libgomp.map: Add Fortran wrappers.
11382         * libgomp_f.h.in: New file.
11383         * omp_lib.h.in: New file.
11384         * omp_lib.f90.in: New file.
11385         * fortran.c: New file.
11386         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
11387         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
11388         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
11389         libgfortran has been built.
11390         * testsuite/libgomp.fortran/fortran.exp: New file.
11391         * testsuite/libgomp.fortran/omp_cond1.f: New test.
11392         * testsuite/libgomp.fortran/omp_cond2.f: New test.
11393         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
11394         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
11395         * testsuite/libgomp.fortran/omp_hello.f: New test.
11396         * testsuite/libgomp.fortran/omp_orphan.f: New test.
11397         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
11398         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
11399         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
11400         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
11401         * testsuite/libgomp.fortran/omp_reduction.f: New test.
11402         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
11403         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
11405 2005-08-30  Richard Henderson  <rth@redhat.com>
11407         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
11408         function for when aliases are not usable.
11409         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
11410         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
11411         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
11412         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
11413         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
11414         GOMP_loop_ordered_guided_next): Likewise.
11415         * ordered.c (GOMP_ordered_start): Likewise.
11417 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
11419         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
11420         * testsuite/libgomp.dg/omp_hello.c: Fix return code
11421         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
11422         * testsuite/libgomp.dg/omp_orphan.c: Likewise
11423         * testsuite/libgomp.dg/omp_reduction.c: Likewise
11424         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
11425         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
11426         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
11427         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
11429 2005-07-07  Eric Christopher  <echristo@redhat.com>
11430             Diego Novillo  <dnovillo@redhat.com>
11432         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
11433         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
11434         up code.
11435         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
11436         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
11437         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
11438         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
11439         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
11440         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
11441         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
11443 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
11445         * TOPLEVEL.patch: Remove.
11447 2005-05-16  Richard Henderson  <rth@redhat.com>
11449         * configure.ac: Test for clock_gettime.
11450         * config.h.in, configure: Rebuild.
11451         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
11452         (omp_get_wtime): Use clock_gettime if available.
11453         (omp_get_wtick): Use clock_getres if available.
11455 2005-05-11  Richard Henderson  <rth@redhat.com>
11457         * config/linux/ia64/futex.h: New file.
11458         * configure.tgt: Use it.
11460         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
11462 2005-05-07  Richard Henderson  <rth@redhat.com>
11464         * config/linux/powerpc/futex.h: New file.
11465         * configure.tgt: Use it.
11467         * config/linux/i486/futex.h: Merge ...
11468         * config/linux/x86_64/futex.h: ... into ...
11469         * config/linux/x86/futex.h: ... here.
11470         * configure.tgt: Update to match.
11472 2005-05-06  Richard Henderson  <rth@redhat.com>
11474         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
11475         * config/linux/i486/futex.h: Likewise.
11476         * config/linux/x86_64/futex.h: Likewise.
11478         * config/linux/lock.c: New file.
11479         * config/linux/omp-lock.h: New file.
11481         * critical.c, env.h: Don't include omp.h
11482         * config/posix/lock.c: Include libgomp.h instead of omp.h.
11483         * config/posix/time.c: Likewise.
11484         * config/posix/omp-lock.h: New file.
11485         * libgomp.h: Include omp-lock.h and omp.h.
11486         * Makefile.am (nodist_include_HEADERS): New.
11487         (omp.h): New rule.
11488         * configure.ac (PERL): New.
11489         * mkomp_h.pl: New file.
11490         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
11491         with templates.
11492         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
11494         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
11495         build directory.  Re-add -march=i486 hack.
11497         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
11498         (libgomp_link_flags): Remove.
11499         (libgomp_initialized): Remove.
11500         (libgomp_init): Don't protect from reinitialization.  Copy code
11501         from libstdc++ for getting the multilib set correctly.
11503 2005-05-05  Richard Henderson  <rth@redhat.com>
11505         * config/linux/alpha/futex.h: New file.
11506         * configure.tgt (alpha*-*-linux*): Use it.
11508         * config/posix/mutex.c: New file.
11509         * config/posix/sem.c: Use libgomp.h.
11511         * configure.tgt (x86_64-linux): Also test CC for -m32.
11512         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
11514         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
11515         after $gccpath.
11517         * Makefile.am (SUBDIRS): New.
11518         (libgomp_la_LDFLAGS): Add -lpthread.
11519         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
11520         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
11522         * libgomp_g.h: New file.
11523         * libgomp.h: Split out all public declarations to libgomp_g.h.
11524         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
11525         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
11526         * config/linux/sem.h: Likewise.
11527         * config/posix/sem.h: Likewise.
11529         * Makefile.am (AM_LDFLAGS): New.
11530         (libgomp_version_script): Split out from ...
11531         (libgomp_la_LDFLAGS): ... here.
11532         (libgomp_version_info): New.
11533         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
11534         (LIBGOMP_ENABLE): New.
11535         (LIBGOMP_CHECK_LINKER_FEATURES): New.
11536         (LIBGOMP_ENABLE_SYMVERS): New.
11537         * configure.ac (AC_INIT): Version 1.0.
11538         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
11539         (enable-linux-futex): Likewise.  Rename from enable-futex.
11540         (libtool_VERSION): New.
11541         (LIBGOMP_ENABLE_SYMVERS): Use it.
11542         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
11543         * Makefile.in, aclocal.m4, configure: Rebuild.
11545         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
11546         (gomp_mutex_unlock_slow): Fix typo.
11547         * config/linux/sem.c: Similarly.
11548         (gomp_sem_post_slow): Fix typo.
11549         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
11550         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
11551         [__PIC__] (sys_futex0): Don't use tmp output in asm.
11553         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
11554         (libgomp_la_LDFLAGS): Add top_srcdir to path.
11555         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
11556         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
11557         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
11558         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
11559         LDFLAGS.  Pull enable_futex check to top-level.
11560         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
11561         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
11563         First attempt at real configury.
11564         * Makefile, config.h: Remove file.
11565         * Makefile.am, Makefile.in: New file.
11566         * acinclude.m4 aclocal.m4: New file.
11567         * configure.ac, configure.tgt, configure: New file.
11569         * config/posix/lock.c: Rename from sys-lock.c.
11570         * config/posix/mutex.h: Rename from sys-mutex.h.
11571         * config/posix/sem.c: Rename from sys-sem.c.
11572         * config/posix/sem.h: Rename from sys-sem.h.
11573         * config/posix/proc.c: Rename from sys-proc.c.
11574         * config/posix/time.c: Rename from sys-proc.c.
11576         * config/linux/mutex.c: New file.
11577         * config/linux/mutex.h: New file.
11578         * config/linux/sem.c: New file.
11579         * config/linux/sem.h: New file.
11580         * config/linux/i486/futex.h: New file.
11581         * config/linux/x86_64/futex.h: New file.
11583 2005-05-04  Richard Henderson  <rth@redhat.com>
11585         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
11586         * libgomp.h: Declare them.
11587         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
11588         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
11590 2005-05-04  Richard Henderson  <rth@redhat.com>
11592         * libgomp-1 code drop
11594 2005-05-04  Richard Henderson  <rth@redhat.com>
11596         * iter.c (gomp_iter_static_next): Return tri-state on 0.
11597         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
11598         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
11599         (gomp_iter_static_next): Update.
11600         (gomp_ordered_static_next): Update.
11601         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
11602         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
11603         totally empty range.
11604         (gomp_loop_ordered_static_next): Refine test for calling
11605         gomp_ordered_static_next.
11606         * testsuite/ordered-1.c: Add case for more threads than iterations.
11608         * iter.c (gomp_iter_runtime_next_locked): Remove.
11609         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
11610         gomp_loop_guided_start, gomp_loop_ordered_static_start,
11611         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
11612         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
11613         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
11614         gomp_loop_ordered_guided_next): Downcase name, make static, add
11615         an external alias with the old name.
11616         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
11617         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
11618         switch and call one of the above static functions.
11619         * libgomp.h: Update.
11621         * work.c (gomp_work_share_start): Lock the mutex for !first too.
11622         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
11623         GOMP_loop_guided_start, GOMP_loop_runtime_start,
11624         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
11625         GOMP_loop_ordered_guided_start): Update to match.
11626         * sections.c (GOMP_sections_start): Likewise.
11627         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
11629         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
11630         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
11631         Use bounds check instead of modulus.
11632         (gomp_ordered_sync): Split out of GOMP_ordered_start.
11633         (gomp_ordered_last): Don't sync with ordered_owner here.
11634         (gomp_ordered_next): Likewise.
11635         (gomp_ordered_static_loop_next): Likewise.
11636         * loop.c, libgomp.h: Update to match.
11638         * libgomp.h (GOMP_barrier): Declare.
11640         * testsuite/barrier-1.c: New file.
11641         * testsuite/critical-1.c: New file.
11642         * testsuite/ordered-2.c: New file.
11643         * testsuite/ordered-1.c: New file.
11644         * testsuite/sections-1.c: New file.
11645         * testsuite/single-1.c: New file.
11646         * testsuite/Makefile (TESTS): Add them.
11648 2005-05-04  Richard Henderson  <rth@redhat.com>
11650         * libgomp.h (struct gomp_work_share): Add ordered_owner.
11651         * loop.c (GOMP_loop_static_start): If not the startup thread,
11652         acquire the mutex to wait for initialization complete.
11653         (GOMP_loop_ordered_static_start): Likewise.
11654         (GOMP_loop_ordered_runtime_start): Likewise.
11655         (GOMP_loop_ordered_static_first): Remove.
11656         (GOMP_loop_ordered_dynamic_first): Remove.
11657         (GOMP_loop_ordered_guided_first): Remove.
11658         (GOMP_loop_ordered_runtime_first): Remove.
11659         * ordered.c (gomp_ordered_loop_first): Post to own release when
11660         we're the first thread.
11661         (gomp_ordered_loop_last): Wait on release if not owner.
11662         (gomp_ordered_loop_next): Likewise.
11663         (gomp_ordered_static_loop_init): New.
11664         (gomp_ordered_static_loop_next): Use ordered_owner.
11665         (GOMP_ordered_start): Likewise.
11666         * work.c (gomp_new_work_share): Initialize ordered_owner.
11668 2005-05-03  Richard Henderson  <rth@redhat.com>
11670         * Makefile (OPT): New.
11671         (CFLAGS): Use it.
11673         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
11674         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
11675         * libgomp.h, libgomp.map, NOTES: Update to match.
11677         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
11678         Add initialized and thr members.
11679         (gomp_thread_start): Pause when initially spawned to wait for
11680         the whole team to be created.
11681         (gomp_team_start): Release team members at the end.
11683         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
11684         (f_foo_1): Use GOMP_loop_end.
11685         (f_foo_2): Use GOMP_loop_end_nowait.
11687         * testsuite/loop-2.c: New file.
11688         * testsuite/Makefile (TESTS): Add it.
11690 2005-05-03  Richard Henderson  <rth@redhat.com>
11692         * iter.c (gomp_iter_static_next): Fix overflow check typo.
11693         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
11694         * team.c (new_team): Initialize oldest_live_gen to 1 if no
11695         initial work_share.
11697         * testsuite/Makefile: New file.
11698         * testsuite/loop-1.c: New file.
11700 2005-05-03  Richard Henderson  <rth@redhat.com>
11702         Initial implementation and checkin.
11704 Copyright (C) 2005-2019 Free Software Foundation, Inc.
11706 Copying and distribution of this file, with or without modification,
11707 are permitted in any medium without royalty provided the copyright
11708 notice and this notice are preserved.