Set the call nothrow flag more often
[official-gcc.git] / libgomp / ChangeLog
blob434cca71f9dc1983115fc4e930de37af80ea409b
1 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
3         PR c/81687
4         * testsuite/libgomp.c/pr81687-1.c: New test.
5         * testsuite/libgomp.c/pr81687-2.c: New test.
7 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
9         PR c/69389
10         * testsuite/libgomp.c/pr69389.c: New test.
11         * testsuite/libgomp.c++/pr69389.C: New test.
13 2017-08-07  Tom de Vries  <tom@codesourcery.com>
15         PR middle-end/78266
16         * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
17         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
19 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
21         PR c/45784
22         * testsuite/libgomp.c/pr45784.c: New test.
23         * testsuite/libgomp.c++/pr45784.C: New test.
25 2017-07-19  Tom de Vries  <tom@codesourcery.com>
27         * testsuite/libgomp.oacc-c/vec.c: New test.
29 2017-07-03  Tom de Vries  <tom@codesourcery.com>
31         * plugin/plugin-hsa.c: Fix secure_getenv.h include.
33 2017-06-27  Tom de Vries  <tom@codesourcery.com>
35         * plugin/plugin-nvptx.c (notify_var): New function.
36         (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.
38 2017-06-27  Tom de Vries  <tom@codesourcery.com>
40         * env.c (parse_unsigned_long_1): Factor out of ...
41         (parse_unsigned_long): ... here.
42         (parse_int_1): Factor out of ...
43         (parse_int): ... here.
44         (parse_int_secure): New function.
45         (initialize_env): Use parse_int_secure for GOMP_DEBUG.
46         * secure_getenv.h: Factor out of ...
47         * plugin/plugin-hsa.c: ... here.
48         * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.
50 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
52         PR c++/81130
53         * testsuite/libgomp.c++/pr81130.C: New test.
55 2017-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
57         * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
58         default args.
59         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
60         dg-xfail-run-if default args.
62 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
64         * testsuite/libgomp.c/pr39591-2.c: Fix test case.
65         * testsuite/libgomp.c/pr39591-3.c: Likewise.
67 2017-05-30  Jakub Jelinek  <jakub@redhat.com>
69         PR libgomp/80822
70         * config/linux/affinity.c (gomp_affinity_init_level_1): New function.
71         (gomp_affinity_init_level): Use it.  Always analyze the core and thread
72         sibling lists, depending on level just pick up what CPUs to put
73         together into a place vs. whether add multiple ordered places.
75 2017-05-24  Thomas Schwinge  <thomas@codesourcery.com>
77         * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
78         * libgomp.map (OACC_2.0.1): Add these.
79         * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
80         for "acc_wait", and "acc_wait_all", respectively.
81         * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
82         for "acc_wait", and "acc_wait_all", respectively.
83         * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
84         * libgomp.texi (acc_wait, acc_wait_all): Update.
85         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
86         * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
87         * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
89         * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
90         acc_present_or_copyin and acc_present_or_create procedures,
91         respectively.
92         * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
93         generally different variants of OpenACC Runtime Library functions.
94         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
96         * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
97         * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
99         * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
100         of preprocessor definitions.
101         * libgomp.h (strong_alias): Guard by "#ifdef
102         HAVE_ATTRIBUTE_ALIAS".
103         * oacc-mem.c: Provide "acc_pcreate" as alias for
104         "acc_present_or_create", and "acc_pcopyin" as alias for
105         "acc_present_or_copyin".
106         * libgomp.map: New version "OACC_2.0.1".
107         (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
108         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
109         its content into...
110         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
111         Extend testing.
113         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
114         when disabling nvptx offloading.
116 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
118         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
119         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
120         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
122         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
123         * testsuite/lib/libgomp.exp
124         (check_effective_target_openacc_nvidia_accel_configured): New
125         proc.
126         * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
127         (check_effective_target_c++): New procs.
128         * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
129         (check_effective_target_c++): Likewise.
131 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
133         PR middle-end/80809
134         * testsuite/libgomp.c/pr80809-2.c: New test.
135         * testsuite/libgomp.c/pr80809-3.c: New test.
137         PR middle-end/80809
138         * testsuite/libgomp.c/pr80809-1.c: New test.
140         PR middle-end/80853
141         * testsuite/libgomp.c/pr80853.c: New test.
143 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
145         * testsuite/libgomp.oacc-c++/template-reduction.C: Update.
146         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
147         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
148         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
149         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
151         * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
152         Debug output for failure.
154 2017-05-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
156         * testsuite/lib/libgomp.exp: Load scanlang.exp.
158 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
160         PR bootstrap/80531
161         * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
162         bootstrap compare failures.
164 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
166         * testsuite/libgomp.c/target-36.c: New testcase.
168 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
170         * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type
171         instead of char.
173 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
175         PR libgomp/80394
176         * testsuite/libgomp.c/pr80394.c: New test.
178 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
180         PR libgomp/79876
181         * config/posix/thread-stacksize.h: New file.
182         * config/darwin/thread-stacksize.h: New file.
183         * config/nvptx/thread-stacksize.h: New file.
184         * env.c: Include thread-stacksize.h.
185         (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
186         instead of 0.  Call pthread_attr_setstacksize even if
187         GOMP_DEFAULT_STACKSIZE is non-zero.
189 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
191         * env.c (initialize_env): Initialize stacksize to 0.
193 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
195         PR c++/80029
196         * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.
198 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
200         PR c/79940
201         * testsuite/libgomp.c/pr79940.c: New test.
203 2017-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
205         * testsuite/libgomp.c/pr48591.c: Enable on all __float128
206         targets.
207         Add __float128 options.
209 2017-02-11  John David Anglin  <danglin@gcc.gnu.org>
211         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove
212         hppa*-*-* dg-skip-if directive.
214 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
216         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move
217         dg-skip-if directive into a comment.
219 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
220             Chung-Lin Tang  <cltang@codesourcery.com>
222         * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
223         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
224         add additional case.
225         * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
226         "openacc_nvidia_accel_selected".
227         * libgomp.oacc-fortran/nested-function-1.f90 (test2):
228         Add num_workers(8) clause.
230 2017-02-08  John David Anglin  <danglin@gcc.gnu.org>
232         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on
233         hppa*-*-*.
234         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't
235         include complex.h on hppa*-*-hpux*.
236         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
238 2017-02-02  Thomas Schwinge  <thomas@codesourcery.com>
240         * plugin/plugin-nvptx.c (nvptx_exec): Make it static.
242         * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
243         GOMP_OFFLOAD_openacc_exec.  Adjust all users.
244         (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
245         GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
246         (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
247         GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
248         (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
249         GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
250         (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
251         GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.
253 2017-01-31  Thomas Schwinge  <thomas@codesourcery.com>
255         * libgomp-plugin.h: #include <stdbool.h>.
256         (GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
257         (GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
258         (GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
259         (GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
260         (GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
261         (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
262         (GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
263         (GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
264         (GOMP_OFFLOAD_openacc_register_async_cleanup)
265         (GOMP_OFFLOAD_openacc_async_test)
266         (GOMP_OFFLOAD_openacc_async_test_all)
267         (GOMP_OFFLOAD_openacc_async_wait)
268         (GOMP_OFFLOAD_openacc_async_wait_async)
269         (GOMP_OFFLOAD_openacc_async_wait_all)
270         (GOMP_OFFLOAD_openacc_async_wait_all_async)
271         (GOMP_OFFLOAD_openacc_async_set_async)
272         (GOMP_OFFLOAD_openacc_create_thread_data)
273         (GOMP_OFFLOAD_openacc_destroy_thread_data)
274         (GOMP_OFFLOAD_openacc_get_current_cuda_device)
275         (GOMP_OFFLOAD_openacc_get_current_cuda_context)
276         (GOMP_OFFLOAD_openacc_get_cuda_stream)
277         (GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
278         * libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
279         these.
280         * plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
281         (GOMP_OFFLOAD_unload_image): Fix argument types.
283 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
285         * testsuite/lib/libgomp.exp
286         (check_effective_target_hsa_offloading_selected_nocache): Fix up
287         check_compile invocation.  Fix up removal of executable.  Drop
288         bogus "2>&1" argument.
290         * testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules
291         directive.
293 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
294             Martin Jambor  <mjambor@suse.cz>
296         * plugin/hsa.h: Moved to top level include.
297         * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
299 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
301         PR other/79046
302         * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
303         of cat to get version from BASE-VER file.
304         * testsuite/Makefile.in: Regenerated.
306 2017-01-19  Jakub Jelinek  <jakub@redhat.com>
308         * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
309         for _WIN64.
311 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
313         * plugin/hsa.h: Add GCC runtime library exception.
314         * plugin/hsa_ext_finalize.h: Likewise.
316         * plugin/configfrag.ac: For --without-cuda-driver don't initialize
317         CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.  If both
318         CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
319         cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
320         plugin/include/cuda as include dir and -ldl instead of -lcuda as
321         library to link ptx plugin against.
322         * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
323         (CUDA_CALLS): Define.
324         (cuda_lib, cuda_lib_inited): New variables.
325         (init_cuda_lib): New function.
326         (CUDA_CALL_PREFIX): Define.
327         (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
328         (CUDA_CALL): Use FN instead of (FN).
329         (CUDA_CALL_NOCHECK): Define.
330         (cuda_error, fini_streams_for_device, select_stream_for_async,
331         nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
332         event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
333         nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
334         nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
335         CUDA_CALL_NOCHECK.
336         (nvptx_init): Call init_cuda_lib, if it fails, return false.  Use
337         CUDA_CALL_NOCHECK.
338         (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
339         Use CUDA_CALL_NOCHECK.
340         * plugin/cuda/cuda.h: New file.
341         * config.h.in: Regenerated.
342         * configure: Regenerated.
344         PR other/79046
345         * configure.ac: Add GCC_BASE_VER.
346         * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
347         get version from BASE-VER file.
348         * testsuite/Makefile.in: Regenerated.
349         * configure: Regenerated.
350         * Makefile.in: Regenerated.
352 2017-01-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
354         PR libgomp/60670
355         * Makefile.am: Make fincludedir multilib-aware.
356         * Makefile.in: Regenerate.
358 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
360         Update copyright years.
362         * libgomp.texi: Bump @copying's copyright year.
364 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
366         * libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
367         pthread_spinlock_t instead of gomp_mutex_t lock.
368         (gomp_get_thread_pool): Likewise.
369         (gomp_release_thread_pool): Likewise.
370         * libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
371         Likewise.
373 2016-12-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
375         * config/rtems/pool.h (gomp_get_thread_pool): Return proper
376         thread pool in case nthreads == 1.
378 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
380         * config/nvptx/env.c: Delete.
381         * icv.c: Move definitions of ICV variables back ...
382         * env.c: ...here.  Do not compile environment-related functionality if
383         LIBGOMP_OFFLOADED_ONLY is set.
385 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
387         * configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
388         (LIBGOMP_OFFLOADED_ONLY): ...here; new define.
389         * configure: Regenerate.
390         * config.h.in: Likewise.
392 2016-11-30  Alexander Monakov  <amonakov@ispras.ru>
394         * Makefile.in: Regenerate with automake-1.11.6.
395         * aclocal.m4: Likewise.
396         * configure: Likewise.
397         * testsuite/Makefile.in: Likewise.
399 2016-11-28  Alexander Monakov  <amonakov@ispras.ru>
401         * config/nvptx/critical.c: Delete to use generic implementation.
403 2016-11-28  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
405         * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include
406         ../../affinity.c as fallback.
407         * config/nvptx/affinity.c: Delete to use fallback implementation.
409 2016-11-23  Alexander Monakov  <amonakov@ispras.ru>
410             Jakub Jelinek  <jakub@redhat.com>
411             Dmitry Melnik  <dm@ispras.ru>
413         * Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
414         * Makefile.in. Regenerate.
415         * configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
416         (LIBGOMP_USE_PTHREADS): ...here; new define.
417         * configure: Regenerate.
418         * config.h.in: Likewise.
419         * config/posix/affinity.c: Move to...
420         * affinity.c: ...here (new file).  Guard use of Pthreads-specific
421         interface by LIBGOMP_USE_PTHREADS. 
422         * critical.c: Split out GOMP_atomic_{start,end} into...
423         * atomic.c: ...here (new file).
424         * env.c: Split out ICV definitions into...
425         * icv.c: ...here (new file) and...
426         * icv-device.c: ...here. New file.
427         * config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
428         (gomp_destroy_lock_30): Ditto.
429         (gomp_set_lock_30): Ditto.
430         (gomp_unset_lock_30): Ditto.
431         (gomp_test_lock_30): Ditto.
432         (gomp_init_nest_lock_30): Ditto.
433         (gomp_destroy_nest_lock_30): Ditto.
434         (gomp_set_nest_lock_30): Ditto.
435         (gomp_unset_nest_lock_30): Ditto.
436         (gomp_test_nest_lock_30): Ditto.
437         * lock.c: New.
438         * config/nvptx/lock.c: New.
439         * config/nvptx/bar.c: New.
440         * config/nvptx/bar.h: New.
441         * config/nvptx/doacross.h: New.
442         * config/nvptx/error.c: New.
443         * config/nvptx/icv-device.c: New.
444         * config/nvptx/mutex.h: New.
445         * config/nvptx/pool.h: New.
446         * config/nvptx/proc.c: New.
447         * config/nvptx/ptrlock.h: New.
448         * config/nvptx/sem.h: New.
449         * config/nvptx/simple-bar.h: New.
450         * config/nvptx/target.c: New.
451         * config/nvptx/task.c: New.
452         * config/nvptx/team.c: New.
453         * config/nvptx/time.c: New.
454         * config/posix/simple-bar.h: New.
455         * libgomp.h: Guard pthread.h inclusion.  Include simple-bar.h.
456         (gomp_num_teams_var): Declare.
457         (struct gomp_thread_pool): Change threads_dock member to
458         gomp_simple_barrier_t.
459         [__nvptx__] (gomp_thread): New implementation.
460         (gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
461         (gomp_thread_destructor): Ditto.
462         (gomp_init_thread_affinity): Ditto.
463         * team.c: Guard uses of Pthreads-specific interfaces by
464         LIBGOMP_USE_PTHREADS.  Adjust all uses of threads_dock.
465         (gomp_free_thread) [__nvptx__]: Do not call 'free'.
466         * config/nvptx/alloc.c: Delete.
467         * config/nvptx/barrier.c: Ditto.
468         * config/nvptx/fortran.c: Ditto.
469         * config/nvptx/iter.c: Ditto.
470         * config/nvptx/iter_ull.c: Ditto.
471         * config/nvptx/loop.c: Ditto.
472         * config/nvptx/loop_ull.c: Ditto.
473         * config/nvptx/ordered.c: Ditto.
474         * config/nvptx/parallel.c: Ditto.
475         * config/nvptx/priority_queue.c: Ditto.
476         * config/nvptx/sections.c: Ditto.
477         * config/nvptx/single.c: Ditto.
478         * config/nvptx/splay-tree.c: Ditto.
479         * config/nvptx/work.c: Ditto.
480         * testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
481         -foffload=-lgfortran in addition to -lgfortran.
482         * testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.
483         * plugin/plugin-nvptx.c: Include <limits.h>.
484         (struct targ_fn_descriptor): Add new fields.
485         (struct ptx_device): Ditto.  Set them...
486         (nvptx_open_device): ...here.
487         (nvptx_adjust_launch_bounds): New.
488         (nvptx_host2dev): Allow NULL 'nvthd'.
489         (nvptx_dev2host): Ditto.
490         (GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
491         (link_ptx): Adjust log sizes.
492         (nvptx_host2dev): Allow NULL 'nvthd'.
493         (nvptx_dev2host): Ditto.
494         (nvptx_set_clocktick): New.  Use it...
495         (GOMP_OFFLOAD_load_image): ...here.  Set new targ_fn_descriptor
496         fields.
497         (GOMP_OFFLOAD_dev2dev): New.
498         (nvptx_adjust_launch_bounds): New.
499         (nvptx_stacks_size): New.
500         (nvptx_stacks_alloc): New.
501         (nvptx_stacks_free): New.
502         (GOMP_OFFLOAD_run): New.
503         (GOMP_OFFLOAD_async_run): New (stub).
505 2016-11-23  Martin Jambor  <mjambor@suse.cz>
507         * testsuite/libgomp.hsa.c/bits-insns.c: New test.
508         * testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
509         * testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
511 2016-11-23  Martin Liska  <mliska@suse.cz>
512             Martin Jambor  <mjambor@suse.cz>
514         * plugin/hsa.h: New file.
515         * plugin/hsa_ext_finalize.h: New file.
516         * plugin/configfrag.ac: Remove hsa-kmt-lib test.  Added checks for
517         header file unistd.h, and functions secure_getenv, __secure_getenv,
518         getuid, geteuid, getgid and getegid.
519         * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added
520         -D_GNU_SOURCE.
521         * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h.
522         Handle various cases of secure_getenv presence, add an implementation
523         when we can test effective UID and GID.
524         (struct hsa_runtime_fn_info): New structure.
525         (hsa_runtime_fn_info hsa_fns): New variable.
526         (hsa_runtime_lib): Likewise.
527         (support_cpu_devices): Likewise.
528         (init_enviroment_variables): Load newly introduced ENV
529         variables.
530         (hsa_warn): Call hsa run-time functions via hsa_fns structure.
531         (hsa_fatal): Likewise.
532         (DLSYM_FN): New macro.
533         (init_hsa_runtime_functions): New function.
534         (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns
535         structure.  Depending on environment, also allow CPU devices.
536         (init_hsa_context): Call hsa run-time functions via hsa_fns structure.
537         (get_kernarg_memory_region): Likewise.
538         (GOMP_OFFLOAD_init_device): Likewise.
539         (destroy_hsa_program): Likewise.
540         (init_basic_kernel_info): New function.
541         (GOMP_OFFLOAD_load_image): Use it.
542         (create_and_finalize_hsa_program): Call hsa run-time functions via
543         hsa_fns structure.
544         (create_single_kernel_dispatch): Likewise.
545         (release_kernel_dispatch): Likewise.
546         (init_single_kernel): Likewise.
547         (parse_target_attributes): Allow up multiple HSA grid dimensions.
548         (get_group_size): New function.
549         (run_kernel): Likewise.
550         (GOMP_OFFLOAD_run): Outline most functionality to run_kernel.
551         (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns
552         structure.
553         * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support.
554         * testsuite/libgomp-test-support.exp.in: Likewise.
555         * Makefile.in: Regenerated.
556         * aclocal.m4: Likewise.
557         * config.h.in: Likewise.
558         * configure: Likewise.
559         * testsuite/Makefile.in: Likewise.
561 2016-11-15  Martin Jambor  <mjambor@suse.cz>
562             Alexander Monakov  <amonakov@ispras.ru>
564         * testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
565         mapping clauses to target constructs.
566         * testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
568 2016-11-15  Matthias Klose  <doko@ubuntu.com>
570         * configure: Regenerate.
572 2016-11-10  Jakub Jelinek  <jakub@redhat.com>
574         * omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
575         * omp_lib.h.in (openmp_version): Likewise.
576         * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
577         of 201307.
578         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
580         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90
581         (fib_wrapper): Add map(from: x) clause.
582         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90
583         (e_53_2): Likewise.
584         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90
585         (accum): Add map(tmp) clause.
586         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90
587         (accum): Add map(tofrom: tmp) clause.
588         * testsuite/libgomp.fortran/examples-4/target_data-3.f90
589         (gramSchmidt): Likewise.
590         * testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
591         map(tofrom: sum) clause.
592         * testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
593         map (alloc: a, l) clause.  Add defaultmap(tofrom: scalar) clause.
594         * testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
595         only allowed on the loop iterator.
596         * testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
597         * testsuite/libgomp.fortran/taskloop2.f90: New test.
598         * testsuite/libgomp.fortran/taskloop4.f90: New test.
599         * testsuite/libgomp.fortran/doacross1.f90: New test.
600         * testsuite/libgomp.fortran/doacross3.f90: New test.
601         * testsuite/libgomp.fortran/taskloop1.f90: New test.
602         * testsuite/libgomp.fortran/taskloop3.f90: New test.
603         * testsuite/libgomp.fortran/doacross2.f90: New test.
604         * testsuite/libgomp.c/doacross-1.c (main): Add missing
605         #pragma omp atomic read.
606         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
607         * testsuite/libgomp.c/doacross-3.c (main): Likewise.
609 2016-11-02  Cesar Philippidis  <cesar@codesourcery.com>
610             Nathan Sidwell  <nathan@acm.org>
612         * plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes
613         to determine default geometry.
614         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang
615         dimension.
617 2016-11-01  Jakub Jelinek  <jakub@redhat.com>
619         * hashtab.h: Use standard GPLv3 with runtime exception
620         boilerplate.
622 2016-10-27  Aldy Hernandez  <aldyh@redhat.com>
624         * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
625         size when allocating new thread.
627 2016-09-14  Marek Polacek  <polacek@redhat.com>
629         * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
631 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
633         PR fortran/71014
634         * testsuite/libgomp.fortran/pr71014.f90: New test.
636 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
638         PR middle-end/70895
639         * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
640         firstprivate clauses.
641         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
642         copy clauses.
643         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
644         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
645         * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
646         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
647         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
648         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
649         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
650         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
651         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
652         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
653         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
654         * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
656 2016-08-14  Chung-Lin Tang  <cltang@codesourcery.com>
658         PR fortran/70598
659         * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.
661 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
663         PR c++/58706
664         * testsuite/libgomp.c++/pr58706.C: New test.
666 2016-08-04  Thomas Schwinge  <thomas@codesourcery.com>
668         * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
669         * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
670         * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
671         Likewise.
672         * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
673         * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
674         Likewise.
675         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
677         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
678         test, and don't hardcode -O0.
680 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
682         * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
684 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
686         * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
687         test.
689 2016-07-03  H.J. Lu  <hongjiu.lu@intel.com>
691         PR middle-end/71734
692         * testsuite/libgomp.fortran/pr71734-1.f90: New test.
693         * testsuite/libgomp.fortran/pr71734-2.f90: Likewise.
695 2016-07-01  Jakub Jelinek  <jakub@redhat.com>
697         PR fortran/71717
698         * testsuite/libgomp.fortran/associate3.f90: New test.
700 2016-06-17  Jakub Jelinek  <jakub@redhat.com>
702         * testsuite/libgomp.c++/target-21.C: New test.
704 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
706         * testsuite/libgomp.c++/target-20.C: New test.
708 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
709             Cesar Philippidis  <cesar@codesourcery.com>
711         PR middle-end/71373
712         * libgomp.oacc-c/nested-function-1.c: New file.
713         * libgomp.oacc-c/nested-function-2.c: Likewise.
714         * libgomp.oacc-fortran/nested-function-1.f90: Likewise.
715         * libgomp.oacc-fortran/nested-function-2.f90: Likewise.
716         * libgomp.oacc-fortran/nested-function-3.f90: Likewise.
718 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
720         PR c/71381
721         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include
722         "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c".
723         * testsuite/libgomp.oacc-fortran/cache-1.f95: New file.
725 2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>
727         * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
728         * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.
730 2016-06-01  Cesar Philippidis  <cesar@codesourcery.com>
732         PR c/70688
733         * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file.
735 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
737         * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
738         instead of invalid schedule(static, 0).
739         * testsuite/libgomp.c/doacross-2.c (main): Likewise.
741 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
743         * oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
744         * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
745         parameter, use to set async stream around call to gomp_unmap_vars,
746         call gomp_unmap_vars() with 'do_copyfrom' set to true.
747         * plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
748         (event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
749         events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
750         (event_add): Add int parameter, initialize 'val' field when
751         adding new ptx_event struct.
752         (nvptx_evec): Adjust event_add() call arguments.
753         (nvptx_host2dev): Likewise.
754         (nvptx_dev2host): Likewise.
755         (nvptx_wait_async): Likewise.
756         (nvptx_wait_all_async): Likewise.
757         (GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
758         pass to event_add() call.
759         * oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
760         parameter.
761         * oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
762         call openacc.register_async_cleanup_func() hook.
763         * oacc-parallel.c (GOACC_parallel_keyed): Likewise.
764         * target.c (gomp_copy_from_async): Delete function.
765         (gomp_map_vars): Remove async_refcount.
766         (gomp_unmap_vars): Likewise.
767         (gomp_load_image_to_device): Likewise.
768         (omp_target_associate_ptr): Likewise.
769         * libgomp.h (struct splay_tree_key_s): Remove async_refcount.
770         (acc_dispatch_t.register_async_cleanup_func): Add int parameter.
771         (gomp_copy_from_async): Remove.
773 2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
775         * target.c (gomp_device_copy): New function.
776         (gomp_copy_host2dev): Likewise.
777         (gomp_copy_dev2host): Likewise.
778         (gomp_free_device_memory): Likewise.
779         (gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
780         (gomp_map_pointer): Likewise.
781         (gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
782         NULL value from alloc_func plugin hook.
783         (gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
784         (gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
785         (gomp_unmap_vars): Likewise.
786         (gomp_update): Adjust to call gomp_copy_dev2host and
787         gomp_copy_host2dev functions.
788         (gomp_unload_image_from_device): Handle false value from
789         unload_image_func plugin hook.
790         (gomp_init_device): Handle false value from init_device_func
791         plugin hook.
792         (gomp_exit_data): Adjust to call gomp_copy_dev2host.
793         (omp_target_free): Adjust to call gomp_free_device_memory.
794         (omp_target_memcpy): Handle return values from host2dev_func,
795         dev2host_func, and dev2dev_func plugin hooks.
796         (omp_target_memcpy_rect_worker): Likewise.
797         (gomp_target_fini): Handle false value from fini_device_func
798         plugin hook.
799         * libgomp.h (struct gomp_device_descr): Adjust return type of
800         init_device_func, fini_device_func, unload_image_func, free_func,
801         dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
802         * oacc-init.c (acc_shutdown_1): Handle false value from
803         fini_device_func plugin hook.
804         * oacc-host.c (host_init_device): Change return type to bool.
805         (host_fini_device): Likewise.
806         (host_unload_image): Likewise.
807         (host_free): Likewise.
808         (host_dev2host): Likewise.
809         (host_host2dev): Likewise.
810         * oacc-mem.c (acc_free): Handle plugin hook fatal error case.
811         (acc_memcpy_to_device): Likewise.
812         (acc_memcpy_from_device): Likewise.
813         (delete_copyout): Add libfnname parameter, handle free_func
814         hook fatal error case.
815         (acc_delete): Adjust delete_copyout call.
816         (acc_copyout): Likewise.
817         (update_dev_host): Move gomp_mutex_unlock to after
818         host2dev/dev2host hook calls.
820         * plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
821         to 'hsa_error_msg', for clarity.
822         (hsa_fatal): Likewise.
823         (hsa_error): New function.
824         (init_hsa_context): Change return type to bool, adjust to return
825         false on error.
826         (GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
827         return value.
828         (GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
829         return false on error.
830         (get_agent_info): Adjust to return NULL on error.
831         (destroy_hsa_program): Change return type to bool, adjust to
832         return false on error.
833         (GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
834         (destroy_module): Change return type to bool, adjust to
835         return false on error.
836         (GOMP_OFFLOAD_unload_image): Likewise.
837         (GOMP_OFFLOAD_fini_device): Likewise.
838         (GOMP_OFFLOAD_alloc): Change to return NULL when called.
839         (GOMP_OFFLOAD_free): Change to return false when called.
840         (GOMP_OFFLOAD_dev2host): Likewise.
841         (GOMP_OFFLOAD_host2dev): Likewise.
842         (GOMP_OFFLOAD_dev2dev): Likewise.
844         * plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
845         (CUDA_CALL): Likewise.
846         (CUDA_CALL_ASSERT): Likewise.
847         (map_init): Change return type to bool, use CUDA_CALL* macros.
848         (map_fini): Likewise.
849         (init_streams_for_device): Change return type to bool, adjust
850         call to map_init.
851         (fini_streams_for_device): Change return type to bool, adjust
852         call to map_fini.
853         (select_stream_for_async): Release stream_lock before calls to
854         GOMP_PLUGIN_fatal, adjust call to map_init.
855         (nvptx_init): Use CUDA_CALL* macros.
856         (nvptx_attach_host_thread_to_device): Change return type to bool,
857         use CUDA_CALL* macros.
858         (nvptx_open_device): Use CUDA_CALL* macros.
859         (nvptx_close_device): Change return type to bool, use CUDA_CALL*
860         macros.
861         (nvptx_get_num_devices): Use CUDA_CALL* macros.
862         (link_ptx): Change return type to bool, use CUDA_CALL* macros.
863         (nvptx_exec): Use CUDA_CALL* macros.
864         (nvptx_alloc): Use CUDA_CALL* macros.
865         (nvptx_free): Change return type to bool, use CUDA_CALL* macros.
866         (nvptx_host2dev): Likewise.
867         (nvptx_dev2host): Likewise.
868         (nvptx_wait): Use CUDA_CALL* macros.
869         (nvptx_wait_async): Likewise.
870         (nvptx_wait_all): Likewise.
871         (nvptx_wait_all_async): Likewise.
872         (nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
873         use CUDA_CALL* macros, adjust call to map_fini.
874         (GOMP_OFFLOAD_init_device): Change return type to bool,
875         adjust code accordingly.
876         (GOMP_OFFLOAD_fini_device): Likewise.
877         (GOMP_OFFLOAD_load_image): Adjust calls to
878         nvptx_attach_host_thread_to_device/link_ptx to handle errors,
879         use CUDA_CALL* macros.
880         (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
881         return code.
882         (GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
883         (GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
884         handle error return.
885         (GOMP_OFFLOAD_dev2host): Likewise.
886         (GOMP_OFFLOAD_host2dev): Likewise.
887         (GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
888         (GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
890 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
892         * oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
893         (acc_free): Likewise.
894         (acc_memcpy_to_device): Likewise.
895         (acc_memcpy_from_device): Likewise.
896         (acc_deviceptr): Likewise.
897         (acc_hostptr): Likewise.
898         (acc_is_present): Likewise.
899         (acc_map_data): Likewise.
900         (acc_unmap_data): Likewise.
901         (present_create_copy): Likewise.
902         (delete_copyout): Likewise.
903         (update_dev_host): Likewise.
904         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
905         * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
906         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
907         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
908         * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
909         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
910         it only runs on nvptx targets.
911         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
912         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
913         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
914         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
915         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
916         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
917         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
918         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
919         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
920         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
921         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
922         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
923         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
924         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
925         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
926         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
927         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
928         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
929         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
930         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
931         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
932         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
933         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
935 2016-05-23  Martin Jambor  <mjambor@suse.cz>
937         * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
939 2016-05-17  Chung-Lin Tang  <cltang@codesourcery.com>
941         * oacc-init.c (acc_init): Remove !cached_base_dev condition on call
942         to gomp_init_targets_once.
943         (acc_set_device_type): Remove !cached_base_dev condition on call to
944         gomp_init_targets_once, move call to before acc_device_lock acquire,
945         to avoid deadlock.
946         (acc_get_device_num): Remove !cached_base_dev condition on call to
947         gomp_init_targets_once.
948         (acc_set_device_num): Likewise.
950 2016-05-16  Martin Jambor  <mjambor@suse.cz>
952         * testsuite/libgomp.hsa.c/complex-align-2.c: New test.
954 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
956         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
957         expected partitioning.
959 2016-04-29  Cesar Philippidis  <cesar@codesourcery.com>
961         PR middle-end/70626
962         * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
963         * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
964         * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.
966 2016-04-21  Alexander Monakov  <amonakov@ispras.ru>
968         * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error
969         non-fatal.
971 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
973         PR middle-end/70680
974         * testsuite/libgomp.c/pr70680-1.c: New test.
975         * testsuite/libgomp.c/pr70680-2.c: New test.
977 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
979         * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
980         pass parameter variables to subroutines.
982 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
984         PR middle-end/70643
985         * testsuite/libgomp.oacc-fortran/pr70643.f90: New test.
987 2016-04-13  Cesar Philippidis  <cesar@codesourcery.com>
989         PR testsuite/68242
990         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test.
991         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
993 2016-04-12  Thomas Schwinge  <thomas@codesourcery.com>
995         * libgomp_g.h: Rename GOACC_parallel_keyd prototype to
996         GOACC_parallel_keyed, restore GOACC_parallel prototype, new
997         GOACC_declare prototype.
999         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
1000         Merge this file, and...
1001         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
1002         ... this file, and...
1003         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
1004         ... this file, and...
1005         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
1006         ... this file, and...
1007         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
1008         ... this file, and...
1009         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
1010         ... this file, and...
1011         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
1012         ... this file, and...
1013         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
1014         ... this file, and...
1015         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
1016         ... this file, and...
1017         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
1018         ... this file, and...
1019         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
1020         ... this file, and...
1021         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
1022         ... this file, and...
1023         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
1024         ... this file into...
1025         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
1026         file.
1028         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
1029         Make failure observable.
1031 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
1033         * libgomp.h (struct gomp_target_task): Remove firstprivate_copies
1034         field.
1035         * target.c (gomp_target_fallback_firstprivate,
1036         gomp_target_unshare_firstprivate): Removed.
1037         (GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory
1038         before waiting for dependencies.
1039         (gomp_target_task_fn): Don't copy firstprivate vars here.
1040         * task.c (GOMP_PLUGIN_target_task_completion): Don't free
1041         firstprivate_copies here.
1042         (gomp_create_target_task): Don't initialize firstprivate_copies field.
1043         * testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of
1044         explicit/implicit firstprivate.
1046 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
1048         PR lto/70289
1049         PR ipa/70348
1050         PR tree-optimization/70373
1051         PR middle-end/70533
1052         PR middle-end/70534
1053         PR middle-end/70535
1054         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New
1055         test.
1056         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New
1057         test.
1058         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New
1059         test.
1060         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New
1061         test.
1062         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New
1063         test.
1064         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New
1065         test.
1066         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New
1067         test.
1068         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New
1069         test.
1070         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New
1071         test.
1072         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test.
1073         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test.
1074         * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test.
1075         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New
1076         test.
1077         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New
1078         test.
1079         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New
1080         test.
1081         * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New
1082         test.
1083         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test
1084         coverage.
1085         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
1086         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
1087         * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test.
1088         * testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test.
1089         * testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test.
1090         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test
1091         coverage.
1092         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
1093         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
1094         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
1095         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
1096         * testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test.
1097         * testsuite/libgomp.oacc-c-c++-common/reduction.h: New test.
1098         * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test.
1099         * testsuite/libgomp.oacc-fortran/pr70289.f90: New test.
1100         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage.
1101         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
1102         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
1103         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
1104         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
1105         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
1106         * testsuite/libgomp.oacc-fortran/reduction-7.f90: New test.
1108 2016-03-30  Thomas Schwinge  <thomas@codesourcery.com>
1109             James Norris  <jnorris@codesourcery.com>
1110             Nathan Sidwell  <nathan@codesourcery.com>
1111             Julian Brown  <julian@codesourcery.com>
1112             Cesar Philippidis  <cesar@codesourcery.com>
1113             Chung-Lin Tang  <cltang@codesourcery.com>
1114             Tom de Vries  <tom@codesourcery.com>
1116         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update.
1117         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
1118         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
1119         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise.
1120         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
1121         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
1122         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
1123         * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
1124         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
1125         XFAIL.
1126         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
1127         Incorporate...
1128         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this
1129         file.
1130         * testsuite/libgomp.oacc-c++/template-reduction.C: New file.
1131         * testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise.
1132         * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise.
1133         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c:
1134         Likewise.
1135         * testsuite/libgomp.oacc-c-c++-common/private-variables.c:
1136         Likewise.
1137         * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
1138         * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise.
1139         * testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
1140         * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise.
1141         * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
1142         * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
1143         * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
1144         * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
1145         * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
1146         * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90:
1147         Likewise.
1148         * testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise.
1149         * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
1150         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this
1151         file...
1152         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this
1153         file into...
1154         * testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new
1155         file.  Update.
1156         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New
1157         file.
1158         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c:
1159         Likewise.
1160         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to...
1161         * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c:
1162         ... this new file.  Update.
1163         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to...
1164         * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c:
1165         ... this new file.  Update.
1166         * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New
1167         file.  Incorporate...
1168         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this
1169         file, and...
1170         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this
1171         file, and...
1172         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this
1173         file.
1174         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file.
1176 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
1178         * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call
1179         set-torture-options.
1181 2016-03-24  Thomas Schwinge  <thomas@codesourcery.com>
1183         * testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use
1184         gcc-dg-runtest.
1185         * testsuite/libgomp.oacc-c/c.exp: Likewise.
1186         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify
1187         -fno-builtin-acc_on_device instead of -O0.
1188         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for
1189         -O0.
1190         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
1191         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c:
1192         Likewise.
1193         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
1194         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
1195         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
1196         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
1197         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
1198         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
1199         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
1200         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
1201         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
1202         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
1203         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
1204         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
1205         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
1206         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
1207         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
1208         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
1209         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
1210         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
1211         Don't specify -O2.
1212         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
1213         Likewise.
1214         * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
1215         Likewise.
1217 2016-03-24  Martin Liska  <mliska@suse.cz>
1219         * plugin/plugin-hsa.c (packet_store_release): New function
1220         that is taken from the HSA runtime manual.
1221         (GOMP_OFFLOAD_run): Use the function.
1223 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
1225         PR c++/70376
1226         * testsuite/libgomp.c++/pr70376.C: New test.
1228 2016-03-23  Tom de Vries  <tom@codesourcery.com>
1230         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing
1231         initialization of lresult and lvresult.
1232         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Same.
1234 2016-03-23  James Norris  <jnorris@codesourcery.com>
1235             Daichi Fukuoka <dc-fukuoka@sgi.com>
1237         PR libgomp/69414
1238         * oacc-mem.c (delete_copyout, update_dev_host): Fix device address.
1239         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests.
1240         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
1241         * testsuite/libgomp.oacc-fortran/update-1.f90: New file.
1243 2016-03-23  Martin Liska  <mliska@suse.cz>
1245         PR hsa/70337
1246         * plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow
1247         argument just in case a dispatched kernel uses that argument.
1249 2016-03-16  Thomas Schwinge  <thomas@codesourcery.com>
1251         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to
1252         -ftree-parallelize-loops/-fopenacc changes.
1253         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
1254         Likewise.
1255         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
1256         Likewise.
1257         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
1258         Likewise.
1259         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
1260         Likewise.
1261         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
1262         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
1264 2016-03-13  Thomas Schwinge  <thomas@codesourcery.com>
1266         * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to
1267         always_ld_library_path the path to libgcc_s.
1269 2016-03-10  Cesar Philippidis  <cesar@codesourcery.com>
1271         PR testsuite/70009
1272         * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed.
1274 2016-03-09  Tom de Vries  <tom@codesourcery.com>
1276         * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test.
1277         * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same.
1278         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
1279         Same.
1280         * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same.
1281         * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same.
1282         * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same.
1283         * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same.
1285 2016-03-07  Martin Jambor  <mjambor@suse.cz>
1287         * testsuite/lib/libgomp.exp
1288         (check_effective_target_hsa_offloading_selected_nocache): New.
1289         (check_effective_target_hsa_offloading_selected): Likewise.
1290         * testsuite/libgomp.hsa.c/c.exp: Likewise.
1291         * testsuite/libgomp.hsa.c/alloca-1.c: Likewise.
1292         * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise.
1293         * testsuite/libgomp.hsa.c/builtins-1.c: Likewise.
1294         * testsuite/libgomp.hsa.c/complex-1.c: Likewise.
1295         * testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise.
1296         * testsuite/libgomp.hsa.c/function-call-1.c: Likewise.
1297         * testsuite/libgomp.hsa.c/get-level-1.c: Likewise.
1298         * testsuite/libgomp.hsa.c/gridify-1.c: Likewise.
1299         * testsuite/libgomp.hsa.c/gridify-2.c: Likewise.
1300         * testsuite/libgomp.hsa.c/gridify-3.c: Likewise.
1301         * testsuite/libgomp.hsa.c/gridify-4.c: Likewise.
1302         * testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise.
1303         * testsuite/libgomp.hsa.c/pr69568.c: Likewise.
1304         * testsuite/libgomp.hsa.c/rotate-1.c: Likewise.
1305         * testsuite/libgomp.hsa.c/switch-1.c: Likewise.
1306         * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise.
1308 2016-03-07  Martin Jambor  <mjambor@suse.cz>
1310         * testsuite/libgomp.c/examples-4/async_target-2.c: Only run on
1311         non-shared memory accelerators.
1312         * testsuite/libgomp.c/examples-4/device-1.c: Likewise.
1313         * testsuite/libgomp.c/examples-4/target-5.c: Likewise.
1314         * testsuite/libgomp.c/examples-4/target_data-6.c: Likewise.
1315         * testsuite/libgomp.c/examples-4/target_data-7.c: Likewise.
1316         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
1317         * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
1318         * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
1319         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
1320         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
1322 2016-03-07  Martin Jambor  <mjambor@suse.cz>
1324         * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to
1325         ALWAYS_CFLAGS.
1327 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
1329         PR libgomp/69555
1330         * testsuite/libgomp.c++/pr69555-1.C: New test.
1331         * testsuite/libgomp.c++/pr69555-2.C: New test.
1333 2016-02-26  Keith McDaniel <k.allen.mcdaniel@gmail.com>
1334             Martin Jambor  <mjambor@suse.cz>
1336         * testsuite/lib/libgomp.exp
1337         (check_effective_target_offload_device_shared_as): New proc.
1338         * testsuite/libgomp.c++/declare_target-1.C: New test.
1340 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
1342         PR driver/68463
1343         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
1345 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
1347         * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
1348         * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
1349         dims.
1350         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
1351         -ftree-parallelize-loops/-fopenacc changes.
1352         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
1353         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
1354         Likewise.
1355         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
1356         Likewise.
1357         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
1358         Likewise.
1359         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
1360         Likewise.
1361         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
1362         Likewise.
1363         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
1364         Likewise.
1365         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
1366         Likewise.
1367         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
1368         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
1369         Likewise.
1370         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
1371         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
1372         Likewise.
1373         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
1374         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
1375         Likewise.
1377 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
1379         * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test.
1381 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
1383         PR driver/69805
1384         * testsuite/libgomp.c/pr69805.c: New test.
1386 2016-02-16  Tom de Vries  <tom@codesourcery.com>
1388         PR lto/67709
1389         * testsuite/libgomp.fortran/declare-simd-4.f90: New test.
1391 2016-02-09  Tom de Vries  <tom@codesourcery.com>
1393         PR tree-optimization/69599
1394         * testsuite/libgomp.c/omp-nested-3.c: New test.
1395         * testsuite/libgomp.c/pr46032-2.c: New test.
1396         * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test.
1397         * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test.
1399 2016-02-09  Tom de Vries  <tom@codesourcery.com>
1401         PR lto/69707
1402         * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
1404 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
1406         * testsuite/libgomp.c/target-31.c: Fix testcase.
1408 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
1410         * testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
1411         clause.
1412         * testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
1413         * testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
1414         reduction and map clauses.
1415         * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
1417 2016-02-02  James Norris  <jnorris@codesourcery.com>
1419         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
1421 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
1423         * libgomp.map (GOACC_2.0): Remove GOACC_host_data.
1424         * oacc-parallel.c (GOACC_host_data): Remove function definition.
1426         * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
1427         cases.
1429         * plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
1430         variables.
1431         * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
1432         (hsa_kmt_lib): Set variables.
1433         * testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
1434         always_ld_library_path.
1435         * Makefile.in: Regenerate.
1436         * configure: Likewise.
1437         * testsuite/Makefile.in: Likewise.
1439         * plugin/configfrag.ac (offload_additional_options)
1440         (offload_additional_lib_paths): Don't amend for hsa offloading.
1441         * configure: Regenerate.
1443         * plugin/configfrag.ac: Don't configure for offloading target if
1444         we don't build the corresponding plugin.
1445         * configure: Regenerate.
1447 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
1449         * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
1450         * testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
1452 2016-01-26  Tom de Vries  <tom@codesourcery.com>
1454         PR tree-optimization/69110
1455         * testsuite/libgomp.c/pr69110.c: New test.
1457 2016-01-25  Richard Biener  <rguenther@suse.de>
1459         PR lto/69393
1460         * testsuite/libgomp.c++/pr69393.C: New testcase.
1462 2016-01-22  Ilya Verbin  <ilya.verbin@intel.com>
1464         * target.c (gomp_get_target_fn_addr): Allow host fallback if target
1465         function wasn't mapped to the device with non-shared memory.
1467 2016-01-20  Ilya Verbin  <ilya.verbin@intel.com>
1469         * task.c (gomp_create_target_task): Set firstprivate_copies to NULL.
1471 2016-01-19  Martin Jambor  <mjambor@suse.cz>
1472             Martin Liska  <mliska@suse.cz>
1474         * plugin/Makefrag.am: Add HSA plugin requirements.
1475         * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
1476         (HSA_RUNTIME_LIB): Likewise.
1477         (HSA_RUNTIME_CPPFLAGS): Likewise.
1478         (HSA_RUNTIME_INCLUDE): New substitution.
1479         (HSA_RUNTIME_LIB): Likewise.
1480         (HSA_RUNTIME_LDFLAGS): Likewise.
1481         (hsa-runtime): New configure option.
1482         (hsa-runtime-include): Likewise.
1483         (hsa-runtime-lib): Likewise.
1484         (PLUGIN_HSA): New substitution variable.
1485         Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
1486         configure options.
1487         (PLUGIN_HSA_CPPFLAGS): Likewise.
1488         (PLUGIN_HSA_LDFLAGS): Likewise.
1489         (PLUGIN_HSA_LIBS): Likewise.
1490         Check that we have access to HSA run-time.
1491         * libgomp-plugin.h (offload_target_type): New element
1492         OFFLOAD_TARGET_TYPE_HSA.
1493         * libgomp.h (gomp_target_task): New fields firstprivate_copies and
1494         args.
1495         (bool gomp_create_target_task): Updated.
1496         (gomp_device_descr): Extra parameter of run_func and async_run_func,
1497         new field can_run_func.
1498         * libgomp_g.h (GOMP_target_ext): Update prototype.
1499         * oacc-host.c (host_run): Added a new parameter args.
1500         * target.c (calculate_firstprivate_requirements): New function.
1501         (copy_firstprivate_data): Likewise.
1502         (gomp_target_fallback_firstprivate): Use them.
1503         (gomp_target_unshare_firstprivate): New function.
1504         (gomp_get_target_fn_addr): Allow returning NULL for shared memory
1505         devices.
1506         (GOMP_target): Do host fallback for all shared memory devices.  Do not
1507         pass any args to plugins.
1508         (GOMP_target_ext): Introduce device-specific argument parameter args.
1509         Allow host fallback if device shares memory.  Do not remap data if
1510         device has shared memory.
1511         (gomp_target_task_fn): Likewise.  Also treat shared memory devices
1512         like host fallback for mappings.
1513         (GOMP_target_data): Treat shared memory devices like host fallback.
1514         (GOMP_target_data_ext): Likewise.
1515         (GOMP_target_update): Likewise.
1516         (GOMP_target_update_ext): Likewise.  Also pass NULL as args to
1517         gomp_create_target_task.
1518         (GOMP_target_enter_exit_data): Likewise.
1519         (omp_target_alloc): Treat shared memory devices like host fallback.
1520         (omp_target_free): Likewise.
1521         (omp_target_is_present): Likewise.
1522         (omp_target_memcpy): Likewise.
1523         (omp_target_memcpy_rect): Likewise.
1524         (omp_target_associate_ptr): Likewise.
1525         (gomp_load_plugin_for_device): Also load can_run.
1526         * task.c (GOMP_PLUGIN_target_task_completion): Free
1527         firstprivate_copies.
1528         (gomp_create_target_task): Accept new argument args and store it to
1529         ttask.
1530         * plugin/plugin-hsa.c: New file.
1532 2016-01-18  Tom de Vries  <tom@codesourcery.com>
1534         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
1535         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
1536         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
1537         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
1538         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
1539         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
1540         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
1541         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
1542         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
1543         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
1544         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
1545         Same.
1546         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
1547         Same.
1548         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
1549         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
1550         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
1551         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
1552         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
1553         * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
1554         * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
1555         * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
1556         Same.
1557         * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.
1559 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
1561         * task.c (GOMP_PLUGIN_target_task_completion): Add missing return.
1563 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
1565         * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
1567 2016-01-12  James Norris  <jnorris@codesourcery.com>
1569         * libgomp.texi: Updates for OpenACC.
1571 2016-01-11  Alexander Monakov  <amonakov@ispras.ru>
1573         * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.
1575 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
1577         PR fortran/66680
1578         * testsuite/libgomp.fortran/pr66680.f90: New test.
1580 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
1582         PR middle-end/68960
1583         * testsuite/libgomp.c/pr68960.c: New test.
1585 2016-01-06  Nathan Sidwell  <nathan@acm.org>
1587         * openacc.h (acc_on_device): Add routine pragma for C++ wrapper.
1588         * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New.
1590 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
1592         Update copyright years.
1594         * libgomp.texi: Bump @copying's copyright year.
1596 2015-12-31  Nathan Sidwell  <nathan@acm.org>
1598         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct
1599         dg-additional-options syntax.
1600         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
1601         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
1602         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
1603         * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
1604         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
1605         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
1606         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
1607         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
1608         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
1609         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
1610         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
1611         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
1612         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
1613         * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
1614         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
1615         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
1616         * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
1617         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
1619 2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>
1621         * libgomp.h (REFCOUNT_LINK): Define.
1622         (struct splay_tree_key_s): Add link_key.
1623         * target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
1624         Replace target address of the pointer with target address of newly
1625         mapped object in the splay tree.  Set link pointer on target to the
1626         device address of the mapped object.
1627         (gomp_unmap_vars): Restore target address of the pointer in the splay
1628         tree for REFCOUNT_LINK objects after unmapping.
1629         (gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
1630         declare target link" objects.
1631         (gomp_unload_image_from_device): Replace j with i.  Force unmap of all
1632         "omp declare target link" objects, which were mapped for the image.
1633         (gomp_exit_data): Restore target address of the pointer in the splay
1634         tree for REFCOUNT_LINK objects after unmapping.
1635         * testsuite/libgomp.c/target-link-1.c: New file.
1637 2015-12-14  Ilya Verbin  <ilya.verbin@intel.com>
1639         * libgomp.h (gomp_device_state): New enum.
1640         (struct gomp_device_descr): Replace is_initialized with state.
1641         (gomp_fini_device): Remove declaration.
1642         * oacc-host.c (host_dispatch): Use state instead of is_initialized.
1643         * oacc-init.c (acc_init_1): Use state instead of is_initialized.
1644         (acc_shutdown_1): Likewise.  Inline gomp_fini_device.
1645         (acc_set_device_type): Use state instead of is_initialized.
1646         (acc_set_device_num): Likewise.
1647         * target.c (resolve_device): Use state instead of is_initialized.
1648         Do not initialize finalized device.
1649         (gomp_map_vars): Do nothing if device is finalized.
1650         (gomp_unmap_vars): Likewise.
1651         (gomp_update): Likewise.
1652         (GOMP_offload_register_ver): Use state instead of is_initialized.
1653         (GOMP_offload_unregister_ver): Likewise.
1654         (gomp_init_device): Likewise.
1655         (gomp_unload_device): Likewise.
1656         (gomp_fini_device): Remove.
1657         (gomp_get_target_fn_addr): Do nothing if device is finalized.
1658         (GOMP_target): Go to host fallback if device is finalized.
1659         (GOMP_target_ext): Likewise.
1660         (gomp_exit_data): Do nothing if device is finalized.
1661         (gomp_target_task_fn): Go to host fallback if device is finalized.
1662         (gomp_target_fini): New static function.
1663         (gomp_target_init): Use state instead of is_initialized.
1664         Call gomp_target_fini at exit.
1666 2015-12-09  Tom de Vries  <tom@codesourcery.com>
1668         PR tree-optimization/68716
1669         * testsuite/libgomp.c/omp-nested-2.c: New test.
1671 2015-12-02  Thomas Schwinge  <thomas@codesourcery.com>
1673         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
1674         target openacc_nvidia_accel_selected.
1675         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
1676         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
1677         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
1678         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
1680 2015-12-01  Julian Brown  <julian@codesourcery.com>
1681             James Norris  <James_Norris@mentor.com>
1683         * oacc-parallel.c (GOACC_host_data): New function.
1684         * libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
1685         * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
1686         * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
1687         * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
1688         * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
1689         * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
1690         * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
1692 2015-11-30  James Norris  <jnorris@codesourcery.com>
1693             Cesar Philippidis  <cesar@codesourcery.com>
1695         libgomp/
1696         * libgomp.oacc-fortran/routine-5.f90: New test.
1697         * libgomp.oacc-fortran/routine-7.f90: New test.
1698         * libgomp.oacc-fortran/routine-9.f90: New test.
1700 2015-11-30  Tom de Vries  <tom@codesourcery.com>
1702         PR tree-optimization/46032
1703         * testsuite/libgomp.c/pr46032.c: New test.
1705 2015-11-27  Jakub Jelinek  <jakub@redhat.com>
1707         PR libgomp/68579
1708         * task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
1709         (gomp_create_target_task): Call it before freeing
1710         GOMP_TARGET_TASK_DATA tasks.
1712         PR c/63326
1713         * testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
1714         in between case label and OpenMP standalone directives.
1715         * testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
1717 2015-11-26  David Edelsohn  <dje.gcc@gmail.com>
1719         * configure: Regenerate.
1721 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
1723         * testsuite/libgomp.c/target-35.c: New test.
1725 2015-11-22  James Norris  <jnorris@codesourcery.com>
1726             Cesar Philippidis  <cesar@codesourcery.com>
1728         * testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
1729         * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
1730         * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
1731         * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
1732         * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
1734 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
1736         PR middle-end/68221
1737         * testsuite/libgomp.c/reduction-11.c: Remove xfail.
1738         * testsuite/libgomp.c/reduction-12.c: Likewise.
1739         * testsuite/libgomp.c++/reduction-11.C: Likewise.
1740         * testsuite/libgomp.c++/reduction-12.C: Likewise.
1742 2015-11-19  Nathan Sidwell  <nathan@codesourcery.com>
1744         * libgomp.oacc-c-c++-common/reduction-dbl.c: New.
1745         * libgomp.oacc-c-c++-common/reduction-flt.c: New.
1746         * libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
1747         * libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
1748         * libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
1749         and fix.
1750         * libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
1751         * libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
1753 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
1755         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
1756         worker & gang cases.
1757         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
1759 2015-11-17  Cesar Philippidis  <cesar@codesourcery.com>
1761         * config/nvptx/priority_queue.c: New file.
1763 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
1765         * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
1766         sections.
1768 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
1769             Aldy Hernandez  <aldyh@redhat.com>
1770             Ilya Verbin  <ilya.verbin@intel.com>
1772         * ordered.c (gomp_doacross_init, GOMP_doacross_post,
1773         GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
1774         GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
1775         iterators or IV by chunk size.
1776         * parallel.c (gomp_resolve_num_threads): Don't assume that
1777         if thr->ts.team is non-NULL, then pool must be non-NULL.
1778         * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
1779         * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
1780         GOMP_PLUGIN_target_task_completion.
1781         * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
1782         * Makefile.in: Regenerate.
1783         * libgomp.h: Shuffle prototypes and forward definitions around so
1784         priority queues can be defined.
1785         (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
1786         (enum gomp_target_task_state): New enum.
1787         (struct gomp_target_task): Add state, tgt, task and team fields.
1788         (gomp_create_target_task): Change return type to bool, add
1789         state argument.
1790         (gomp_target_task_fn): Change return type to bool.
1791         (struct gomp_device_descr): Add async_run_func.
1792         (struct gomp_task): Remove children, next_child, prev_child,
1793         next_queue, prev_queue, next_taskgroup, prev_taskgroup.
1794         Add pnode field.
1795         (struct gomp_taskgroup): Remove children.
1796         Add taskgroup_queue.
1797         (struct gomp_team): Change task_queue type to a priority queue.
1798         (splay_compare): Define inline.
1799         (priority_queue_offset): New.
1800         (priority_node_to_task): New.
1801         (task_to_priority_node): New.
1802         * oacc-mem.c: Do not include splay-tree.h.
1803         * priority_queue.c: New file.
1804         * priority_queue.h: New file.
1805         * splay-tree.c: Do not include splay-tree.h.
1806         (splay_tree_foreach_internal): New.
1807         (splay_tree_foreach): New.
1808         * splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
1809         (splay_tree_callback): Define typedef.
1810         * target.c (splay_compare): Move to libgomp.h.
1811         (GOMP_target): Don't adjust *thr in any way around running offloaded
1812         task.
1813         (GOMP_target_ext): Likewise.  Handle target nowait.
1814         (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
1815         return value from gomp_create_target_task, if false, fallthrough
1816         as if no dependencies exist.
1817         (gomp_target_task_fn): Change return type to bool, return true
1818         if the task should have another part scheduled later.  Handle
1819         target nowait.
1820         (gomp_load_plugin_for_device): Initialize async_run.
1821         * task.c (gomp_init_task): Initialize children_queue.
1822         (gomp_clear_parent_in_list): New.
1823         (gomp_clear_parent_in_tree): New.
1824         (gomp_clear_parent): Handle priorities.
1825         (GOMP_task): Likewise.
1826         (priority_queue_move_task_first,
1827         gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
1828         New functions.
1829         (gomp_create_target_task): Use priority queues.  Change return type
1830         to bool, add state argument, return false if for async
1831         {{enter,exit} data,update} constructs no dependencies need to be
1832         waited for, handle target nowait.  Set task->fn to NULL instead of
1833         gomp_target_task_fn.
1834         (verify_children_queue): Remove.
1835         (priority_list_upgrade_task): New.
1836         (priority_queue_upgrade_task): New.
1837         (verify_task_queue): Remove.
1838         (priority_list_downgrade_task): New.
1839         (priority_queue_downgrade_task): New.
1840         (gomp_task_run_pre): Use priority queues.
1841         Abstract code out to priority_queue_downgrade_task.
1842         (gomp_task_run_post_handle_dependers): Use priority queues.
1843         (gomp_task_run_post_remove_parent): Likewise.
1844         (gomp_task_run_post_remove_taskgroup): Likewise.
1845         (gomp_barrier_handle_tasks): Likewise.  Handle target nowait target
1846         tasks specially.
1847         (GOMP_taskwait): Likewise.
1848         (gomp_task_maybe_wait_for_dependencies): Likewise.  Abstract code to
1849         priority-queue_upgrade_task.
1850         (GOMP_taskgroup_start): Use priority queues.
1851         (GOMP_taskgroup_end): Likewise.  Handle target nowait target tasks
1852         specially.  If taskgroup is NULL, and thr->ts.level is 0, act as a
1853         barrier.
1854         * taskloop.c (GOMP_taskloop): Handle priorities.
1855         * team.c (gomp_new_team): Call priority_queue_init.
1856         (free_team): Call priority_queue_free.
1857         (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
1858         team created for target nowait in implicit parallel region.
1859         (gomp_team_start): For nested check, test thr->ts.level instead of
1860         thr->ts.team != NULL.
1861         * testsuite/libgomp.c/doacross-3.c: New test.
1862         * testsuite/libgomp.c/ordered-5.c: New test.
1863         * testsuite/libgomp.c/priority.c: New test.
1864         * testsuite/libgomp.c/target-31.c: New test.
1865         * testsuite/libgomp.c/target-32.c: New test.
1866         * testsuite/libgomp.c/target-33.c: New test.
1867         * testsuite/libgomp.c/target-34.c: New test.
1869 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1871         * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
1873         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
1874         loop is sequential.
1876 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1878         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
1879         * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
1881 2015-11-12  James Norris  <jnorris@codesourcery.com>
1882             Joseph Myers  <joseph@codesourcery.com>
1884         * libgomp.map (GOACC_2.0.1): Export GOACC_declare.
1885         * oacc-parallel.c (GOACC_declare): New function.
1886         * testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
1887         * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
1888         * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
1889         * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
1890         * testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
1892 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
1894         * testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
1896 2015-11-1  Nathan Sidwell  <nathan@codesourcery.com>
1898         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
1899         * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
1901 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
1903         * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
1904         inadvertent commit.
1906 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
1908         * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
1909         * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
1910         * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
1911         * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
1912         * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
1914 2015-11-06  Thomas Schwinge  <thomas@codesourcery.com>
1916         * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
1917         * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
1919 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
1920             Ilya Verbin  <ilya.verbin@intel.com>
1922         * libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
1923         GOMP_loop_nonmonotonic_dynamic_start,
1924         GOMP_loop_nonmonotonic_guided_next,
1925         GOMP_loop_nonmonotonic_guided_start,
1926         GOMP_loop_ull_nonmonotonic_dynamic_next,
1927         GOMP_loop_ull_nonmonotonic_dynamic_start,
1928         GOMP_loop_ull_nonmonotonic_guided_next,
1929         GOMP_loop_ull_nonmonotonic_guided_start,
1930         GOMP_parallel_loop_nonmonotonic_dynamic,
1931         GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
1932         (GOMP_target_41): Renamed to ...
1933         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
1934         arguments.
1935         (GOMP_target_data_41): Renamed to ...
1936         (GOMP_target_data_ext): ... this.
1937         (GOMP_target_update_41): Renamed to ...
1938         (GOMP_target_update_ext): ... this.
1939         * libgomp.map (GOMP_4.5): Export GOMP_target_ext,
1940         GOMP_target_data_ext and GOMP_target_update_ext instead of
1941         GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
1942         Export GOMP_loop_nonmonotonic_dynamic_next,
1943         GOMP_loop_nonmonotonic_dynamic_start,
1944         GOMP_loop_nonmonotonic_guided_next,
1945         GOMP_loop_nonmonotonic_guided_start,
1946         GOMP_loop_ull_nonmonotonic_dynamic_next,
1947         GOMP_loop_ull_nonmonotonic_dynamic_start,
1948         GOMP_loop_ull_nonmonotonic_guided_next,
1949         GOMP_loop_ull_nonmonotonic_guided_start,
1950         GOMP_parallel_loop_nonmonotonic_dynamic and
1951         GOMP_parallel_loop_nonmonotonic_guided.
1952         * loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
1953         GOMP_parallel_loop_nonmonotonic_guided,
1954         GOMP_loop_nonmonotonic_dynamic_start,
1955         GOMP_loop_nonmonotonic_guided_start,
1956         GOMP_loop_nonmonotonic_dynamic_next,
1957         GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
1958         * loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
1959         GOMP_loop_ull_nonmonotonic_guided_start,
1960         GOMP_loop_ull_nonmonotonic_dynamic_next,
1961         GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
1962         * target.c (gomp_map_0len_lookup, gomp_map_val): New inline
1963         functions.
1964         (gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
1965         GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
1966         Use gomp_map_val function.
1967         (gomp_target_fallback_firstprivate): New static function.
1968         (GOMP_target_41): Renamed to ...
1969         (GOMP_target_ext): ... this.  Add num_teams and thread_limit
1970         arguments.  Move firstprivate fallback handling into a new
1971         function.
1972         (GOMP_target_data_41): Renamed to ...
1973         (GOMP_target_data_ext): ... this.
1974         (GOMP_target_update_41): Renamed to ...
1975         (GOMP_target_update_ext): ... this.
1976         (gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
1977         gomp_map_0len_lookup instead of gomp_map_lookup.
1978         (omp_target_is_present): Use gomp_map_0len_lookup instead of
1979         gomp_map_lookup.
1980         * testsuite/libgomp.c/target-28.c: Likewise.
1981         * testsuite/libgomp.c/monotonic-1.c: New test.
1982         * testsuite/libgomp.c/monotonic-2.c: New test.
1983         * testsuite/libgomp.c/nonmonotonic-1.c: New test.
1984         * testsuite/libgomp.c/nonmonotonic-2.c: New test.
1985         * testsuite/libgomp.c/pr66199-5.c: New test.
1986         * testsuite/libgomp.c/pr66199-6.c: New test.
1987         * testsuite/libgomp.c/pr66199-7.c: New test.
1988         * testsuite/libgomp.c/pr66199-8.c: New test.
1989         * testsuite/libgomp.c/pr66199-9.c: New test.
1990         * testsuite/libgomp.c/reduction-11.c: New test.
1991         * testsuite/libgomp.c/reduction-12.c: New test.
1992         * testsuite/libgomp.c/reduction-13.c: New test.
1993         * testsuite/libgomp.c/reduction-14.c: New test.
1994         * testsuite/libgomp.c/reduction-15.c: New test.
1995         * testsuite/libgomp.c/target-12.c (main): Adjust for
1996         omp_target_is_present change for one-past-last element.
1997         * testsuite/libgomp.c/target-17.c (foo): Drop tests where
1998         the same var is both mapped and privatized.
1999         * testsuite/libgomp.c/target-19.c (foo): Adjust for different
2000         handling of zero-length array sections.
2001         * testsuite/libgomp.c/target-28.c: New test.
2002         * testsuite/libgomp.c/target-29.c: New test.
2003         * testsuite/libgomp.c/target-30.c: New test.
2004         * testsuite/libgomp.c/target-teams-1.c: New test.
2005         * testsuite/libgomp.c++/member-6.C: New test.
2006         * testsuite/libgomp.c++/member-7.C: New test.
2007         * testsuite/libgomp.c++/monotonic-1.C: New test.
2008         * testsuite/libgomp.c++/monotonic-2.C: New test.
2009         * testsuite/libgomp.c++/nonmonotonic-1.C: New test.
2010         * testsuite/libgomp.c++/nonmonotonic-2.C: New test.
2011         * testsuite/libgomp.c++/pr66199-3.C: New test.
2012         * testsuite/libgomp.c++/pr66199-4.C: New test.
2013         * testsuite/libgomp.c++/pr66199-5.C: New test.
2014         * testsuite/libgomp.c++/pr66199-6.C: New test.
2015         * testsuite/libgomp.c++/pr66199-7.C: New test.
2016         * testsuite/libgomp.c++/pr66199-8.C: New test.
2017         * testsuite/libgomp.c++/pr66199-9.C: New test.
2018         * testsuite/libgomp.c++/reduction-11.C: New test.
2019         * testsuite/libgomp.c++/reduction-12.C: New test.
2020         * testsuite/libgomp.c++/target-13.C: New test.
2021         * testsuite/libgomp.c++/target-14.C: New test.
2022         * testsuite/libgomp.c++/target-15.C: New test.
2023         * testsuite/libgomp.c++/target-16.C: New test.
2024         * testsuite/libgomp.c++/target-17.C: New test.
2025         * testsuite/libgomp.c++/target-18.C: New test.
2026         * testsuite/libgomp.c++/target-19.C: New test.
2028 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
2030         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
2031         and reduction copy.
2032         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
2033         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
2034         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
2035         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
2036         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
2037         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
2038         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
2039         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
2040         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
2041         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
2042         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
2043         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
2044         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
2045         * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
2047 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
2049         * libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
2050         * libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
2051         * libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
2052         * libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
2053         * libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
2054         * libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
2055         * libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
2056         * libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
2058 2015-11-03  Nathan Sidwell  <nathan@codesourcery.com>
2060         * libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
2061         * plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
2062         (GOMP_OFFLOAD_openacc_parallel): Likewise.
2063         * oacc-host.c (host_openacc_exec): Likewise.
2064         * oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
2066 2015-11-03  Julian Brown  <julian@codesourcery.com>
2067             Thomas Schwinge  <thomas@codesourcery.com>
2069         * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
2070         * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
2071         * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
2072         Likewise.
2073         * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
2074         * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
2076 2015-11-03  James Norris  <jnorris@codesourcery.com>
2078         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
2079         file.
2080         * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
2081         Likewise.
2082         * testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
2083         * testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
2084         * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
2085         * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
2086         * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
2088 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
2090         * openacc.h (enum acc_device_t): Reformat. Ensure layout
2091         compatibility.
2092         (enum acc_async_t): Reformat.
2093         (acc_on_device): Declare compatible with builtin and provide C++
2094         wrapper.
2095         * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
2097 2015-10-29  Thomas Schwinge  <thomas@codesourcery.com>
2098             Cesar Philippidis  <cesar@codesourcery.com>
2100         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
2101         * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
2102         ... this.  Add a description of the test at the top of the file.
2103         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
2104         * testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
2105         ... this.  Add a description of the test at the top of the file.
2107 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
2109         * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
2110         * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
2111         * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
2112         * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
2113         * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
2114         * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
2116 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2118         * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
2119         dimensions.
2121 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
2123         PR testsuite/68063
2124         * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
2126 2015-10-27  James Norris  <jnorris@codesourcery.com>
2128         * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
2129         * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
2131 2015-10-26  Thomas Schwinge  <thomas@codesourcery.com>
2133         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
2134         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
2136         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
2137         acc_device_nvidia usage.
2138         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
2139         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
2140         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
2142         * oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
2143         * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
2145         PR libgomp/66518
2146         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
2148         PR libgomp/65437
2149         PR libgomp/66518
2150         * oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
2151         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
2153 2015-10-23  Tom de Vries  <tom@codesourcery.com>
2155         PR testsuite/68063
2156         * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
2158 2015-10-20  Nathan Sidwell  <nathan@codesourcery.com>
2160         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
2161         vector_length.
2162         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
2164 2015-10-14  Ilya Verbin  <ilya.verbin@intel.com>
2165             Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
2167         * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
2168         to 0 when mapnum is 0.
2170 2015-10-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2172         * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
2173         Cast to int from int32_t.
2175 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
2176             Aldy Hernandez  <aldyh@redhat.com>
2177             Ilya Verbin  <ilya.verbin@intel.com>
2179         * config/linux/affinity.c (omp_get_place_num_procs,
2180         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
2181         * config/linux/doacross.h: New file.
2182         * config/posix/affinity.c (omp_get_place_num_procs,
2183         omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
2184         * config/posix/doacross.h: New file.
2185         * env.c: Include gomp-constants.h.
2186         (struct gomp_task_icv): Rename run_sched_modifier to
2187         run_sched_chunk_size.
2188         (gomp_max_task_priority_var): New variable.
2189         (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
2190         (handle_omp_display_env): Change _OPENMP value from 201307 to
2191         201511.  Print OMP_MAX_TASK_PRIORITY.
2192         (initialize_env): Parse OMP_MAX_TASK_PRIORITY.
2193         (omp_set_schedule, omp_get_schedule): Rename modifier argument to
2194         chunk_size and run_sched_modifier to run_sched_chunk_size.
2195         (omp_get_max_task_priority, omp_get_initial_device,
2196         omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
2197         omp_get_partition_place_nums): New functions.
2198         * fortran.c (omp_set_schedule_, omp_set_schedule_8_,
2199         omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
2200         to chunk_size.
2201         (omp_get_num_places_, omp_get_place_num_procs_,
2202         omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
2203         omp_get_place_proc_ids_8_, omp_get_place_num_,
2204         omp_get_partition_num_places_, omp_get_partition_place_nums_,
2205         omp_get_partition_place_nums_8_, omp_get_initial_device_,
2206         omp_get_max_task_priority_): New functions.
2207         * libgomp_g.h (GOMP_loop_doacross_static_start,
2208         GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
2209         GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
2210         GOMP_loop_ull_doacross_dynamic_start,
2211         GOMP_loop_ull_doacross_guided_start,
2212         GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
2213         GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
2214         GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
2215         GOMP_target_data_41, GOMP_target_update_41,
2216         GOMP_target_enter_exit_data): New prototypes.
2217         (GOMP_task): Add prototype argument.
2218         * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
2219         (struct gomp_doacross_work_share): New type.
2220         (struct gomp_work_share): Add doacross field.
2221         (struct gomp_task_icv): Rename run_sched_modifier to
2222         run_sched_chunk_size.
2223         (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
2224         GOMP_TASK_UNDEFERRED.  Add comments.
2225         (struct gomp_task_depend_entry): Add comments.
2226         (struct gomp_task): Likewise.
2227         (struct gomp_taskgroup): Likewise.
2228         (struct gomp_target_task): New type.
2229         (struct gomp_team): Add comment.
2230         (gomp_get_place_proc_ids_8, gomp_doacross_init,
2231         gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
2232         gomp_create_target_task, gomp_target_task_fn): New prototypes.
2233         (struct target_var_desc): New type.
2234         (struct target_mem_desc): Adjust comment.  Use struct
2235         target_var_desc instead of splay_tree_key for list.
2236         (REFCOUNT_INFINITY): Define.
2237         (struct splay_tree_key_s): Remove copy_from field.
2238         (struct gomp_device_descr): Add dev2dev_func field.
2239         (enum gomp_map_vars_kind): New enum.
2240         (gomp_map_vars): Add one argument.
2241         * libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
2242         omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
2243         omp_get_place_num_procs, omp_get_place_num_procs_,
2244         omp_get_place_num_procs_8_, omp_get_place_proc_ids,
2245         omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
2246         omp_get_place_num_, omp_get_partition_num_places,
2247         omp_get_partition_num_places_, omp_get_partition_place_nums,
2248         omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
2249         omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
2250         omp_target_free, omp_target_is_present, omp_target_memcpy,
2251         omp_target_memcpy_rect, omp_target_associate_ptr and
2252         omp_target_disassociate_ptr.
2253         (GOMP_4.0.2): Renamed to ...
2254         (GOMP_4.5): ... this.  Export GOMP_target_41, GOMP_target_data_41,
2255         GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
2256         GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
2257         GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
2258         GOMP_loop_doacross_static_start, GOMP_doacross_post,
2259         GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
2260         GOMP_loop_ull_doacross_guided_start,
2261         GOMP_loop_ull_doacross_runtime_start,
2262         GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
2263         GOMP_doacross_ull_wait.
2264         * libgomp.texi: Document omp_get_max_task_priority.
2265         Rename modifier argument to chunk_size for omp_set_schedule and
2266         omp_get_schedule.  Document OMP_MAX_TASK_PRIORITY env var.
2267         * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
2268         to run_sched_chunk_size renaming.
2269         (GOMP_loop_ordered_runtime_start): Likewise.
2270         (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
2271         gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
2272         GOMP_parallel_loop_runtime_start): New functions.
2273         (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
2274         to run_sched_chunk_size renaming.
2275         (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
2276         GOMP_loop_doacross_guided_start): New functions or aliases.
2277         * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
2278         run_sched_modifier to run_sched_chunk_size renaming.
2279         (GOMP_loop_ull_ordered_runtime_start): Likewise.
2280         (gomp_loop_ull_doacross_static_start,
2281         gomp_loop_ull_doacross_dynamic_start,
2282         gomp_loop_ull_doacross_guided_start,
2283         GOMP_loop_ull_doacross_runtime_start): New functions.
2284         (GOMP_loop_ull_doacross_static_start,
2285         GOMP_loop_ull_doacross_dynamic_start,
2286         GOMP_loop_ull_doacross_guided_start): New functions or aliases.
2287         * oacc-mem.c (acc_map_data, present_create_copy,
2288         gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
2289         to gomp_map_vars.
2290         (gomp_acc_remove_pointer): Use copy_from from target_var_desc.
2291         * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
2292         instead of false to gomp_map_vars.
2293         (GOACC_parallel_keyed): Likewise.  Use copy_from from target_var_desc.
2294         * omp.h.in (omp_lock_hint_t): New type.
2295         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
2296         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
2297         omp_get_place_num, omp_get_partition_num_places,
2298         omp_get_partition_place_nums, omp_get_initial_device,
2299         omp_get_max_task_priority, omp_target_alloc, omp_target_free,
2300         omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
2301         omp_target_associate_ptr, omp_target_disassociate_ptr): New
2302         prototypes.
2303         * omp_lib.f90.in (omp_lock_hint_kind): New parameter.
2304         (omp_lock_hint_none, omp_lock_hint_uncontended,
2305         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
2306         omp_lock_hint_speculative): New parameters.
2307         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
2308         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
2309         omp_get_place_num, omp_get_partition_num_places,
2310         omp_get_partition_place_nums, omp_get_initial_device,
2311         omp_get_max_task_priority): New interfaces.
2312         (omp_set_schedule, omp_get_schedule): Rename modifier argument
2313         to chunk_size.
2314         * omp_lib.h.in (omp_lock_hint_kind): New parameter.
2315         (omp_lock_hint_none, omp_lock_hint_uncontended,
2316         omp_lock_hint_contended, omp_lock_hint_nonspeculative,
2317         omp_lock_hint_speculative): New parameters.
2318         (omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
2319         omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
2320         omp_get_place_num, omp_get_partition_num_places,
2321         omp_get_partition_place_nums, omp_get_initial_device,
2322         omp_get_max_task_priority): New functions and subroutines.
2323         * ordered.c: Include stdarg.h and string.h.
2324         (MAX_COLLAPSED_BITS): Define.
2325         (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
2326         gomp_doacross_ull_init, GOMP_doacross_ull_post,
2327         GOMP_doacross_ull_wait): New functions.
2328         * target.c: Include errno.h.
2329         (resolve_device): If device is not initialized, call
2330         gomp_init_device on it.
2331         (gomp_map_lookup): New function.
2332         (gomp_map_vars_existing): Add tgt_var argument, fill it in.
2333         Don't bump refcount if REFCOUNT_INFINITY.  Handle
2334         GOMP_MAP_ALWAYS_TO_P.
2335         (get_kind): Rename is_openacc argument to short_mapkind.
2336         (gomp_map_pointer): Use gomp_map_lookup.
2337         (gomp_map_fields_existing): New function.
2338         (gomp_map_vars): Rename is_openacc argument to short_mapkind
2339         and is_target to pragma_kind.  Handle GOMP_MAP_VARS_ENTER_DATA,
2340         handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
2341         GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
2342         Adjust for tgt->list changed type and copy_from living in there.
2343         (gomp_copy_from_async): Adjust for tgt->list changed type and
2344         copy_from living in there.
2345         (gomp_unmap_vars): Likewise.
2346         (gomp_update): Likewise.  Rename is_openacc argument to
2347         short_mapkind.  Don't fail if object is not mapped.
2348         (gomp_load_image_to_device): Initialize refcount to
2349         REFCOUNT_INFINITY.
2350         (gomp_target_fallback): New function.
2351         (gomp_get_target_fn_addr): Likewise.
2352         (GOMP_target): Adjust gomp_map_vars caller, use
2353         gomp_get_target_fn_addr and gomp_target_fallback.
2354         (GOMP_target_41): New function.
2355         (gomp_target_data_fallback): New function.
2356         (GOMP_target_data): Use it, adjust gomp_map_vars caller.
2357         (GOMP_target_data_41): New function.
2358         (GOMP_target_update): Adjust gomp_update caller.
2359         (GOMP_target_update_41): New function.
2360         (gomp_exit_data, GOMP_target_enter_exit_data,
2361         gomp_target_task_fn, omp_target_alloc, omp_target_free,
2362         omp_target_is_present, omp_target_memcpy,
2363         omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
2364         omp_target_associate_ptr, omp_target_disassociate_ptr,
2365         gomp_load_plugin_for_device): New functions.
2366         * task.c: Include gomp-constants.h.  Include taskloop.c
2367         twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
2368         (gomp_task_handle_depend): New function.
2369         (GOMP_task): Use it.  Add priority argument.  Use
2370         gomp-constant.h constants instead of hardcoded numbers.
2371         Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
2372         (gomp_create_target_task): New function.
2373         (verify_children_queue, verify_taskgroup_queue,
2374         verify_task_queue): New functions.
2375         (gomp_task_run_pre): Call verify_*_queue functions.
2376         If an upcoming tied task is about to leave the sibling or
2377         taskgroup queues in an invalid state, adjust appropriately.
2378         Remove taskgroup argument.  Add comments.
2379         (gomp_task_run_post_handle_dependers): Add comments.
2380         (gomp_task_run_post_remove_parent): Likewise.
2381         (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
2382         (GOMP_taskwait): Likewise.  Add comments.
2383         (gomp_task_maybe_wait_for_dependencies): Fix scheduling
2384         problem such that the first non parent_depends_on task does not
2385         end up at the end of the children queue.
2386         (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
2387         GOMP_TASK_UNDEFERRED.
2388         (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
2389         * taskloop.c: New file.
2390         * testsuite/lib/libgomp.exp
2391         (check_effective_target_offload_device_nonshared_as): New proc.
2392         * testsuite/libgomp.c/affinity-2.c: New test.
2393         * testsuite/libgomp.c/doacross-1.c: New test.
2394         * testsuite/libgomp.c/doacross-2.c: New test.
2395         * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
2396         Add map clause to target.
2397         * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
2398         * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
2399         * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
2400         * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
2401         * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
2402         Likewise.
2403         * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
2404         * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
2405         * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
2406         * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
2407         not defined.  Use those where needed.
2408         * testsuite/libgomp.c/for-4.c: New test.
2409         * testsuite/libgomp.c/for-5.c: New test.
2410         * testsuite/libgomp.c/for-6.c: New test.
2411         * testsuite/libgomp.c/linear-1.c: New test.
2412         * testsuite/libgomp.c/ordered-4.c: New test.
2413         * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
2414         only allowed on the loop iterator.
2415         * testsuite/libgomp.c/pr66199-3.c: New test.
2416         * testsuite/libgomp.c/pr66199-4.c: New test.
2417         * testsuite/libgomp.c/reduction-7.c: New test.
2418         * testsuite/libgomp.c/reduction-8.c: New test.
2419         * testsuite/libgomp.c/reduction-9.c: New test.
2420         * testsuite/libgomp.c/reduction-10.c: New test.
2421         * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
2422         map(tofrom:s).
2423         * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
2424         * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
2425         * testsuite/libgomp.c/target-11.c: New test.
2426         * testsuite/libgomp.c/target-12.c: New test.
2427         * testsuite/libgomp.c/target-13.c: New test.
2428         * testsuite/libgomp.c/target-14.c: New test.
2429         * testsuite/libgomp.c/target-15.c: New test.
2430         * testsuite/libgomp.c/target-16.c: New test.
2431         * testsuite/libgomp.c/target-17.c: New test.
2432         * testsuite/libgomp.c/target-18.c: New test.
2433         * testsuite/libgomp.c/target-19.c: New test.
2434         * testsuite/libgomp.c/target-20.c: New test.
2435         * testsuite/libgomp.c/target-21.c: New test.
2436         * testsuite/libgomp.c/target-22.c: New test.
2437         * testsuite/libgomp.c/target-23.c: New test.
2438         * testsuite/libgomp.c/target-24.c: New test.
2439         * testsuite/libgomp.c/target-25.c: New test.
2440         * testsuite/libgomp.c/target-26.c: New test.
2441         * testsuite/libgomp.c/target-27.c: New test.
2442         * testsuite/libgomp.c/taskloop-1.c: New test.
2443         * testsuite/libgomp.c/taskloop-2.c: New test.
2444         * testsuite/libgomp.c/taskloop-3.c: New test.
2445         * testsuite/libgomp.c/taskloop-4.c: New test.
2446         * testsuite/libgomp.c++/ctor-13.C: New test.
2447         * testsuite/libgomp.c++/doacross-1.C: New test.
2448         * testsuite/libgomp.c++/examples-4/declare_target-2.C:
2449         Replace offload_device with offload_device_nonshared_as.
2450         * testsuite/libgomp.c++/for-12.C: New test.
2451         * testsuite/libgomp.c++/for-13.C: New test.
2452         * testsuite/libgomp.c++/for-14.C: New test.
2453         * testsuite/libgomp.c++/linear-1.C: New test.
2454         * testsuite/libgomp.c++/member-1.C: New test.
2455         * testsuite/libgomp.c++/member-2.C: New test.
2456         * testsuite/libgomp.c++/member-3.C: New test.
2457         * testsuite/libgomp.c++/member-4.C: New test.
2458         * testsuite/libgomp.c++/member-5.C: New test.
2459         * testsuite/libgomp.c++/ordered-1.C: New test.
2460         * testsuite/libgomp.c++/reduction-5.C: New test.
2461         * testsuite/libgomp.c++/reduction-6.C: New test.
2462         * testsuite/libgomp.c++/reduction-7.C: New test.
2463         * testsuite/libgomp.c++/reduction-8.C: New test.
2464         * testsuite/libgomp.c++/reduction-9.C: New test.
2465         * testsuite/libgomp.c++/reduction-10.C: New test.
2466         * testsuite/libgomp.c++/reference-1.C: New test.
2467         * testsuite/libgomp.c++/simd14.C: New test.
2468         * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
2469         * testsuite/libgomp.c++/target-5.C: New test.
2470         * testsuite/libgomp.c++/target-6.C: New test.
2471         * testsuite/libgomp.c++/target-7.C: New test.
2472         * testsuite/libgomp.c++/target-8.C: New test.
2473         * testsuite/libgomp.c++/target-9.C: New test.
2474         * testsuite/libgomp.c++/target-10.C: New test.
2475         * testsuite/libgomp.c++/target-11.C: New test.
2476         * testsuite/libgomp.c++/target-12.C: New test.
2477         * testsuite/libgomp.c++/taskloop-1.C: New test.
2478         * testsuite/libgomp.c++/taskloop-2.C: New test.
2479         * testsuite/libgomp.c++/taskloop-3.C: New test.
2480         * testsuite/libgomp.c++/taskloop-4.C: New test.
2481         * testsuite/libgomp.c++/taskloop-5.C: New test.
2482         * testsuite/libgomp.c++/taskloop-6.C: New test.
2483         * testsuite/libgomp.c++/taskloop-7.C: New test.
2484         * testsuite/libgomp.c++/taskloop-8.C: New test.
2485         * testsuite/libgomp.c++/taskloop-9.C: New test.
2486         * testsuite/libgomp.fortran/affinity1.f90: New test.
2487         * testsuite/libgomp.fortran/affinity2.f90: New test.
2489 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2491         PR tree-optimization/67476
2492         * testsuite/libgomp.c/autopar-3.c: New test.
2493         * testsuite/libgomp.c/autopar-4.c: New test.
2494         * testsuite/libgomp.c/autopar-5.c: New test.
2495         * testsuite/libgomp.c/autopar-6.c: New test.
2496         * testsuite/libgomp.c/autopar-7.c: New test.
2497         * testsuite/libgomp.c/autopar-8.c: New test.
2499 2015-10-12  James Norris  <jnorris@codesourcery.com>
2501         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
2502         initializer.
2504 2015-10-09  David Malcolm  <dmalcolm@redhat.com>
2506         * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
2507         using load_gcc_lib.
2509 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
2511         * oacc-ptx.h: Remove file, moving its content into...
2512         * config/nvptx/fortran.c: ... here...
2513         * config/nvptx/oacc-init.c: ..., here...
2514         * config/nvptx/oacc-parallel.c: ..., and here.
2515         * config/nvptx/openacc.f90: New file.
2516         * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
2517         (link_ptx): Don't link in predefined bits of PTX code.
2519 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
2520             Bernd Schmidt <bernds@codesourcery.com>
2522         * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
2523         (struct targ_ptx_obj): New.
2524         (nvptx_tdata): Move earlier, change data format.
2525         (link_ptx): Take targ_ptx_obj ptr and count.  Allow multiple
2526         objects.
2527         (GOMP_OFFLOAD_load_image): Adjust.
2529 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
2531         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
2532         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
2533         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
2534         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
2535         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
2536         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
2537         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
2538         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
2539         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
2540         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
2541         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
2542         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
2543         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
2544         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
2545         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
2546         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
2547         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
2548         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
2549         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
2550         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
2551         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
2552         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
2553         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
2554         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
2555         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
2556         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
2557         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
2558         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
2559         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
2560         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
2561         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
2562         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
2563         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
2564         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
2565         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
2566         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
2567         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
2568         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
2569         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
2570         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
2571         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
2572         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
2573         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
2574         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
2575         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
2576         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
2577         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
2578         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
2579         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
2580         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
2581         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
2582         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
2583         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
2584         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
2585         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
2586         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
2587         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
2588         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
2589         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
2590         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
2591         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
2592         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
2593         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
2595 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2597         * oacc-init.c (acc_on_device): Force optimization level.
2599 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2601         * plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
2602         (cuda_errlist): Delete.
2603         (cuda_error): Reimplement.
2605 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
2607         * libgomp.h (acc_dispatch_t): Replace separate geometry args with
2608         array.
2609         * libgomp.map (GOACC_parallel_keyed): New.
2610         * oacc-parallel.c (goacc_wait): Take pointer to va_list.  Adjust
2611         all callers.
2612         (GOACC_parallel_keyed): New interface.  Lose geometry arguments
2613         and take keyed varargs list.  Adjust call to exec_func.
2614         (GOACC_parallel): Force host fallback.
2615         * libgomp_g.h (GOACC_parallel): Remove.
2616         (GOACC_parallel_keyed): Declare.
2617         * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
2618         (stuct targ_gn_descriptor): Replace name field with launch field.
2619         (nvptx_exec): Lose separate geometry args, take array.  Process
2620         dynamic dimensions and adjust.
2621         (struct nvptx_tdata): Replace fn_names field with fn_descs.
2622         (GOMP_OFFLOAD_load_image): Adjust for change in function table
2623         data.
2624         (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
2625         passing.
2626         * oacc-host.c (host_openacc_exec): Adjust for change in dimension
2627         passing.
2629 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
2631         PR libgomp/67141
2632         * oacc-int.h (goacc_host_init): Add declaration.
2633         * oacc-host.c (goacc_host_init): Remove static and constructor attribute.
2634         * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
2636 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
2637             Sebastian Pop  <s.pop@samsung.com>
2639         * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
2640         match o/p.
2641         * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
2642         * testsuite/libgomp.graphite/force-parallel-4.c: Same.
2643         * testsuite/libgomp.graphite/force-parallel-5.c: Same.
2644         * testsuite/libgomp.graphite/force-parallel-7.c: Same.
2645         * testsuite/libgomp.graphite/force-parallel-8.c: Same.
2647 2015-09-03  Jakub Jelinek  <jakub@redhat.com>
2649         * configure.tgt: Add missing ;; in between nvptx and rtems
2650         snippets.
2652 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2654         * config/posix/pool.h (gomp_adjust_thread_attr): New.
2655         * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
2656         (gomp_thread_pool_reservoir): Add priority member.
2657         * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
2658         priority.
2659         (parse_thread_pools): Likewise.
2660         * team.c (gomp_team_start): Call configuration provided
2661         gomp_adjust_thread_attr(). Destroy thread attributes if
2662         necessary.
2663         * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
2665 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2667         * config/posix/pool.h: New.
2668         * config/rtems/pool.h: Likewise.
2669         * config/rtems/proc.c: Likewise.
2670         * libgomp.h (gomp_thread_destructor): Declare.
2671         * team.c: Include configuration provided "pool.h".
2672         (gomp_get_thread_pool): Define in configuration.
2673         (gomp_team_end): Call configuration defined
2674         gomp_release_thread_pool().
2676 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2678         * config/rtems/bar.c: New.
2679         * config/rtems/bar.h: Likewise.
2680         * config/rtems/mutex.c: Likewise.
2681         * config/rtems/mutex.h: Likewise.
2682         * config/rtems/sem.c: Likewise.
2683         * config/rtems/sem.h: Likewise.
2684         * configure.ac (*-*-rtems*): Check that Newlib provides a proper
2685         <sys/lock.h> header file.
2686         * configure.tgt (*-*-rtems*): Enable RTEMS configuration if
2687         supported by Newlib.
2688         * configure: Regenerate.
2690 2015-09-03  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2692         * team.c (gomp_new_thread_pool): Delete and move content to ...
2693         (gomp_get_thread_pool): ... new function.  Allocate and
2694         initialize thread pool on demand.
2695         (get_last_team): Use gomp_get_thread_pool().
2696         (gomp_team_start): Delete thread pool initialization.
2698 2015-09-03  Tom de Vries  <tom@codesourcery.com>
2700         PR tree-optimization/65637
2701         * testsuite/libgomp.c/autopar-2.c: New test.
2703 2015-08-29  Tom de Vries  <tom@codesourcery.com>
2705         PR tree-optimization/46193
2706         * testsuite/libgomp.c/pr46193.c: New test.
2708 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2710         libgomp/
2711         * libgomp.map: Add 4.0.2 version.
2712         * target.c (offload_image_descr): Add version field.
2713         (gomp_load_image_to_device): Add version argument.  Adjust plugin
2714         call.  Improve load mismatch diagnostic.
2715         (gomp_unload_image_from_device): Add version argument.  Adjust plugin
2716         call.
2717         (GOMP_offload_regster): Make stub function, move bulk to ...
2718         (GOMP_offload_register_ver): ... here.  Process version argument.
2719         (GOMP_offload_unregister): Make stub function, move bulk to ...
2720         (GOMP_offload_unregister_ver): ... here.  Process version argument.
2721         (gomp_init_device): Process version field.
2722         (gomp_unload_device): Process version field.
2723         (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
2724         macros.  Check plugin version.
2725         * libgomp.h (gomp_device_descr): Add version function field.  Adjust
2726         loader and unloader types.
2727         * oacc-host.c: Include gomp-constants.h.
2728         (host_version): New.
2729         (host_load_image, host_unload_image): Adjust.
2730         (host_dispatch): Add host_version.
2731         * plugin/plugin-nvptx.c: Include gomp-constants.h.
2732         (GOMP_OFFLOAD_version): New.
2733         (GOMP_OFFLOAD_load_image): Add version arg and check it.
2734         (GOMP_OFFLOAD_unload_image): Likewise.
2735         * plugin/plugin-host.c: Include gomp-constants.h.
2736         (GOMP_OFFLOAD_version): New.
2737         (GOMP_OFFLOAD_load_image): Add version arg.
2738         (GOMP_OFFLOAD_unload_image): Likewise.
2740 2015-08-24  Tom de Vries  <tom@codesourcery.com>
2742         PR tree-optimization/65468
2743         * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
2745 2015-08-24  Tom de Vries  <tom@codesourcery.com>
2747         PR tree-optimization/65468
2748         * testsuite/libgomp.c/static-chunk-size-one.c: New test.
2750 2015-08-24  Joost VandeVondele  <vondele@gnu.gcc.org>
2752         PR libgomp/66761
2753         PR libgomp/67303
2754         * iter.c (gomp_iter_dynamic_next): Employ an atomic load.
2755         (gomp_iter_guided_next): Idem.
2756         * iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
2757         (gomp_iter_ull_guided_next): Idem.
2758         * config/linux/wait.h (do_spin): Idem.
2760 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
2762         * libgomp-plugin.h (enum offload_target_type): Remove
2763         OFFLOAD_TARGET_TYPE_HOST_NONSHM.
2764         * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
2765         * openacc.h (enum acc_device_t): Likewise.
2766         * openacc_lib.h: Likewise.
2767         * oacc-init.c (name_of_acc_device_t): Don't handle it.
2768         (acc_on_device): Just use __builtin_acc_on_device.
2769         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
2770         of acc_on_device builtin.
2771         * plugin/plugin-host.h: Remove file.
2772         * plugin/plugin-host.c: Likewise, but salvage some content into...
2773         * oacc-host.c: ... this file.
2774         * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
2775         * plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
2776         * Makefile.in: Regenerate.
2777         * configure: Likewise.
2778         * testsuite/lib/libgomp.exp
2779         (check_effective_target_openacc_host_nonshm_selected): Remove.
2780         * testsuite/libgomp.oacc-c++/c++.exp: Don't handle
2781         ACC_DEVICE_TYPE=host_nonshm.
2782         * testsuite/libgomp.oacc-c/c.exp: Likewise.
2783         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
2784         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
2785         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
2786         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
2787         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
2789 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
2790             Jakub Jelinek  <jakub@redhat.com>
2792         * config/nvptx/affinity.c: New file.
2793         * config/nvptx/alloc.c: Likewise.
2794         * config/nvptx/bar.c: Likewise.
2795         * config/nvptx/barrier.c: Likewise.
2796         * config/nvptx/critical.c: Likewise.
2797         * config/nvptx/env.c: Likewise.
2798         * config/nvptx/error.c: Likewise.
2799         * config/nvptx/fortran.c: Likewise.
2800         * config/nvptx/iter.c: Likewise.
2801         * config/nvptx/iter_ull.c: Likewise.
2802         * config/nvptx/libgomp-plugin.c: Likewise.
2803         * config/nvptx/lock.c: Likewise.
2804         * config/nvptx/loop.c: Likewise.
2805         * config/nvptx/loop_ull.c: Likewise.
2806         * config/nvptx/mutex.c: Likewise.
2807         * config/nvptx/oacc-async.c: Likewise.
2808         * config/nvptx/oacc-cuda.c: Likewise.
2809         * config/nvptx/oacc-host.c: Likewise.
2810         * config/nvptx/oacc-init.c: Likewise.
2811         * config/nvptx/oacc-mem.c: Likewise.
2812         * config/nvptx/oacc-parallel.c: Likewise.
2813         * config/nvptx/oacc-plugin.c: Likewise.
2814         * config/nvptx/omp-lock.h: Likewise.
2815         * config/nvptx/ordered.c: Likewise.
2816         * config/nvptx/parallel.c: Likewise.
2817         * config/nvptx/proc.c: Likewise.
2818         * config/nvptx/ptrlock.c: Likewise.
2819         * config/nvptx/sections.c: Likewise.
2820         * config/nvptx/sem.c: Likewise.
2821         * config/nvptx/single.c: Likewise.
2822         * config/nvptx/splay-tree.c: Likewise.
2823         * config/nvptx/target.c: Likewise.
2824         * config/nvptx/task.c: Likewise.
2825         * config/nvptx/team.c: Likewise.
2826         * config/nvptx/time.c: Likewise.
2827         * config/nvptx/work.c: Likewise.
2828         * configure.ac: Don't probe pthreads support for host nvptx*-*-*.
2829         * configure: Regenerate.
2830         * configure.tgt (config_path): Set to "nvptx" for target
2831         nvptx*-*-*.
2833 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
2835         * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
2837 2015-08-03  Nathan Sidwell  <nathan@codesourcery.com>
2839         * plugin/plugin-nvptx.c: Don't include dlfcn.h.
2840         (cuda_errlist): Constify.
2841         (errmsg):  Move into ...
2842         (cuda_error): ... here.  Make smaller.
2843         (_XSTR, _STR): Delete.
2844         (cuda_synames): Delete.
2845         (verify_device_library): Delete.
2846         (nvptx_init): Don't call it.
2848 2015-07-28  Tom de Vries  <tom@codesourcery.com>
2850         * testsuite/libgomp.c/uns-outer-4.c: New test.
2852 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
2854         * testsuite/libgomp.c/pr66714.c: New test.
2856 2015-07-22  Maxim Blumenthal  <maxim.blumenthal@intel.com>
2858         PR libgomp/66950
2859         * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
2860         (fib_ref): New function.
2861         (fib): Correct corner cases in the recursion.
2862         (main): Replace the non-simd loop with fib_ref call.
2863         * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
2864         subroutine.
2865         (fibonacci): Lower the parameter N to 30.  Correct accordingly check
2866         for the last array element value.  Replace the non-simd loop with
2867         fib_ref call.  Remove redundant b_ref array.  Remove the comparison
2868         of the last array element with according Fibonacci sequence element.
2869         (fib): Correct corner cases in the recursion.
2871 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
2873         * target.c (gomp_offload_image_to_device): Rename to ...
2874         (gomp_load_image_to_device): ... here.
2875         (GOMP_offload_register): Adjust call.
2876         (gomp_init_device): Likewise.
2877         (gomp_unload_image_from_device): New.  Broken out of ...
2878         (GOMP_offload_unregister): ... here.  Call it.
2879         (gomp_unload_device): New.
2880         * libgomp.h (gomp_unload_device): Declare.
2881         * oacc-init.c (acc_shutdown_1): Unload from device before deleting
2882         mem maps.
2884 2015-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2886         * oacc-parallel.c (GOACC_parallel): Move variadic handling into
2887         wait=-specific if.
2888         (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
2889         !=0 condition.
2890         (goacc_waits): Move !num_waits handling to ...
2891         (GOACC_wait): ... here, the only caller that might have zero waits.
2893         * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
2894         (struct ptx_image_data): Move earlier, add fns field.
2895         (struct ptx_device): Add images and image_lock fields.
2896         (ptx_images, ptx_image_lock): Delete.
2897         (nvptx_open_device): Initialize images and image_lock fields.
2898         (nvptx_close_device): Destroy image_lock.
2899         (GOMP_OFFLOAD_load_image): Register image to device-specific fields.
2900         (GOMP_OFFLOAD_unload_image): Unregister image from device-specific
2901         fields.
2903 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
2905         * target.c (GOMP_offload_register): Use int for device type arg.
2906         (GOMP_offload_unregister): Likewise.
2908         * target.c (struct_offload_image_descr): Constify host_table.
2909         (gomp_offload_image_to_device): Likewise.
2910         (GOMP_offload_register, GOMP_offload_unregister): Likewise.
2912         * libgomp.h (gomp_device_descr): Constify target data arguments.
2913         * target.c (struct offload_image_descr): Constify target_data.
2914         (gomp_offload_image_to_device): Likewise.
2915         (GOMP_offload_register): Likewise.
2916         (GOMP_offload_unrefister): Likewise.
2917         * plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
2918         GOMP_OFFLOAD_unload_image): Constify target data.
2919         * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
2920         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
2922 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
2924         * plugin/plugin-nvptx.c (link_ptx): Constify string argument.
2925         Workaround driver library const error.
2926         (struct nvptx_tdata, nvptx_tdata_t): New.
2927         (GOMP_OFFLOAD_load_image): Use struct for target_data's real
2928         type.
2930 2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>
2932         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
2933         of EPS parameter from integer to real.
2934         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
2935         type of EPS parameter from integer to real.
2937 2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2939         * team.c (get_last_team): New.
2940         (gomp_new_team): Recycle last non-nested team if possible.
2941         (gomp_team_end): Move team work share list free lock destruction
2942         to ...
2943         (free_team): ... here.
2945 2015-07-14  Maxim Blumenthal  <maxim.blumenthal@intel.com>
2947         * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
2948         and ref from int to double.  Replaced their comparison with
2949         an inequality of their difference and EPS.
2950         * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
2951         comparison of pri and a reference number with an inequality of their
2952         difference and EPS.
2953         * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
2954         the comparison of sum and sum_ref with an inequality of their
2955         difference and EPS.
2956         * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
2957         the comparison of pri and a reference number with an inequality of
2958         their difference and EPS.
2960 2015-07-13  Maxim Blumenthal  <maxim.blumenthal@intel.com>
2962         * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
2963         * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
2964         * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
2965         * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
2966         * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
2967         * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
2968         * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
2969         * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
2970         * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
2971         * testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
2972         * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
2973         * testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
2974         (vec_mult_ref): Remove v1 and v2 arguments, turn them into local
2975         variables.
2976         (vec_mult): Likewise.  Add #pragma omp taskwait.
2977         (main): Adjust caller.
2978         * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
2979         * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
2980         * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
2981         * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
2982         * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
2983         * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
2984         * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
2985         * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
2986         * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
2987         * testsuite/libgomp.c/examples-4/device-1.c: ...this.
2988         * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
2989         * testsuite/libgomp.c/examples-4/device-2.c: ...this.
2990         * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
2991         * testsuite/libgomp.c/examples-4/device-3.c: ...this.
2992         * testsuite/libgomp.c/examples-4/simd-1.c: New file.
2993         * testsuite/libgomp.c/examples-4/simd-2.c: New file.
2994         * testsuite/libgomp.c/examples-4/simd-3.c: New file.
2995         * testsuite/libgomp.c/examples-4/simd-4.c: New file.
2996         * testsuite/libgomp.c/examples-4/simd-5.c: New file.
2997         * testsuite/libgomp.c/examples-4/simd-6.c: New file.
2998         * testsuite/libgomp.c/examples-4/simd-7.c: New file.
2999         * testsuite/libgomp.c/examples-4/simd-8.c: New file.
3000         * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
3001         * testsuite/libgomp.c/examples-4/target-1.c: ...this.
3002         * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
3003         * testsuite/libgomp.c/examples-4/target-2.c: ...this.
3004         * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
3005         * testsuite/libgomp.c/examples-4/target-3.c: ...this.
3006         * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
3007         * testsuite/libgomp.c/examples-4/target-4.c: ...this.
3008         * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
3009         * testsuite/libgomp.c/examples-4/target-5.c: ...this.
3010         * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
3011         * testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
3012         * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
3013         * testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
3014         * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
3015         * testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
3016         * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
3017         * testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
3018         * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
3019         * testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
3020         * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
3021         * testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
3022         * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
3023         * testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
3024         * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
3025         * testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
3026         * testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
3027         * testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
3028         * testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
3029         * testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
3030         * testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
3031         * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
3032         * testsuite/libgomp.c/examples-4/teams-2.c: ...this.
3033         * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
3034         * testsuite/libgomp.c/examples-4/teams-3.c: ...this.
3035         * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
3036         * testsuite/libgomp.c/examples-4/teams-4.c: ...this.
3037         * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
3038         * testsuite/libgomp.c/examples-4/teams-5.c: ...this.
3039         * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
3040         * testsuite/libgomp.c/examples-4/teams-6.c: ...this.
3041         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
3042         * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
3043         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
3044         * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
3045         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
3046         * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
3047         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
3048         * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
3049         (vec_mult): Add !$omp taskwait.
3050         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
3051         * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
3052         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
3053         * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
3054         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
3055         * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
3056         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
3057         * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
3058         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
3059         * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
3060         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
3061         * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
3062         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
3063         * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
3064         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
3065         * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
3066         * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
3067         * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
3068         * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
3069         * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
3070         * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
3071         * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
3072         * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
3073         * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
3074         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
3075         * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
3076         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
3077         * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
3078         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
3079         * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
3080         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
3081         * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
3082         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
3083         * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
3084         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
3085         * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
3086         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
3087         * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
3088         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
3089         * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
3090         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
3091         * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
3092         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
3093         * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
3094         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
3095         * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
3096         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
3097         * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
3098         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
3099         * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
3100         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
3101         * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
3102         * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
3103         * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
3104         * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
3105         * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
3106         * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
3107         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
3108         * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
3109         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
3110         * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
3111         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
3112         * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
3113         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
3114         * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
3115         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
3116         * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
3118 2015-07-10  Tom de Vries  <tom@codesourcery.com>
3120         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
3121         * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
3123 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
3125         PR libgomp/65099
3126         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
3127         in a 64-bit configuration.
3128         * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
3129         offloading testing if no such device is available.
3130         * testsuite/libgomp.oacc-c/c.exp: Likewise.
3131         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
3133 2015-07-08  Tom de Vries  <tom@codesourcery.com>
3135         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
3136         second call to f.
3137         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
3139 2015-07-07  Tom de Vries  <tom@codesourcery.com>
3141         PR tree-optimization/66642
3142         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
3143         iteration count case.
3144         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
3145         function, factor out of ...
3146         (main): ... here.  Test low iteration count case.
3148 2015-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3150         * libgomp.h (gomp_thread_pool): Comment last_team field.
3152 2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
3154         * testsuite/libgomp.c++/pr66702-1.C: Require
3155         vect_simd_clones effective target.
3156         * testsuite/libgomp.c++/pr66702-2.C: Ditto.
3158 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3160         * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
3161         already set.  Use DEFAULT_CFLAGS in dg-runtest.
3162         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
3163         "-O2".
3165 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3167         * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
3168         already set.  Use DEFAULT_CFLAGS in dg-runtest.
3169         * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
3170         * testsuite/libgomp.c++/pr64824.C: Same.
3171         * testsuite/libgomp.c++/pr64868.C: Same.
3172         * testsuite/libgomp.c++/pr66199-1.C: Same.
3173         * testsuite/libgomp.c++/pr66199-2.C: Same.
3174         * testsuite/libgomp.c++/target-2.C: Same.
3175         * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
3176         -std=<standard> option.
3177         * testsuite/libgomp.c++/udr-11.C: Same.
3178         * testsuite/libgomp.c++/udr-12.C: Same.
3179         * testsuite/libgomp.c++/udr-13.C: Same.
3180         * testsuite/libgomp.c++/udr-14.C: Same.
3181         * testsuite/libgomp.c++/udr-15.C: Same.
3182         * testsuite/libgomp.c++/udr-16.C: Same.
3183         * testsuite/libgomp.c++/udr-17.C: Same.
3184         * testsuite/libgomp.c++/udr-18.C: Same.
3185         * testsuite/libgomp.c++/udr-19.C: Same.
3186         * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
3187         * testsuite/libgomp.c++/simd-1.C: Same.
3188         * testsuite/libgomp.c++/simd-2.C: Same.
3189         * testsuite/libgomp.c++/simd-3.C: Same.
3190         * testsuite/libgomp.c++/simd-4.C: Same.
3191         * testsuite/libgomp.c++/simd-5.C: Same.
3192         * testsuite/libgomp.c++/simd-6.C: Same.
3193         * testsuite/libgomp.c++/simd-7.C: Same.
3194         * testsuite/libgomp.c++/simd-8.C: Same.
3195         * testsuite/libgomp.c++/simd-9.C: Same.
3196         * testsuite/libgomp.c++/simd10.C: Same.
3197         * testsuite/libgomp.c++/simd11.C: Same.
3198         * testsuite/libgomp.c++/simd12.C: Same.
3199         * testsuite/libgomp.c++/simd13.C: Same.
3201 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
3203         PR middle-end/66702
3204         * testsuite/libgomp.c++/pr66702-1.C: New test.
3205         * testsuite/libgomp.c++/pr66702-2.C: New test.
3207 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3209         * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
3210         * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
3211         * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
3212         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
3214 2015-06-30  Tom de Vries  <tom@codesourcery.com>
3216         PR tree-optimization/66652
3217         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
3218         using restrict pointers.
3219         (main): Add arguments to calls to f.
3220         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
3222 2015-06-23  Andreas Tobler  <andreast@gcc.gnu.org>
3224         * configure.ac: Fix check for header <sys/sysctl.h>.
3225         * configure: Regenerate.
3226         * config.h.in: Likewise.
3228 2015-06-23  Tom de Vries  <tom@codesourcery.com>
3230         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
3231         abort.
3232         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
3234 2015-06-19  Thomas Schwinge  <thomas@codesourcery.com>
3236         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
3237         acc_device_nvidia.
3239         PR libgomp/66518
3240         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
3241         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
3243 2015-06-15  Tom de Vries  <tom@codesourcery.com>
3245         * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2".  Use
3246         dg-additional-options for any remaining options.
3247         * testsuite/libgomp.c/atomic-2.c: Same.
3248         * testsuite/libgomp.c/atomic-4.c: Same.
3249         * testsuite/libgomp.c/atomic-5.c: Same.
3250         * testsuite/libgomp.c/atomic-6.c: Same.
3251         * testsuite/libgomp.c/autopar-1.c: Same.
3252         * testsuite/libgomp.c/copyin-1.c: Same.
3253         * testsuite/libgomp.c/copyin-2.c: Same.
3254         * testsuite/libgomp.c/copyin-3.c: Same.
3255         * testsuite/libgomp.c/examples-4/e.53.5.c: Same.
3256         * testsuite/libgomp.c/nestedfn-5.c: Same.
3257         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
3258         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
3259         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
3260         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
3261         * testsuite/libgomp.c/pr32362-1.c: Same.
3262         * testsuite/libgomp.c/pr32362-2.c: Same.
3263         * testsuite/libgomp.c/pr32362-3.c: Same.
3264         * testsuite/libgomp.c/pr39591-1.c: Same.
3265         * testsuite/libgomp.c/pr39591-2.c: Same.
3266         * testsuite/libgomp.c/pr39591-3.c: Same.
3267         * testsuite/libgomp.c/pr58392.c: Same.
3268         * testsuite/libgomp.c/pr58756.c: Same.
3269         * testsuite/libgomp.c/simd-1.c: Same.
3270         * testsuite/libgomp.c/simd-10.c: Same.
3271         * testsuite/libgomp.c/simd-11.c: Same.
3272         * testsuite/libgomp.c/simd-12.c: Same.
3273         * testsuite/libgomp.c/simd-13.c: Same.
3274         * testsuite/libgomp.c/simd-14.c: Same.
3275         * testsuite/libgomp.c/simd-15.c: Same.
3276         * testsuite/libgomp.c/simd-2.c: Same.
3277         * testsuite/libgomp.c/simd-3.c: Same.
3278         * testsuite/libgomp.c/simd-4.c: Same.
3279         * testsuite/libgomp.c/simd-5.c: Same.
3280         * testsuite/libgomp.c/simd-6.c: Same.
3281         * testsuite/libgomp.c/simd-7.c: Same.
3282         * testsuite/libgomp.c/simd-8.c: Same.
3283         * testsuite/libgomp.c/simd-9.c: Same.
3285 2015-06-15  Tom de Vries  <tom@codesourcery.com>
3287         * testsuite/libgomp.c/pr35625.c: Fix typo.
3289 2015-06-15  Tom de Vries  <tom@codesourcery.com>
3291         * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
3292         in dg-options.
3293         * testsuite/libgomp.c/atomic-3.c: Same.
3294         * testsuite/libgomp.c/debug-1.c: Same.
3295         * testsuite/libgomp.c/nqueens-1.c: Same.
3296         * testsuite/libgomp.c/pr26171.c: Same.
3297         * testsuite/libgomp.c/pr48591.c: Same.
3298         * testsuite/libgomp.c/pr64824.c: Same.
3299         * testsuite/libgomp.c/pr64868.c: Same.
3300         * testsuite/libgomp.c/pr66133.c: Same.
3301         * testsuite/libgomp.c/pr66199-1.c: Same.
3302         * testsuite/libgomp.c/pr66199-2.c: Same.
3303         * testsuite/libgomp.c/target-8.c: Same.
3305 2015-06-15  Tom de Vries  <tom@codesourcery.com>
3307         * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
3308         -std={gnu99,c99}.
3309         * testsuite/libgomp.c/for-1.c: Same.
3310         * testsuite/libgomp.c/for-2.c: Same.
3311         * testsuite/libgomp.c/for-3.c: Same.
3312         * testsuite/libgomp.c/pr35625.c: Same.
3313         * testsuite/libgomp.c/pr39154.c: Same.
3314         * testsuite/libgomp.c/simd-16.c: Same.
3315         * testsuite/libgomp.c/simd-17.c: Same.
3317 2015-06-13  Tom de Vries  <tom@codesourcery.com>
3319         * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
3321 2015-06-13  Tom de Vries  <tom@codesourcery.com>
3323         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
3324         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
3325         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
3326         (N): Define.
3327         (main): Use N instead of hardcoded constants.
3329 2015-06-05  Tom de Vries  <tom@codesourcery.com>
3331         merge from gomp4 branch:
3332         2015-05-28  Tom de Vries  <tom@codesourcery.com>
3334         PR tree-optimization/65443
3335         * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
3336         * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
3337         * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
3339 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3341         * testsuite/libgomp.graphite/bounds.c: Adjust for
3342         cleanup-tree-dump removal.
3343         * testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
3344         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
3345         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
3346         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
3347         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
3348         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
3349         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
3350         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
3351         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
3352         * testsuite/libgomp.graphite/pr41118.c: Likewise.
3354 2015-05-28  Uros Bizjak  <ubizjak@gmail.com>
3356         * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
3357         (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
3358         (futex_wake) [!__x86_64__]: Ditto.
3360 2015-05-28  Julian Brown  <julian@codesourcery.com>
3362         * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
3363         function comment. Only call gomp_fatal if new argument is true.
3364         (acc_dev_num_out_of_range): New function.
3365         (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
3366         acc_dev_num_out_of_range as appropriate.
3367         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
3368         (acc_get_device_num, acc_set_device_num): Update calls to
3369         resolve_device.
3370         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
3371         output.
3373 2015-05-28  Julian Brown  <julian@codesourcery.com>
3375         PR libgomp/65742
3376         * oacc-init.c (plugin/plugin-host.h): Include.
3377         (acc_on_device): Check whether we're in an offloaded region for
3378         host_nonshm
3379         plugin. Don't use __builtin_acc_on_device.
3380         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
3381         nonshm_exec flag in thread-local data.
3382         (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
3383         data for host_nonshm plugin.
3384         (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
3385         for host_nonshm plugin.
3386         * plugin/plugin-host.h: New.
3388 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
3390         * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
3392 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
3394         * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
3395         Declare as int.
3396         (FUTEX_PRIVATE_FLAG): Remove L suffix.
3397         * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
3398         Declare as int.
3400 2015-05-27  Uros Bizjak  <ubizjak@gmail.com>
3402         * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
3404 2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
3406         * target.c (gomp_map_pointer): New function abstracting out
3407         GOMP_MAP_POINTER handling.
3408         (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
3409         gomp_map_pointer().
3411 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
3413         PR middle-end/66199
3414         * testsuite/libgomp.c/pr66199-1.c: New test.
3415         * testsuite/libgomp.c/pr66199-2.c: New test.
3416         * testsuite/libgomp.c++/pr66199-1.C: New test.
3417         * testsuite/libgomp.c++/pr66199-2.C: New test.
3418         * testsuite/libgomp.fortran/pr66199-1.f90: New test.
3419         * testsuite/libgomp.fortran/pr66199-2.f90: New test.
3421 2015-05-19  Julian Brown  <julian@codesourcery.com>
3423         * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
3424         on cuInit failure.
3426 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
3428         PR middle-end/66133
3429         * testsuite/libgomp.c/pr66133.c: New test.
3431 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
3433         * Makefile.in: Regenerated with automake-1.11.6.
3434         * aclocal.m4: Likewise.
3435         * config.h.in: Likewise.
3436         * configure: Likewise.
3437         * testsuite/Makefile.in: Likewise.
3439 2015-05-08  Jason Merrill  <jason@redhat.com>
3441         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
3442         _Complex.
3444         * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
3446 2015-05-06  Julian Brown  <julian@codesourcery.com>
3448         * oacc-init.c (acc_device_lock): Add explanatory comment.
3449         (resolve_device): Add comment about locking requirement.
3450         (acc_init_1, acc_shutdown_1): Likewise. Add locking around
3451         gomp_init_device and gomp_fini_device calls.
3452         (acc_get_num_devices, acc_set_device_type, acc_get_device_type)
3453         (acc_get_device_num, acc_set_device_num): Add locking around
3454         resolve_device and gomp_init_device calls.
3456 2015-05-06  Julian Brown  <julian@codesourcery.com>
3458         * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
3459         goacc_thread_lock on error paths.
3460         * oacc-mem.c (lookup_host): Remove locking from function. Note
3461         locking requirement for caller in function comment.
3462         (lookup_dev): Likewise.
3463         (acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
3464         (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
3465         (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
3466         Add locking.
3468 2015-05-05  Thomas Schwinge  <thomas@codesourcery.com>
3470         PR testsuite/65205
3471         PR libgomp/65993
3472         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
3473         don't expect "0x" prefix for "%p" format specifier, don't expect
3474         "(nil)" for NULL pointer.
3475         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
3476         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
3477         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
3478         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
3479         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
3480         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
3481         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
3482         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
3483         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
3484         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
3485         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
3486         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
3487         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
3488         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
3489         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
3490         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
3491         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
3492         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
3493         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
3494         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
3495         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
3496         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
3497         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
3498         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
3499         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
3500         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
3501         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
3502         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
3503         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
3504         accurately specify what we're looking for.
3505         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
3506         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
3507         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
3508         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
3509         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
3511 2015-04-30  James Norris  <jnorris@codesourcery.com>
3513         PR testsuite/65205
3514         * testsuite/lib/libgomp.exp
3515         (check_effective_target_openacc_host_selected)
3516         (check_effective_target_openacc_host_nonshm_selected): New
3517         procedures.
3518         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
3519         dg-shouldfail.
3520         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
3521         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
3522         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
3523         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
3524         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
3525         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
3526         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
3527         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
3528         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
3529         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
3530         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
3531         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
3532         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
3533         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
3534         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
3535         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
3536         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
3537         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
3538         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
3539         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
3540         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
3541         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
3542         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
3543         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
3544         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
3545         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
3546         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
3547         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
3548         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
3549         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
3550         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
3551         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
3552         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
3553         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
3554         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
3555         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
3556         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
3557         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
3558         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
3559         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
3560         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
3561         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
3562         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
3564 2015-04-08  Julian Brown  <julian@codesourcery.com>
3566         * libgomp.h (target_mem_desc: Remove mem_map field.
3567         (acc_dispatch_t): Remove open_device_func, close_device_func,
3568         get_device_num_func, set_device_num_func, target_data members.
3569         Change create_thread_data_func argument to device number instead of
3570         generic pointer.
3571         * oacc-async.c (assert.h): Include.
3572         (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
3573         (acc_wait_all, acc_wait_all_async): Use current host thread's
3574         active device, not base_dev.
3575         * oacc-cuda.c (acc_get_current_cuda_device)
3576         (acc_get_current_cuda_context, acc_get_cuda_stream)
3577         (acc_set_cuda_stream): Likewise.
3578         * oacc-host.c (host_dispatch): Don't set open_device_func,
3579         close_device_func, get_device_num_func or set_device_num_func.
3580         * oacc-init.c (base_dev, init_key): Remove.
3581         (cached_base_dev): New.
3582         (name_of_acc_device_t): New.
3583         (acc_init_1): Initialise default-numbered device, not zeroth.
3584         (acc_shutdown_1): Close all devices of a given type.
3585         (goacc_destroy_thread): Don't use base_dev.
3586         (lazy_open, lazy_init, lazy_init_and_open): Remove.
3587         (goacc_attach_host_thread_to_device): New.
3588         (acc_init): Reimplement with goacc_attach_host_thread_to_device.
3589         (acc_get_num_devices): Don't use base_dev.
3590         (acc_set_device_type): Reimplement.
3591         (acc_get_device_type): Don't use base_dev.
3592         (acc_get_device_num): Tweak logic.
3593         (acc_set_device_num): Likewise.
3594         (acc_on_device): Use acc_get_device_type.
3595         (goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
3596         (goacc_lazy_initialize): Reimplement with acc_init and
3597         goacc_attach_host_thread_to_device.
3598         * oacc-int.h (goacc_thread): Add base_dev field.
3599         (base_dev): Remove extern declaration.
3600         (goacc_attach_host_thread_to_device): Add prototype.
3601         * oacc-mem.c (acc_malloc): Use current thread's device instead of
3602         base_dev.
3603         (acc_free): Likewise.
3604         (acc_memcpy_to_device): Likewise.
3605         (acc_memcpy_from_device): Likewise.
3606         * oacc-parallel.c (select_acc_device): Remove. Replace calls with
3607         goacc_lazy_initialize (throughout).
3608         (GOACC_parallel): Use tgt_offset to locate target functions.
3609         * target.c (gomp_map_vars): Don't set tgt->mem_map.
3610         (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
3611         (gomp_load_plugin_for_device): Remove open_device, close_device,
3612         get_device_num, set_device_num openacc hook initialisation. Don't set
3613         openacc.target_data.
3614         * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
3615         (GOMP_OFFLOAD_openacc_close_device)
3616         (GOMP_OFFLOAD_openacc_get_device_num)
3617         (GOMP_OFFLOAD_openacc_set_device_num): Remove.
3618         (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
3619         to int.
3620         * plugin/plugin-nvptx.c (ptx_inited): Remove.
3621         (instantiated_devices, ptx_dev_lock): New.
3622         (struct ptx_image_data): New.
3623         (ptx_devices, ptx_images, ptx_image_lock): New.
3624         (fini_streams_for_device): Reorder cuStreamDestroy call.
3625         (nvptx_get_num_devices): Remove forward declaration.
3626         (nvptx_init): Change return type to bool.
3627         (nvptx_fini): Remove.
3628         (nvptx_attach_host_thread_to_device): New.
3629         (nvptx_open_device): Return struct ptx_device* instead of void*.
3630         (nvptx_close_device): Change argument type to struct ptx_device*,
3631         return type to void.
3632         (nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
3633         (kernel_target_data, kernel_host_table): Remove static globals.
3634         (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
3635         (GOMP_OFFLOAD_init_device): Reimplement.
3636         (GOMP_OFFLOAD_fini_device): Likewise.
3637         (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
3638         (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
3639         (GOMP_OFFLOAD_host2dev): Use ORD argument.
3640         (GOMP_OFFLOAD_openacc_open_device)
3641         (GOMP_OFFLOAD_openacc_close_device)
3642         (GOMP_OFFLOAD_openacc_set_device_num)
3643         (GOMP_OFFLOAD_openacc_get_device_num): Remove.
3644         (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
3645         (device number).
3647         testsuite/
3648         * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
3650 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
3652         * libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
3653         * libgomp.h (struct gomp_memory_mapping): Remove.
3654         (struct target_mem_desc): Change type of mem_map from
3655         gomp_memory_mapping * to splay_tree_s *.
3656         (struct gomp_device_descr): Remove register_image_func, get_table_func.
3657         Add load_image_func, unload_image_func.
3658         Change type of mem_map from gomp_memory_mapping to splay_tree_s.
3659         Remove offload_regions_registered.
3660         (gomp_init_tables): Remove.
3661         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
3662         to splay_tree_s *.
3663         * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
3664         * oacc-host.c (host_dispatch): Do not initialize register_image_func,
3665         get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
3666         offload_regions_registered.
3667         Initialize load_image_func, unload_image_func, mem_map.root.
3668         (goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
3669         * oacc-init.c (lazy_open): Don't call gomp_init_tables.
3670         (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
3671         * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
3672         gomp_memory_mapping *.  Use dev's lock and splay_tree.
3673         (lookup_dev): Use dev's lock.
3674         (acc_deviceptr): Pass dev to lookup_host instead of mem_map.
3675         (acc_is_present): Likewise.
3676         (acc_map_data): Likewise.
3677         (acc_unmap_data): Likewise.  Use dev's lock.
3678         (present_create_copy): Likewise.
3679         (delete_copyout): Pass dev to lookup_host instead of mem_map.
3680         (update_dev_host): Likewise.
3681         (gomp_acc_remove_pointer): Likewise.  Use dev's lock.
3682         * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
3683         * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
3684         (GOMP_OFFLOAD_get_table): Remove
3685         (GOMP_OFFLOAD_load_image): New function.
3686         (GOMP_OFFLOAD_unload_image): New function.
3687         * target.c (register_lock): New mutex for offload image registration.
3688         (num_devices): Do not guard with PLUGIN_SUPPORT.
3689         (gomp_realloc_unlock): New static function.
3690         (gomp_map_vars_existing): Add device descriptor argument.  Unlock mutex
3691         before gomp_fatal.
3692         (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
3693         Pass devicep to gomp_map_vars_existing.  Unlock mutex before gomp_fatal.
3694         (gomp_copy_from_async): Use dev's lock and splay_tree instead of
3695         mem_map's.
3696         (gomp_unmap_vars): Likewise.
3697         (gomp_update): Remove gomp_memory_mapping argument.  Use dev's lock and
3698         splay_tree instead of mm's.  Unlock mutex before gomp_fatal.
3699         (gomp_offload_image_to_device): New static function.
3700         (GOMP_offload_register): Add mutex lock.
3701         Call gomp_offload_image_to_device for all initialized devices.
3702         Replace gomp_realloc with gomp_realloc_unlock.
3703         (GOMP_offload_unregister): New function.
3704         (gomp_init_tables): Replace with gomp_init_device.  Replace a call to
3705         get_table_func from the plugin with calls to init_device_func and
3706         gomp_offload_image_to_device.
3707         (gomp_free_memmap): Change type of argument from gomp_memory_mapping *
3708         to splay_tree_s *.
3709         (GOMP_target): Do not call gomp_init_tables.  Use dev's lock and
3710         splay_tree instead of mem_map's.  Unlock mutex before gomp_fatal.
3711         (GOMP_target_data): Do not call gomp_init_tables.
3712         (GOMP_target_update): Likewise.  Remove argument from gomp_update.
3713         (gomp_load_plugin_for_device): Replace register_image and get_table
3714         with load_image and unload_image in DLSYM ().
3715         (gomp_register_images_for_device): Remove function.
3716         (gomp_target_init): Do not initialize current_device.mem_map.*,
3717         current_device.offload_regions_registered.
3718         Remove call to gomp_register_images_for_device.
3719         Do not free offload_images and num_offload_images.
3721 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
3723         PR fortran/65597
3724         * testsuite/libgomp.fortran/pr65597.f90: New test.
3726 2015-03-27  Tom de Vries  <tom@codesourcery.com>
3728         PR testsuite/65594
3729         * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
3730         (init, check): New function.
3731         (foo): Change return type to void.
3732         (main): Call init and check.
3734 2015-03-27  Tom de Vries  <tom@codesourcery.com>
3736         PR testsuite/65594
3737         * testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
3738         (foo): Use M for non-inner loops to scale down test-case.
3740 2015-03-25  Kai Tietz  <ktietz@redhat.com>
3742         PR libgomp/64972
3743         * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
3744         (GOACC_data_start): Likewise.
3745         * target.c (gomp_map_vars): Likewise.
3747 2015-03-21  John David Anglin  <danglin@gcc.gnu.org>
3749         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
3750         hppa*-*-hpux*.
3752 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
3754         * testsuite/libgomp.c/target-10.c: New test.
3755         * testsuite/libgomp.c++/target-4.C: New test.
3757 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
3759         * testsuite/libgomp.fortran/declare-target-1.f90: New test.
3760         * testsuite/libgomp.fortran/declare-target-2.f90: New file.
3762 2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3764         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
3765         * configure.ac (*-*-rtems*): Assume Pthread is supported.
3766         (pthread.h): Check for this header file.
3767         * configure: Regenerate.
3769 2015-02-25  Tom de Vries  <tom@codesourcery.com>
3771         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
3772         (check_reduction_op, check_reduction_macro, max, min):
3773         Declare.
3774         (test_reductions_int, test_reductions_minmax, test_reductions_bool): New
3775         function.
3776         (main): Use new functions.
3778 2015-02-18  Ilya Tocar  <ilya.tocar@intel.com>
3780         * target.c (gomp_load_plugin_for_device): Use const char * instead of
3781         char * for variables holding dlerror return values.
3782         (DLSYM_OPT): Ditto.
3784 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
3786         * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
3788 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
3789             Cesar Philippidis  <cesar@codesourcery.com>
3791         * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
3792         GOACC_ctaid, and GOACC_nctaid routines.
3794 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
3796         PR c/64824
3797         * testsuite/libgomp.c/atomic-18.c: New test.
3798         * testsuite/libgomp.c++/atomic-16.C: New test.
3800 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
3802         PR c/64824
3803         PR c/64868
3804         * testsuite/libgomp.c/pr64824.c: New test.
3805         * testsuite/libgomp.c/pr64868.c: New test.
3806         * testsuite/libgomp.c++/pr64824.C: New test.
3807         * testsuite/libgomp.c++/pr64868.C: New test.
3809 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
3811         PR libgomp/64635
3812         * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
3813         Link with -lpthread.
3814         * config/aix/plugin-suffix.h: Delete.
3816 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
3818         PR libgomp/64635
3819         * configure.tgt (*-*-aix*): Use config_path "aix posix".
3820         (*-*-darwin*): Use config_path "bsd darwin posix".
3821         (*-*-hpux*): Use config_path "hpux posix".
3822         * target.c: Add include of plugin-suffix.h and use
3823         SONAME_SUFFIX macro.
3824         * config/aix/plugin-suffix.h: New file.
3825         * config/darwin/plugin-suffix.h: New file.
3826         * config/hpux/plugin-suffix.h: New file.
3827         * config/posix/plugin-suffix.h: New file.
3829 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
3831         PR middle-end/64734
3832         * libgomp.c/pr64734.c: New test.
3834 2015-01-23  Tom de Vries  <tom@codesourcery.com>
3836         PR libgomp/64672
3837         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
3839 2015-01-23  Tom de Vries  <tom@codesourcery.com>
3841         PR libgomp/64707
3842         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
3843         dg-options.
3845 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
3847         PR libgomp/64625
3848         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
3849         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
3850         formal parameter.  Update all users.
3851         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
3852         Document unused formal parameter.
3854 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
3856         * oacc-parallel.c: Don't include <alloca.h>.
3857         (GOACC_parallel): Use gomp_alloca instead of alloca.
3859 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
3861         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
3863 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
3864             James Norris  <jnorris@codesourcery.com>
3865             Tom de Vries  <tom@codesourcery.com>
3866             Julian Brown  <julian@codesourcery.com>
3867             Cesar Philippidis  <cesar@codesourcery.com>
3868             Nathan Sidwell  <nathan@codesourcery.com>
3869             Tobias Burnus  <burnus@net-b.de>
3871         * Makefile.am (search_path): Add $(top_srcdir)/../include.
3872         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
3873         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
3874         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
3875         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
3876         Include $(top_srcdir)/plugin/Makefrag.am.
3877         (nodist_libsubinclude_HEADERS): Add openacc.h.
3878         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
3879         openacc.f90, openacc.mod, openacc_kinds.mod.
3880         (omp_lib.mod): Generalize into...
3881         (%.mod): ... this new rule.
3882         (openacc_kinds.mod, openacc.mod): New rules.
3883         * plugin/configfrag.ac: New file.
3884         * configure.ac: Move plugin/offloading support into it.  Include
3885         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
3886         * plugin/Makefrag.am: New file.
3887         * testsuite/Makefile.am (OFFLOAD_TARGETS)
3888         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
3889         export.
3890         (libgomp-test-support.exp): New rule.
3891         (all-local): Depend on it.
3892         * Makefile.in: Regenerate.
3893         * testsuite/Makefile.in: Regenerate.
3894         * config.h.in: Likewise.
3895         * configure: Likewise.
3896         * configure.tgt: Harden shell syntax.
3897         * env.c: Include "oacc-int.h".
3898         (parse_acc_device_type): New function.
3899         (gomp_debug_var, goacc_device_type, goacc_device_num): New
3900         variables.
3901         (initialize_env): Initialize those.  Call
3902         goacc_runtime_initialize.
3903         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
3904         (gomp_fatal): Call gomp_vfatal.
3905         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
3906         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
3907         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
3908         (splay_tree_node, splay_tree, splay_tree_key)
3909         (struct target_mem_desc, struct splay_tree_key_s)
3910         (struct gomp_memory_mapping, struct acc_dispatch_t)
3911         (struct gomp_device_descr, gomp_acc_insert_pointer)
3912         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
3913         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
3914         (gomp_free_memmap, gomp_fini_device): New declarations.
3915         (gomp_vdebug, gomp_debug): New macros.
3916         Include "splay-tree.h".
3917         * libgomp.map (OACC_2.0): New symbol version.  Use for
3918         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
3919         acc_set_device_type_h_, acc_get_device_type,
3920         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
3921         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
3922         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
3923         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
3924         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
3925         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
3926         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
3927         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
3928         acc_copyin_array_h_, acc_present_or_copyin,
3929         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
3930         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
3931         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
3932         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
3933         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
3934         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
3935         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
3936         acc_update_device, acc_update_device_32_h_,
3937         acc_update_device_64_h_, acc_update_device_array_h_,
3938         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
3939         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
3940         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
3941         acc_is_present_64_h_, acc_is_present_array_h_,
3942         acc_memcpy_to_device, acc_memcpy_from_device,
3943         acc_get_current_cuda_device, acc_get_current_cuda_context,
3944         acc_get_cuda_stream, acc_set_cuda_stream.
3945         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
3946         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
3947         GOACC_update, GOACC_wait, GOACC_get_thread_num,
3948         GOACC_get_num_threads.
3949         (GOMP_PLUGIN_1.0): New symbol version.  Use for
3950         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
3951         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
3952         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
3953         GOMP_PLUGIN_acc_thread.
3954         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
3955         environment variable.
3956         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
3957         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
3958         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
3959         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
3960         (splay_tree_remove): New declarations.
3961         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
3962         (splay_tree_remove, splay_tree_lookup): Move into...
3963         * splay-tree.c: ... this new file.
3964         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
3965         (splay_tree_node, splay_tree, splay_tree_key)
3966         (struct target_mem_desc, struct splay_tree_key_s)
3967         (struct gomp_device_descr): Don't declare.
3968         (num_devices_openmp): New variable.
3969         (gomp_get_num_devices ): Use it.
3970         (gomp_init_targets_once): New function.
3971         (gomp_get_num_devices ): Use it.
3972         (get_kind, gomp_copy_from_async, gomp_free_memmap)
3973         (gomp_fini_device, gomp_register_image_for_device): New functions.
3974         (gomp_map_vars): Add devaddrs parameter.
3975         (gomp_update): Add mm parameter.
3976         (gomp_init_device): Move most of it into...
3977         (gomp_init_tables): ... this new function.
3978         (gomp_register_images_for_device): Remove function.
3979         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
3980         Make them hidden instead of static.
3981         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
3982         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
3983         (GOMP_target_end_data, GOMP_target_update)
3984         (gomp_load_plugin_for_device, gomp_target_init): Update for
3985         OpenACC changes.
3986         * oacc-async.c: New file.
3987         * oacc-cuda.c: Likewise.
3988         * oacc-host.c: Likewise.
3989         * oacc-init.c: Likewise.
3990         * oacc-int.h: Likewise.
3991         * oacc-mem.c: Likewise.
3992         * oacc-parallel.c: Likewise.
3993         * oacc-plugin.c: Likewise.
3994         * oacc-plugin.h: Likewise.
3995         * oacc-ptx.h: Likewise.
3996         * openacc.f90: Likewise.
3997         * openacc.h: Likewise.
3998         * openacc_lib.h: Likewise.
3999         * plugin/plugin-host.c: Likewise.
4000         * plugin/plugin-nvptx.c: Likewise.
4001         * libgomp-plugin.c: Likewise.
4002         * libgomp-plugin.h: Likewise.
4003         * libgomp_target.h: Remove file after merging content into the
4004         former file.  Update all users.
4005         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
4006         (offload_targets_s, offload_targets_s_openacc): New variables.
4007         (check_effective_target_openacc_nvidia_accel_present)
4008         (check_effective_target_openacc_nvidia_accel_selected): New
4009         procedures.
4010         (libgomp_init): Update for OpenACC changes.
4011         * testsuite/libgomp-test-support.exp.in: New file.
4012         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
4013         * testsuite/libgomp.oacc-c/c.exp: Likewise.
4014         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
4015         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
4016         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
4017         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
4018         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
4019         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
4020         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
4021         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
4022         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
4023         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
4024         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
4025         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
4026         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
4027         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
4028         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
4029         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
4030         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
4031         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
4032         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
4033         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
4034         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
4035         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
4036         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
4037         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
4038         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
4039         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
4040         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
4041         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
4042         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
4043         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
4044         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
4045         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
4046         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
4047         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
4048         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
4049         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
4050         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
4051         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
4052         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
4053         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
4054         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
4055         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
4056         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
4057         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
4058         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
4059         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
4060         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
4061         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
4062         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
4063         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
4064         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
4065         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
4066         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
4067         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
4068         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
4069         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
4070         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
4071         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
4072         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
4073         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
4074         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
4075         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
4076         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
4077         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
4078         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
4079         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
4080         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
4081         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
4082         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
4083         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
4084         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
4085         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
4086         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
4087         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
4088         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
4089         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
4090         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
4091         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
4092         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
4093         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
4094         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
4095         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
4096         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
4097         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
4098         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
4099         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
4100         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
4101         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
4102         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
4103         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
4104         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
4105         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
4106         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
4107         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
4108         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
4109         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
4110         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
4111         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
4112         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
4113         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
4114         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
4115         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
4116         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
4117         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
4118         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
4119         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
4120         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
4121         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
4122         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
4123         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
4124         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
4125         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
4126         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
4127         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
4128         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
4129         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
4130         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
4131         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
4132         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
4133         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
4134         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
4135         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
4136         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
4137         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
4138         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
4139         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
4140         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
4141         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
4142         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
4143         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
4144         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
4145         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
4146         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
4147         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
4148         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
4149         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
4150         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
4151         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
4152         Likewise.
4153         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
4154         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
4155         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
4156         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
4157         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
4158         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
4159         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
4160         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
4161         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
4162         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
4163         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
4164         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
4165         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
4166         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
4167         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
4168         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
4169         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
4170         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
4171         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
4172         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
4173         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
4174         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
4175         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
4176         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
4177         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
4178         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
4179         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
4180         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
4181         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
4182         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
4183         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
4184         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
4185         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
4186         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
4187         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
4188         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
4189         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
4190         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
4191         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
4192         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
4193         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
4194         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
4195         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
4196         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
4197         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
4198         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
4199         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
4200         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
4201         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
4202         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
4203         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
4204         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
4205         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
4206         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
4207         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
4208         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
4209         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
4210         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
4211         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
4212         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
4214 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
4215             Julian Brown  <julian@codesourcery.com>
4216             David Malcolm  <dmalcolm@redhat.com>
4218         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
4219         to "GNU Offloading and Multi Processing Runtime Library".  Change
4220         all users.
4221         * configure: Regenerate.
4222         * libgomp.texi: Update.
4224 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
4226         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
4227         "$tgt_dir/lib32".
4228         * configure: Regenerate.
4230         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
4231         "intelmic" in $offload_targets.
4233 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
4235         Update copyright years.
4237         * libgomp.texi: Bump @copying's copyright year.
4239 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4241         * testsuite/lib/libgomp.exp: Load target-utils.exp.
4242         Move load of target-supportes.exp earlier.
4244 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
4246         * testsuite/libgomp.c/target-9.c: New test.
4248 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
4250         * config.h.in: Regenerate.
4251         * configure: Regenerate.
4252         * configure.ac: Add GCC_CHECK_EMUTLS.
4253         * libgomp.h: Add check for USE_EMUTLS: this case
4254         is equal to HAVE_TLS.
4255         * team.c: Likewise.
4257 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
4259         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
4261 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
4262             Ilya Verbin  <ilya.verbin@intel.com>
4264         * testsuite/libgomp.c/target-critical-1.c: New test.
4266 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
4268         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
4269         to dg-options unless expensive testing is on.
4270         (TESTITERS): Define to N if not defined.
4271         (main): Use TESTITERS instead of N.
4272         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
4273         dg-additional-options depending on whether expensive testing is on.
4274         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
4275         Decrease N to 100000 and CHUNKSZ to 10000.
4277 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
4279         PR fortran/63938
4280         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
4281         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
4283 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
4285         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
4287 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
4289         PR bootstrap/63784
4290         * configure: Regenerated.
4292 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
4294         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
4295         vect_simd_clones effective target.
4296         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
4298 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
4300         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
4301         of 32 as block_size.
4302         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
4303         instead of 32 as block_size.
4305 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
4306             Ilya Verbin  <ilya.verbin@intel.com>
4308         * Makefile.in: Regenerate.
4309         * configure: Regenerate.
4310         * configure.ac: Set up offload_additional_options,
4311         offload_additional_lib_paths and offload_targets.
4312         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
4313         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
4314         * testsuite/Makefile.in: Regenerate.
4315         * testsuite/lib/libgomp.exp (libgomp_init): Append
4316         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
4317         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
4318         build directory to LD_LIBRARY_PATH for intelmic offload targets.
4320 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
4321             Ilya Verbin  <ilya.verbin@intel.com>
4322             Kirill Yukhin  <kirill.yukhin@intel.com>
4323             Ilya Tocar  <ilya.tocar@intel.com>
4325         * testsuite/lib/libgomp.exp
4326         (check_effective_target_offload_device): New.
4327         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
4328         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
4329         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
4330         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
4331         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
4332         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
4333         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
4334         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
4335         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
4336         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
4337         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
4338         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
4339         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
4340         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
4341         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
4342         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
4343         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
4344         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
4345         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
4346         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
4347         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
4348         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
4349         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
4350         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
4351         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
4352         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
4353         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
4354         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
4355         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
4356         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
4357         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
4358         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
4359         * testsuite/libgomp.c/target-7.c: Fix test.
4360         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
4361         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
4362         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
4363         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
4364         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
4365         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
4366         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
4367         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
4368         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
4369         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
4370         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
4371         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
4372         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
4373         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
4374         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
4375         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
4376         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
4377         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
4378         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
4379         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
4380         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
4381         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
4382         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
4383         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
4384         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
4385         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
4386         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
4387         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
4388         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
4389         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
4390         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
4392 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
4393             Ilya Verbin  <ilya.verbin@intel.com>
4394             Thomas Schwinge  <thomas@codesourcery.com>
4395             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4397         * libgomp.map (GOMP_4.0.1): New symbol version.
4398         Add GOMP_offload_register.
4399         * libgomp_target.h: New file.
4400         * splay-tree.h: New file.
4401         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
4402         (gomp_target_init): New forward declaration.
4403         (gomp_is_initialized): New static variable.
4404         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
4405         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
4406         New structures.
4407         (offload_images, num_offload_images, devices, num_devices): New static
4408         variables.
4409         (splay_compare): New static function.
4410         (struct gomp_device_descr): New structure.
4411         (gomp_get_num_devices): Call gomp_target_init.
4412         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
4413         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
4414         (GOMP_offload_register): New function.
4415         (GOMP_target): Arrange for host callback to be performed in a separate
4416         initial thread and contention group, inheriting ICVs from
4417         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
4418         Add device initialization and lookup for target function in splay tree.
4419         (GOMP_target_data): Add device initialization and call gomp_map_vars.
4420         (GOMP_target_end_data): Call gomp_unmap_vars.
4421         (GOMP_target_update): Add device initialization and call gomp_update.
4422         (gomp_load_plugin_for_device, gomp_register_images_for_device)
4423         (gomp_target_init): New static functions.
4425 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
4426             Thomas Schwinge  <thomas@codesourcery.com>
4427             Ilya Verbin  <ilya.verbin@intel.com>
4428             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4430         * config.h.in: Regenerate.
4431         * configure: Regenerate.
4432         * configure.ac: Check for libdl, required for plugin support.
4433         (PLUGIN_SUPPORT): Define if plugins are supported.
4434         (enable_offload_targets): Support Intel MIC targets.
4435         (OFFLOAD_TARGETS): List of target names suitable for offloading.
4437 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4439         PR target/63610
4440         * configure: Regenerate.
4442 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4444         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
4446 2014-10-06  Marek Polacek  <polacek@redhat.com>
4448         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
4449         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
4450         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
4451         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
4453 2014-10-06  Marek Polacek  <polacek@redhat.com>
4455         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
4456         * testsuite/libgomp.c/nqueens-1.c: Likewise.
4457         * testsuite/libgomp.c/pr26943-3.c: Likewise.
4458         * testsuite/libgomp.c/pr26943-4.c: Likewise.
4459         * testsuite/libgomp.c/pr36802-2.c: Likewise.
4460         * testsuite/libgomp.c/pr36802-3.c: Likewise.
4461         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
4462         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
4463         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
4464         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
4465         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
4466         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
4467         * testsuite/libgomp.c/omp-single-1.c: Likewise.
4468         * testsuite/libgomp.c/omp-single-2.c: Likewise.
4469         * testsuite/libgomp.c/omp_matvec.c: Likewise.
4470         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
4471         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
4472         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
4473         declarations.
4475 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
4477         PR libgomp/61200
4478         * testsuite/libgomp.c/pr61200.c: New test.
4480 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
4482         PR c++/63248
4483         * testsuite/libgomp.c++/pr63248.C: New test.
4485 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
4487         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
4488         is not zero, but taskgroup->children is NULL and there are
4489         any task->children, schedule those instead of waiting.
4490         * testsuite/libgomp.c/depend-6.c: New test.
4491         * testsuite/libgomp.c/depend-7.c: New test.
4492         * testsuite/libgomp.c/depend-8.c: New test.
4493         * testsuite/libgomp.c/depend-9.c: New test.
4494         * testsuite/libgomp.c/depend-10.c: New test.
4496 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
4498         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
4499         (struct gomp_taskwait): New type.
4500         (struct gomp_task): Add taskwait and parent_depends_on, remove
4501         in_taskwait and taskwait_sem fields.
4502         (gomp_finish_task): Don't destroy taskwait_sem.
4503         * task.c (gomp_init_task): Don't init in_taskwait, instead init
4504         taskwait and parent_depends_on.
4505         (GOMP_task): For if (0) tasks with depend clause that depend on
4506         earlier tasks don't defer them, instead call
4507         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
4508         Initialize redundant_out field, for redundant out entries just
4509         move them at the end of linked list instead of removing them
4510         completely, and set redundant_out flag instead of redundant.
4511         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
4512         that task.
4513         (gomp_task_run_post_handle_dependers): If parent is in
4514         gomp_task_maybe_wait_for_dependencies and newly runnable task
4515         is not parent_depends_on, queue it in parent->children linked
4516         list after all runnable tasks with parent_depends_on set.
4517         Adjust for addition of taskwait indirection.
4518         (gomp_task_run_post_remove_parent): If parent is in
4519         gomp_task_maybe_wait_for_dependencies and task to be removed
4520         is parent_depends_on, decrement n_depend and if needed awake
4521         parent.  Adjust for addition of taskwait indirection.
4522         (GOMP_taskwait): Adjust for addition of taskwait indirection.
4523         (gomp_task_maybe_wait_for_dependencies): New function.
4524         * testsuite/libgomp.c/depend-5.c: New test.
4526 2014-07-13  Tobias Burnus  <burnus@net-b.de>
4528         * testsuite/libgomp.fortran/pr34020.f90: Make compile
4529         with TS 18508/Fortran 2015.
4531 2014-07-06  Marek Polacek  <polacek@redhat.com>
4533         PR c/6940
4534         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
4536 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
4538         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
4539         matches regex $lang_source_re, add $lang_include_flags to options.
4540         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
4541         * testsuite/libgomp.c++/c++.exp: Likewise.
4542         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
4543         and lang_include_flags instead of adding -fintrinsic-modules-path= to
4544         ALWAYS_CFLAGS.
4545         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
4547 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
4549         * testsuite/libgomp.fortran/fortran.exp: Explain
4550         gfortran-dg-runtest usage.
4552 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
4554         * testsuite/libgomp.fortran/simd5.f90: New test.
4555         * testsuite/libgomp.fortran/simd6.f90: New test.
4556         * testsuite/libgomp.fortran/simd7.f90: New test.
4558 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
4560         * testsuite/libgomp.c/for-2.c: Define SC to static for
4561         #pragma omp for simd testing.
4562         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
4563         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
4564         SC macro.
4565         * testsuite/libgomp.c/simd-14.c: New test.
4566         * testsuite/libgomp.c/simd-15.c: New test.
4567         * testsuite/libgomp.c/simd-16.c: New test.
4568         * testsuite/libgomp.c/simd-17.c: New test.
4569         * testsuite/libgomp.c++/for-10.C: Define SC to static for
4570         #pragma omp for simd testing.
4571         * testsuite/libgomp.c++/simd10.C: New test.
4572         * testsuite/libgomp.c++/simd11.C: New test.
4573         * testsuite/libgomp.c++/simd12.C: New test.
4574         * testsuite/libgomp.c++/simd13.C: New test.
4576         * testsuite/libgomp.fortran/aligned1.f03: New test.
4577         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
4578         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
4579         tasks with !$omp parallel !$omp single.
4580         * testsuite/libgomp.fortran/target8.f90: New test.
4581         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
4582         not to use trim in the combiner, instead call elemental function.
4583         (fn): New elemental function.
4584         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
4585         Make elemental.
4586         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
4587         omp_in): Likewise.
4588         * testsuite/libgomp.fortran/udr12.f90: New test.
4589         * testsuite/libgomp.fortran/udr13.f90: New test.
4590         * testsuite/libgomp.fortran/udr14.f90: New test.
4591         * testsuite/libgomp.fortran/udr15.f90: New test.
4593 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
4595         * omp_lib.f90.in (openmp_version): Set to 201307.
4596         * omp_lib.h.in (openmp_version): Likewise.
4597         * testsuite/libgomp.c/target-8.c: New test.
4598         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
4599         and inbranch clauses.
4600         * testsuite/libgomp.fortran/depend-3.f90: New test.
4601         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
4602         openmp_version.
4603         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
4604         * testsuite/libgomp.fortran/target1.f90: New test.
4605         * testsuite/libgomp.fortran/target2.f90: New test.
4606         * testsuite/libgomp.fortran/target3.f90: New test.
4607         * testsuite/libgomp.fortran/target4.f90: New test.
4608         * testsuite/libgomp.fortran/target5.f90: New test.
4609         * testsuite/libgomp.fortran/target6.f90: New test.
4610         * testsuite/libgomp.fortran/target7.f90: New test.
4612 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
4614         PR fortran/60928
4615         * testsuite/libgomp.fortran/allocatable9.f90: New test.
4616         * testsuite/libgomp.fortran/allocatable10.f90: New test.
4617         * testsuite/libgomp.fortran/allocatable11.f90: New test.
4618         * testsuite/libgomp.fortran/allocatable12.f90: New test.
4619         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
4620         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
4621         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
4622         * testsuite/libgomp.fortran/associate1.f90: New test.
4623         * testsuite/libgomp.fortran/associate2.f90: New test.
4624         * testsuite/libgomp.fortran/procptr1.f90: New test.
4626 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
4628         * testsuite/libgomp.fortran/simd1.f90: New test.
4629         * testsuite/libgomp.fortran/udr1.f90: New test.
4630         * testsuite/libgomp.fortran/udr2.f90: New test.
4631         * testsuite/libgomp.fortran/udr3.f90: New test.
4632         * testsuite/libgomp.fortran/udr4.f90: New test.
4633         * testsuite/libgomp.fortran/udr5.f90: New test.
4634         * testsuite/libgomp.fortran/udr6.f90: New test.
4635         * testsuite/libgomp.fortran/udr7.f90: New test.
4636         * testsuite/libgomp.fortran/udr8.f90: New test.
4637         * testsuite/libgomp.fortran/udr9.f90: New test.
4638         * testsuite/libgomp.fortran/udr10.f90: New test.
4639         * testsuite/libgomp.fortran/udr11.f90: New test.
4641 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
4643         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
4644         vect_simd_clones effective target.
4645         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
4647 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
4649         PR middle-end/61252
4650         * testsuite/libgomp.c++/simd-9.C: New test.
4652 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
4654         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
4655         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
4656         texts according to their @menu entry positions.
4658 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
4660         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
4661         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
4662         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
4663         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
4664         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
4665         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
4666         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
4667         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
4668         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
4669         * testsuite/libgomp.fortran/depend-1.f90: New test.
4670         * testsuite/libgomp.fortran/depend-2.f90: New test.
4671         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
4672         * testsuite/libgomp.fortran/simd1.f90: New test.
4673         * testsuite/libgomp.fortran/simd2.f90: New test.
4674         * testsuite/libgomp.fortran/simd3.f90: New test.
4675         * testsuite/libgomp.fortran/simd4.f90: New test.
4676         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
4678 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
4680         * testsuite/libgomp.c/simd-10.c: New test.
4681         * testsuite/libgomp.c/simd-11.c: New test.
4682         * testsuite/libgomp.c/simd-12.c: New test.
4683         * testsuite/libgomp.c/simd-13.c: New test.
4685 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
4687         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
4688         atomic type clauses in any order and optional comma in between.
4689         * testsuite/libgomp.c++/atomic-15.C: Likewise.
4690         * testsuite/libgomp.c/atomic-17.c: Likewise.
4692         * testsuite/libgomp.c/simd-7.c: New test.
4693         * testsuite/libgomp.c/simd-8.c: New test.
4694         * testsuite/libgomp.c/simd-9.c: New test.
4695         * testsuite/libgomp.c/loop-16.c: New test.
4697 2014-04-02  Richard Henderson  <rth@redhat.com>
4699         * config/linux/futex.h (futex_wait): Get error value from errno.
4700         (futex_wake): Likewise.
4702 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
4704         PR c++/60331
4705         * testsuite/libgomp.c++/udr-11.C: New test.
4706         * testsuite/libgomp.c++/udr-12.C: New test.
4707         * testsuite/libgomp.c++/udr-13.C: New test.
4708         * testsuite/libgomp.c++/udr-14.C: New test.
4709         * testsuite/libgomp.c++/udr-15.C: New test.
4710         * testsuite/libgomp.c++/udr-16.C: New test.
4711         * testsuite/libgomp.c++/udr-17.C: New test.
4712         * testsuite/libgomp.c++/udr-18.C: New test.
4713         * testsuite/libgomp.c++/udr-19.C: New test.
4715 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4717         Update copyright years
4719 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
4721         * hashtab.h: Use the standard form for the copyright notice.
4723 2014-01-02  Tobias Burnus  <burnus@net-b.de>
4725         * libgomp.texi: Bump @copying's copyright year.
4727 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
4729         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
4730         alloca () with __builtin_alloca ().
4731         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
4732         * testsuite/libgomp.c/lock-3.c: Likewise.
4733         * testsuite/libgomp.c/pr48591.c: Likewise.
4735 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
4737         PR testsuite/59534
4738         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
4739         comparisons.
4741 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
4743         PR libgomp/58756
4744         * testsuite/libgomp.c/pr58756.c: New test.
4746 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
4748         PR libgomp/59467
4749         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
4750         !$omp parallel.
4752 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
4754         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
4755         ALWAYS_CFLAGS.
4756         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
4757         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
4758         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
4759         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
4760         Likewise.
4762         * libgomp_g.h: Include <stddef.h> for size_t.
4764         * libgomp.spec.in: Update comment about libgomp's dependencies.
4765         * configure.ac: Likewise.
4766         * configure: Regenerate.
4768 2013-10-16  Tobias Burnus  <burnus@net-b.de>
4770         * libgomp.texi: (Runtime Library Routines): Update references for
4771         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
4772         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
4773         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
4774         (Environment Variables): Update references for OpenMP 4.0. Add
4775         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
4776         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
4777         order.
4779 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
4781         * env.c (parse_bind_var): Initialize value to avoid
4782         (false positive) warning.
4784 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
4786         PR libgomp/58691
4787         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
4788         to check variable.
4789         (gomp_init_num_threads): Move i variable declaration into
4790         #ifdef CPU_ALLOC_SIZE block.
4791         * config/linux/affinity.c (gomp_affinity_init_level): Test
4792         gomp_places_list_len == 0 rather than gomp_places_list == 0
4793         when checking for topology reading error.
4794         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
4795         * env.c (parse_affinity): Add ignore argument, if true, don't populate
4796         gomp_places_list, only parse env var and always return false.
4797         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
4798         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
4799         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
4800         and either of these variables were parsed correctly into a places
4801         list.
4803 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
4804             Jakub Jelinek  <jakub@redhat.com>
4806         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
4807         of 5 loopfn matches.
4808         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
4809         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
4810         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
4811         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
4812         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
4813         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
4814         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
4815         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
4817 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
4819         * Makefile.am (omp_lib.mod): Streamline rule.
4820         * Makefile.in: Regenerate.
4822         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
4823         exceptions.
4825         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
4826         * testsuite/libgomp.fortran/lib1.f90: Likewise.
4827         * testsuite/libgomp.fortran/lib2.f: Likewise.
4828         * testsuite/libgomp.fortran/lib3.f: Likewise.
4830         * configure.ac: Typo fix.
4831         * configure: Regenerate.
4833         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
4834         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
4836         * omp.h.in: Don't touch the user's namespace.
4838 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
4839             Tobias Burnus  <burnus@net-b.de>
4840             Richard Henderson  <rth@redhat.com>
4842         * target.c: New file.
4843         * Makefile.am (libgomp_la_SOURCES): Add target.c.
4844         * Makefile.in: Regenerated.
4845         * libgomp_g.h (GOMP_task): Add depend argument.
4846         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
4847         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
4848         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
4849         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
4850         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
4851         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
4852         GOMP_taskgroup_start, GOMP_taskgroup_end,
4853         GOMP_parallel_sections): New prototypes.
4854         * fortran.c (omp_is_initial_device): Add ialias_redirect.
4855         (omp_is_initial_device_): New function.
4856         (ULP, STR1, STR2, ialias_redirect): Removed.
4857         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
4858         omp_set_default_device_8_, omp_get_default_device_,
4859         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
4860         functions.
4861         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
4862         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
4863         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
4864         @@GOMP_4.0.
4865         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
4866         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
4867         omp_set_default_device, omp_set_default_device_,
4868         omp_set_default_device_8_, omp_get_default_device,
4869         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
4870         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
4871         omp_get_team_num_): Export @@OMP_4.0.
4872         * team.c (struct gomp_thread_start_data): Add place field.
4873         (gomp_thread_start): Clear thr->thread_pool and
4874         thr->task before returning.  Use gomp_team_barrier_wait_final
4875         instead of gomp_team_barrier_wait.  Initialize thr->place.
4876         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
4877         team_cancelled and task_queued_count fields.
4878         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
4879         before calling pthread_exit.
4880         (gomp_free_thread): No longer static.  Use
4881         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
4882         (gomp_team_start): Add flags argument.  Set
4883         thr->thread_pool->threads_busy to nthreads immediately after creating
4884         new pool.  Use gomp_managed_threads_lock instead of
4885         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
4886         (gomp_team_end): Use gomp_managed_threads_lock instead of
4887         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
4888         of gomp_team_barrier_wait.  If team->team_cancelled, call
4889         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
4890         rather than thr->ts.work_share.
4891         (initialize_team): Don't call gomp_sem_init here.
4892         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
4893         caller.
4894         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
4895         * env.c (gomp_global_icv): Add default_device_var, target_data and
4896         bind_var initializers.
4897         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
4898         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
4899         gomp_places_list_len): New variables.
4900         (parse_bind_var, parse_one_place, parse_places_var): New functions.
4901         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
4902         sized places.
4903         (gomp_cancel_var): New global variable.
4904         (parse_int): New function.
4905         (handle_omp_display_env): New function.
4906         (initialize_env): Use it.  Initialize default_device_var.
4907         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
4908         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
4909         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
4910         been successfully parsed (and call gomp_init_affinity in that case).
4911         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
4912         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
4913         omp_get_team_num, omp_is_initial_device): New functions.
4914         * libgomp.h: Include stdlib.h.
4915         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
4916         Define.
4917         (struct target_mem_desc): Forward declare.
4918         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
4919         and thread_limit_var fields.
4920         (gomp_get_num_devices): New prototype.
4921         (gomp_cancel_var): New extern decl.
4922         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
4923         team_cancelled and task_queued_count fields.  Add comments about
4924         task_{,queued_,running_}count.
4925         (gomp_cancel_kind): New enum.
4926         (gomp_work_share_end_cancel): New prototype.
4927         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
4928         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
4929         and depend fields.
4930         (struct gomp_taskgroup): New type.
4931         (struct gomp_task_depend_entry,
4932         struct gomp_dependers_vec): New types.
4933         (gomp_finish_task): Free depend_hash if non-NULL.
4934         (struct gomp_team_state): Add place_partition_off
4935         and place_partition_len fields.
4936         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
4937         gomp_places_list_len): New extern decls.
4938         (struct gomp_thread): Add place field.
4939         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
4940         (gomp_init_thread_affinity): Add place argument.
4941         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
4942         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
4943         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
4944         gomp_affinity_init_level, gomp_affinity_print_place): New
4945         prototypes.
4946         (gomp_team_start): Add flags argument.
4947         (gomp_thread_limit_var, gomp_remaining_threads_count,
4948         gomp_remaining_threads_lock): Remove.
4949         (gomp_managed_threads_lock): New variable.
4950         (struct gomp_thread_pool): Add threads_busy field.
4951         (gomp_free_thread): New prototype.
4952         * task.c: Include hashtab.h.
4953         (hash_entry_type): New typedef.
4954         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
4955         (gomp_init_task): Clear dependers, depend_hash, depend_count,
4956         copy_ctors_done and taskgroup fields.
4957         (GOMP_task): Add depend argument, handle depend clauses.  If
4958         gomp_team_barrier_cancelled or if it's taskgroup has been
4959         cancelled, don't queue or start new tasks.  Set copy_ctors_done
4960         field if needed.  Initialize taskgroup field.  If copy_ctors_done
4961         and already cancelled, don't discard the task.  If taskgroup is
4962         non-NULL, enqueue the task into taskgroup queue.  Increment
4963         num_children field in taskgroup.  Increment task_queued_count.
4964         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
4965         gomp_task_run_post_remove_taskgroup): New inline functions.
4966         (gomp_task_run_post_handle_depend_hash,
4967         gomp_task_run_post_handle_dependers,
4968         gomp_task_run_post_handle_depend): New functions.
4969         (GOMP_taskwait): Use them.  If more than one new tasks
4970         have been queued, wake other threads if needed.
4971         (gomp_barrier_handle_tasks): Likewise.  If
4972         gomp_team_barrier_cancelled, don't start any new tasks, just free
4973         all tasks.
4974         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
4975         * omp_lib.f90.in
4976         (omp_proc_bind_kind, omp_proc_bind_false,
4977         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
4978         omp_proc_bind_spread): New params.
4979         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
4980         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
4981         omp_get_team_num, omp_is_initial_device): New interfaces.
4982         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
4983         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
4984         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
4985         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
4986         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
4987         useless use omp_lib_kinds.
4988         * omp.h.in (omp_proc_bind_t): New typedef.
4989         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
4990         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
4991         omp_get_team_num, omp_is_initial_device): New prototypes.
4992         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
4993         through to gomp_team_start.
4994         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
4995         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
4996         Adjust gomp_parallel_loop_start callers.
4997         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
4998         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
4999         GOMP_loop_end_cancel): New functions.
5000         (GOMP_parallel_end): Add ialias_redirect.
5001         * hashtab.h: New file.
5002         * libgomp.texi (Environment Variables): Minor cleanup,
5003         update section refs to OpenMP 4.0rc2.
5004         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
5005         environment variables.
5006         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
5007         team->work_shares_to_free to thr->ts.work_share before calling
5008         free_work_share.
5009         (gomp_work_share_end_cancel): New function.
5010         * config/linux/proc.c: Include errno.h.
5011         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
5012         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
5013         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
5014         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
5015         gomp_cpuset_size is sizeof (cpu_set_t).
5016         (gomp_init_num_threads): Initialize gomp_cpuset_size,
5017         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
5018         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
5019         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
5020         contain any logical CPUs.
5021         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
5022         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
5023         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
5024         pthread_getaffinity_np.  Check gomp_places_list instead of
5025         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
5026         * config/linux/bar.c (gomp_barrier_wait_end,
5027         gomp_barrier_wait_last): Use BAR_* defines.
5028         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
5029         from state where needed.  Set work_share_cancelled to 0 on last
5030         thread.
5031         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
5032         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
5033         functions.
5034         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
5035         Add cpusetsize argument.
5036         (gomp_cpuset_size, gomp_cpusetp): Declare.
5037         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
5038         (affinity_counter): Remove.
5039         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
5040         if CPU_ALLOC_SIZE isn't defined.
5041         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
5042         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
5043         bind current thread to the first place.
5044         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
5045         pthread_setaffinity_np to gomp_places_list[place].
5046         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
5047         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
5048         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
5049         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
5050         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
5051         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
5052         (gomp_barrier_t): Add awaited_final field.
5053         (gomp_barrier_init): Initialize awaited_final field.
5054         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
5055         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
5056         prototypes.
5057         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
5058         defines.
5059         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
5060         gomp_team_barrier_cancelled): New inline functions.
5061         (gomp_barrier_last_thread,
5062         gomp_team_barrier_set_task_pending,
5063         gomp_team_barrier_clear_task_pending,
5064         gomp_team_barrier_set_waiting_for_tasks,
5065         gomp_team_barrier_waiting_for_tasks,
5066         gomp_team_barrier_done): Use BAR_* defines.
5067         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
5068         (gomp_barrier_wait_end): Use BAR_* defines.
5069         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
5070         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
5071         Use BAR_* defines.
5072         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
5073         gomp_team_barrier_cancel): New functions.
5074         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
5075         argument.
5076         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
5077         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
5078         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
5079         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
5080         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
5081         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
5082         (gomp_barrier_t): Add cancellable field.
5083         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
5084         gomp_team_barrier_cancel): New prototypes.
5085         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
5086         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
5087         gomp_team_barrier_cancelled): New inline functions.
5088         (gomp_barrier_wait_start, gomp_barrier_last_thread,
5089         gomp_team_barrier_set_task_pending,
5090         gomp_team_barrier_clear_task_pending,
5091         gomp_team_barrier_set_waiting_for_tasks,
5092         gomp_team_barrier_waiting_for_tasks,
5093         gomp_team_barrier_done): Use BAR_* defines.
5094         * barrier.c (GOMP_barrier_cancel): New function.
5095         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
5096         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
5097         omp_proc_bind_spread): New params.
5098         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
5099         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
5100         omp_get_team_num, omp_is_initial_device): New externals.
5101         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
5102         New functions.
5103         (gomp_resolve_num_threads): Adjust for thread_limit now being in
5104         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
5105         infinity.  If not nested, just return minimum of max_num_threads
5106         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
5107         to the returned value.  Otherwise, don't update atomically
5108         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
5109         (GOMP_parallel_end): Adjust for thread_limit now being in
5110         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
5111         infinity.  Adjust threads_busy in the pool rather than
5112         gomp_remaining_threads_count.  Remember team->nthreads and call
5113         gomp_team_end before adjusting threads_busy, if not nested
5114         afterwards, just set it to 1 non-atomically.  Add ialias.
5115         (GOMP_parallel_start): Adjust gomp_team_start caller.
5116         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
5117         * testsuite/libgomp.c/affinity-1.c: New test.
5118         * testsuite/libgomp.c/atomic-15.c: New test.
5119         * testsuite/libgomp.c/atomic-16.c: New test.
5120         * testsuite/libgomp.c/atomic-17.c: New test.
5121         * testsuite/libgomp.c/cancel-for-1.c: New test.
5122         * testsuite/libgomp.c/cancel-for-2.c: New test.
5123         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
5124         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
5125         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
5126         * testsuite/libgomp.c/cancel-sections-1.c: New test.
5127         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
5128         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
5129         * testsuite/libgomp.c/depend-1.c: New test.
5130         * testsuite/libgomp.c/depend-2.c: New test.
5131         * testsuite/libgomp.c/depend-3.c: New test.
5132         * testsuite/libgomp.c/depend-4.c: New test.
5133         * testsuite/libgomp.c/for-1.c: New test.
5134         * testsuite/libgomp.c/for-1.h: New file.
5135         * testsuite/libgomp.c/for-2.c: New test.
5136         * testsuite/libgomp.c/for-2.h: New file.
5137         * testsuite/libgomp.c/for-3.c: New test.
5138         * testsuite/libgomp.c/pr58392.c: New test.
5139         * testsuite/libgomp.c/simd-1.c: New test.
5140         * testsuite/libgomp.c/simd-2.c: New test.
5141         * testsuite/libgomp.c/simd-3.c: New test.
5142         * testsuite/libgomp.c/simd-4.c: New test.
5143         * testsuite/libgomp.c/simd-5.c: New test.
5144         * testsuite/libgomp.c/simd-6.c: New test.
5145         * testsuite/libgomp.c/target-1.c: New test.
5146         * testsuite/libgomp.c/target-2.c: New test.
5147         * testsuite/libgomp.c/target-3.c: New test.
5148         * testsuite/libgomp.c/target-4.c: New test.
5149         * testsuite/libgomp.c/target-5.c: New test.
5150         * testsuite/libgomp.c/target-6.c: New test.
5151         * testsuite/libgomp.c/target-7.c: New test.
5152         * testsuite/libgomp.c/taskgroup-1.c: New test.
5153         * testsuite/libgomp.c/thread-limit-1.c: New test.
5154         * testsuite/libgomp.c/thread-limit-2.c: New test.
5155         * testsuite/libgomp.c/thread-limit-3.c: New test.
5156         * testsuite/libgomp.c/udr-1.c: New test.
5157         * testsuite/libgomp.c/udr-2.c: New test.
5158         * testsuite/libgomp.c/udr-3.c: New test.
5159         * testsuite/libgomp.c++/affinity-1.C: New test.
5160         * testsuite/libgomp.c++/atomic-10.C: New test.
5161         * testsuite/libgomp.c++/atomic-11.C: New test.
5162         * testsuite/libgomp.c++/atomic-12.C: New test.
5163         * testsuite/libgomp.c++/atomic-13.C: New test.
5164         * testsuite/libgomp.c++/atomic-14.C: New test.
5165         * testsuite/libgomp.c++/atomic-15.C: New test.
5166         * testsuite/libgomp.c++/cancel-for-1.C: New test.
5167         * testsuite/libgomp.c++/cancel-for-2.C: New test.
5168         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
5169         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
5170         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
5171         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
5172         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
5173         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
5174         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
5175         * testsuite/libgomp.c++/cancel-test.h: New file.
5176         * testsuite/libgomp.c++/for-9.C: New test.
5177         * testsuite/libgomp.c++/for-10.C: New test.
5178         * testsuite/libgomp.c++/for-11.C: New test.
5179         * testsuite/libgomp.c++/simd-1.C: New test.
5180         * testsuite/libgomp.c++/simd-2.C: New test.
5181         * testsuite/libgomp.c++/simd-3.C: New test.
5182         * testsuite/libgomp.c++/simd-4.C: New test.
5183         * testsuite/libgomp.c++/simd-5.C: New test.
5184         * testsuite/libgomp.c++/simd-6.C: New test.
5185         * testsuite/libgomp.c++/simd-7.C: New test.
5186         * testsuite/libgomp.c++/simd-8.C: New test.
5187         * testsuite/libgomp.c++/target-1.C: New test.
5188         * testsuite/libgomp.c++/target-2.C: New test.
5189         * testsuite/libgomp.c++/target-2-aux.cc: New file.
5190         * testsuite/libgomp.c++/target-3.C: New test.
5191         * testsuite/libgomp.c++/taskgroup-1.C: New test.
5192         * testsuite/libgomp.c++/udr-1.C: New test.
5193         * testsuite/libgomp.c++/udr-2.C: New test.
5194         * testsuite/libgomp.c++/udr-3.C: New test.
5195         * testsuite/libgomp.c++/udr-4.C: New test.
5196         * testsuite/libgomp.c++/udr-5.C: New test.
5197         * testsuite/libgomp.c++/udr-6.C: New test.
5198         * testsuite/libgomp.c++/udr-7.C: New test.
5199         * testsuite/libgomp.c++/udr-8.C: New test.
5200         * testsuite/libgomp.c++/udr-9.C: New test.
5202 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
5204         PR testsuite/57605
5205         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
5206         ALWAYS_CFLAGS.
5208 2013-09-20  Alan Modra  <amodra@gmail.com>
5210         * configure: Regenerate.
5212 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
5214         * testsuite/libgomp.c/sections-2.c: New test.
5216 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5218         * testsuite/libgomp.fortran/strassen.f90:
5219         Add dg-skip-if aarch64_tiny.
5221 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
5222             Cesar Philippidis  <cesar@codesourcery.com>
5224         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
5225         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
5226         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
5227         * testsuite/libgomp.fortran/fortran.exp: Likewise.
5228         * testsuite/libgomp.graphite/graphite.exp: Likewise.
5229         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
5230         Use dg-runtest rather than gfortran-dg-runtest.
5232 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
5234         * testsuite/libgomp.c/icv-2.c: Extend current handling of
5235         Linux-based x86 systems to cover all GNU systems.
5236         * testsuite/libgomp.c/lock-3.c: Likewise.
5237         * testsuite/libgomp.c/pr48591.c: Likewise.
5239 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
5241         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
5242         GNU/Hurd, as done for Linux-based systems.
5244         * config/posix/ptrlock.h: Fix comment.
5246 2013-05-27  Tobias Burnus  <burnus@net-b.de>
5248         PR fortran/57423
5249         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
5250         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
5251         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
5252         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
5253         omp_destroy_nest_lock): Correct arguments to match the one in
5254         the OpenMP spec.
5255         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
5256         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
5257         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
5258         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
5260 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
5262         * testsuite/libgomp.c/loop-13.c: New test.
5263         * testsuite/libgomp.c/loop-14.c: New test.
5264         * testsuite/libgomp.c/loop-15.c: New test.
5265         * testsuite/libgomp.c++/loop-13.C: New test.
5266         * testsuite/libgomp.c++/loop-14.C: New test.
5267         * testsuite/libgomp.c++/loop-15.C: New test.
5269 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
5271         PR middle-end/56217
5272         * testsuite/libgomp.c++/pr56217.C: New test.
5274 2013-02-01  Alan Modra  <amodra@gmail.com>
5276         * task.c (GOMP_task, GOMP_taskwait): Comment.
5278 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
5279             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
5281         PR libgomp/55561
5282         * config/linux/wait.h (do_spin): Use atomic load for addr.
5283         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
5284         for intptr and ptrlock.
5285         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
5286         for ptrlock.
5288 2013-01-22  Alan Modra  <amodra@gmail.com>
5290         PR libgomp/51376
5291         PR libgomp/56073
5292         * task.c (GOMP_task): Revert 2011-12-09 change.
5293         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
5294         barrier to read task->children..
5295         (gomp_barrier_handle_tasks): ..and matching atomic store with
5296         release barrier here when setting parent->children to NULL.
5298 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
5299             Tobias Burnus  <burnus@net-b.de>
5301         PR driver/55884
5302         * testsuite/libgomp.fortran/fortran.exp: Use
5303         -fintrinsic-modules-path= instead of
5304         -fintrinsic-modules-path.
5306 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
5308         Update copyright years.
5310 2012-12-19  Tobias Burnus  <burnus@net-b.de>
5312         * testsuite/libgomp.fortran/fortran.exp: Set
5313         -fintrinsic-modules-path.
5315 2012-12-19  Tobias Burnus  <burnus@net-b.de>
5317         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
5318         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
5320 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
5322         PR libgomp/55411
5323         * team.c (gomp_free_thread): Decrease gomp_managed_threads
5324         if pool had any threads_used.
5326 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
5328         * testsuite/libgomp.c++/pr24455.C: Use
5329         -Wl,-undefined,dynamic_lookup on darwin.
5331 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
5333         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
5335 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
5337         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
5339 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
5340             Jim MacArthur  <jim.macarthur@arm.com>
5341             Marcus Shawcroft  <marcus.shawcroft@arm.com>
5342             Nigel Stephens  <nigel.stephens@arm.com>
5343             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5344             Richard Earnshaw  <rearnsha@arm.com>
5345             Sofiane Naci  <sofiane.naci@arm.com>
5346             Stephen Thomas  <stephen.thomas@arm.com>
5347             Tejas Belagod  <tejas.belagod@arm.com>
5348             Yufeng Zhang  <yufeng.zhang@arm.com>
5350         * configure.tgt: Add AArch64.
5352 2012-10-04  Jason Merrill  <jason@redhat.com>
5354         * testsuite/libgomp.c++/tls-init1.C: New.
5356 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
5358         * configure: Regenerated.
5360 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
5362         * config/linux/mips/futex.h (sys_futex0): Change to static
5363         function with noinline, nomips16 attributes under MIPS16. Adjust
5364         asm statement to place 'li v0,SYS_futex' immediately before
5365         syscall insn.
5367 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
5369         * libgomp.texi (Library Index): Renamed from "Index" to prevent
5370         conflict with index.html on case-insensitive file systems.
5372 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
5374         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
5375         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
5377 2012-07-02  Richard Guenther  <rguenther@suse.de>
5378             Michael Matz  <matz@suse.de>
5379             Tobias Grosser <tobias@grosser.es>
5380             Sebastian Pop <sebpop@gmail.com>
5382         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
5383         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
5384         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
5385         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
5387 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
5389         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
5391 2012-06-22  Richard Guenther  <rguenther@suse.de>
5393         Merge from graphite branch
5394         2012-01-13  Tobias Grosser  <tobias@grosser.es>
5396         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
5397         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
5399 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
5401         PR middle-end/53580
5402         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
5403         use GOMP_barrier () call instead.
5404         * testsuite/libgomp.c/pr26943-3.c: Likewise.
5405         * testsuite/libgomp.c/pr26943-4.c: Likewise.
5406         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
5407         call GOMP_barrier instead.
5408         * testsuite/libgomp.fortran/vla5.f90: Likewise.
5410 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
5412         PR libgomp/52993
5413         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
5414         argument to memset call.
5416 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
5418         * configure: Regenerated.
5420 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5422         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
5424 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5426         PR bootstrap/52812
5427         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
5429 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
5431         PR middle-end/52547
5432         * testsuite/libgomp.c/pr52547.c: New test.
5434 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5436         * testsuite/lib/libgomp.exp: load fortran-modules.exp
5438 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5440         * configure.tgt (mips-sgi-irix6*): Remove.
5442 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5444         * configure.tgt (alpha*-dec-osf*): Remove.
5446         * config/osf/sem.h: Remove.
5447         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
5449 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
5451         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
5453 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5455         PR libstdc++/52188
5456         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
5457         Remove ENABLE_SYMVERS_SOL2.
5458         * configure: Regenerate.
5459         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
5460         (PREPROCESS): New variable.
5461         (libgomp.ver): New target.
5462         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
5463         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
5464         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
5465         Use libgomp.ver.
5466         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
5467         * Makefile.in: Regenerate.
5469 2012-02-14  Walter Lee  <walt@tilera.com>
5471         * configure.tgt: Handle tilegx and tilepro.
5472         * config/linux/tile/futex.h: New file.
5474 2012-02-08  Richard Guenther  <rguenther@suse.de>
5476         PR tree-optimization/46886
5477         * testsuite/libgomp.c/pr46886.c: New testcase.
5479 2012-01-25  Matthias Klose  <doko@ubuntu.com>
5481         * config/linux/arm: Remove empty directory.
5482         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
5484 2011-12-09  Alan Modra  <amodra@gmail.com>
5486         PR libgomp/51376
5487         * task.c (GOMP_taskwait): Don't access task->children outside of
5488         task_lock mutex region.
5489         (GOMP_task): Likewise.
5491 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
5493         PR libgomp/51132
5494         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
5495         to file scope.
5496         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
5497         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
5498         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
5499         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
5500         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
5502 2011-12-02  Alan Modra  <amodra@gmail.com>
5504         * config/linux/affinity.c: Use atomic rather than sync builtin.
5505         * config/linux/lock.c: Likewise.
5506         * config/linux/ptrlock.h: Likewise.
5507         * config/linux/ptrlock.c: Likewise.
5508         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
5509         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
5510         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
5511         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
5512         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
5513         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
5514         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
5515         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
5516         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
5517         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
5519 2011-11-30  Alan Modra  <amodra@gmail.com>
5521         PR libgomp/51298
5522         * config/linux/bar.h: Use atomic rather than sync builtins.
5523         * config/linux/bar.c: Likewise.  Add missing acquire
5524         synchronisation on generation field.
5525         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
5526         double unlock.
5528 2011-11-30  Alan Modra  <amodra@gmail.com>
5530         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
5531         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
5532         * config/linux/mutex.h: Use atomic rather than sync builtins.
5533         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
5534         * config/linux/omp-lock.h: Comment fix.
5535         * config/linux/arm/mutex.h: Delete.
5536         * config/linux/powerpc/mutex.h: Delete.
5537         * config/linux/ia64/mutex.h: Delete.
5538         * config/linux/mips/mutex.h: Delete.
5540 2011-11-30  Alan Modra  <amodra@gmail.com>
5542         PR libgomp/51249
5543         * config/linux/sem.h: Rewrite.
5544         * config/linux/sem.c: Rewrite.
5546 2011-11-28  Richard Henderson  <rth@redhat.com>
5548         * libgomp.h (enum memmodel): New.
5550 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
5552         * configure: Regenerate.
5554 2011-10-10  Matthias Klose  <doko@ubuntu.com>
5556         * config/posix95: Remove empty directory.
5558 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
5560         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
5562 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
5564         PR fortran/49792
5565         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
5566         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
5568 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5570         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
5572 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5574         PR libgomp/49965
5575         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
5577 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
5579         * config/linux/proc.h: New.
5580         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
5581         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
5582         (gomp_init_num_threads): Update call to cpuset_popcount.
5583         (get_num_procs): Ditto.
5584         * config/linux/affinity.c (gomp_init_affinity): Call
5585         gomp_cpuset_popcount.
5587 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
5589         PR fortran/42041
5590         PR fortran/46752
5591         * omp.h.in (omp_in_final): New prototype.
5592         * omp_lib.f90.in (omp_in_final): New interface.
5593         (omp_integer_kind, omp_logical_kind): Remove
5594         and replace all its uses in the module with 4.
5595         (openmp_version): Change to 201107.
5596         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
5597         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
5598         kind for the parameters.
5599         (omp_in_final): New external.
5600         (openmp_version): Change to 201107.
5601         * task.c (omp_in_final): New function.
5602         (gomp_init_task): Initialize final_task.
5603         (GOMP_task): Remove unused attribute from flags.  Handle final
5604         tasks.
5605         (GOMP_taskyield): New function.
5606         (omp_in_final): Return true if if (false) or final (true) task
5607         or descendant of final (true).
5608         * fortran.c (omp_in_final_): New function.
5609         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
5610         (GOMP_3.0): Export GOMP_taskyield.
5611         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
5612         variables.
5613         (parse_unsigned_long_list): New function.
5614         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
5615         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
5616         even if parse_affinity returned false.
5617         * config/linux/affinity.c (gomp_init_affinity): Handle
5618         gomp_cpu_affinity_len == 0.
5619         * libgomp_g.h (GOMP_taskyield): New prototype.
5620         * libgomp.h (struct gomp_task): Add final_task field.
5621         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
5622         * team.c (gomp_team_start): Override new task's nthreads_var icv
5623         if list form OMP_NUM_THREADS has been used and it has value for
5624         the new nesting level.
5626         * testsuite/libgomp.c/atomic-11.c: New test.
5627         * testsuite/libgomp.c/atomic-12.c: New test.
5628         * testsuite/libgomp.c/atomic-13.c: New test.
5629         * testsuite/libgomp.c/atomic-14.c: New test.
5630         * testsuite/libgomp.c/reduction-6.c: New test.
5631         * testsuite/libgomp.c/task-5.c: New test.
5632         * testsuite/libgomp.c++/atomic-2.C: New test.
5633         * testsuite/libgomp.c++/atomic-3.C: New test.
5634         * testsuite/libgomp.c++/atomic-4.C: New test.
5635         * testsuite/libgomp.c++/atomic-5.C: New test.
5636         * testsuite/libgomp.c++/atomic-6.C: New test.
5637         * testsuite/libgomp.c++/atomic-7.C: New test.
5638         * testsuite/libgomp.c++/atomic-8.C: New test.
5639         * testsuite/libgomp.c++/atomic-9.C: New test.
5640         * testsuite/libgomp.c++/task-8.C: New test.
5641         * testsuite/libgomp.c++/reduction-4.C: New test.
5642         * testsuite/libgomp.fortran/allocatable7.f90: New test.
5643         * testsuite/libgomp.fortran/allocatable8.f90: New test.
5644         * testsuite/libgomp.fortran/crayptr3.f90: New test.
5645         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
5646         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
5647         * testsuite/libgomp.fortran/pointer1.f90: New test.
5648         * testsuite/libgomp.fortran/pointer2.f90: New test.
5649         * testsuite/libgomp.fortran/task4.f90: New test.
5651 2011-08-02  Tobias Burnus  <burnus@net-b.de>
5653         * libgomp.texi: Update OpenMP spec references to 3.1.
5654         (omp_in_final,OMP_PROC_BIND): New sections.
5655         (OMP_NUM_THREADS): Document that the value can be now a list.
5656         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
5658 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
5660         * config/linux/x86/futex.h: Check __x86_64__ instead of
5661         __LP64__.
5663 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
5665         PR middle-end/49897
5666         PR middle-end/49898
5667         * testsuite/libgomp.c/pr49897-1.c: New test.
5668         * testsuite/libgomp.c/pr49897-2.c: New test.
5669         * testsuite/libgomp.c/pr49898-1.c: New test.
5670         * testsuite/libgomp.c/pr49898-2.c: New test.
5672 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
5674         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
5675         for ia32 instead of ilp32.
5677         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
5678         * testsuite/libgomp.c/atomic-6.c: Likewise.
5680 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
5682         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
5683         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
5685 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5687         PR libgomp/45351
5688         * config/osf/sem.h: New file.
5689         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
5691 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5693         PR target/49541
5694         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
5695         ldflags.
5697 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
5699         * config/linux/wait.h (do_spin): New inline, largely copied
5700         from do_wait, just don't do futex_wait here, instead return true if
5701         it should be done.
5702         (do_wait): Implement using do_spin.
5703         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
5704         to prototype.
5705         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
5706         __sync_bool_compare_and_swap, pass the oldval to
5707         gomp_mutex_lock_slow.
5708         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
5709         If all mutex contenders are just spinning and not sleeping, don't
5710         change state to 2 unnecessarily.  Optimize the loop when state has
5711         already become 2 to use just one atomic operation per loop instead
5712         of two.
5713         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
5714         to prototype.
5715         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
5716         __sync_bool_compare_and_swap, pass the oldval to
5717         gomp_mutex_lock_slow.
5719 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
5721         PR libgomp/49490
5722         * iter.c (gomp_iter_static_next): For chunk size 0
5723         only use n ceil/ nthreads size for the first
5724         n % nthreads threads in the team instead of
5725         all threads except for the last few ones which
5726         get less work or none at all.
5727         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
5728         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
5729         chunk argument, set run_sched_modifier to 0 for static
5730         resp. 1 for other kinds.  If chunk argument is 0
5731         and not static, set value to 1.
5733 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
5735         PR c++/49043
5736         * testsuite/libgomp.c++/pr49043.C: New test.
5738         PR c++/48869
5739         * testsuite/libgomp.c++/pr48869.C: New test.
5741 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
5743         PR fortran/48894
5744         * fortran.c: Include limits.h.
5745         (TO_INT): Define.
5746         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
5747         *set.
5748         (omp_set_num_threads_8_, omp_set_schedule_8_,
5749         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
5750         omp_get_team_size_8_): Use TO_INT macro.
5751         * testsuite/libgomp.fortran/pr48894.f90: New test.
5753 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
5755         PR middle-end/48591
5756         * testsuite/libgomp.c/pr48591.c: New test.
5758 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5760         PR bootstrap/48135
5761         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
5762         * configure: Regenerate.
5764 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
5766         PR fortran/47886
5767         * testsuite/libgomp.fortran/task3.f90: New test.
5769 2011-02-24  Tobias Burnus  <burnus@net-b.de>
5771         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
5773 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
5775         PR libgomp/47854
5776         * libgomp.texi (omp_get_wtime): Don't say time in the past
5777         must be Unix Epoch.
5779 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
5781         PR libgomp/47804
5782         * testsuite/libgomp.fortran/fortran.exp: Check for both
5783         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
5784         but $blddir != "", still append ${blddir}/${lang_library_path}
5785         to ld_library_path.
5787 2011-02-16  Tobias Burnus  <burnus@net-b.de>
5789         PR libgomp/47758
5790         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
5791         of libquadmath.a before adding its libpath to ldflags.
5793 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
5795         PR libgomp/47731
5796         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
5797         to FUTEX_WAIT futex syscall.
5798         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
5800 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5802         * configure: Regenerate.
5804 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
5806         PR libstdc++/36104
5807         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
5809 2011-01-16  Gerald Pfeifer
5811         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
5813 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
5815         PR fortran/46874
5816         * libgomp.fortran/allocatable6.f90: New test.
5818 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5820         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
5821         * configure: Regenerate.
5823 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
5825         PR target/40125
5826         PR lto/46695
5827         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
5828         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
5829         * aclocal.m4: Regenerate.
5830         * configure: Regenerate.
5831         * Makefile.in: Regenerate.
5832         * testsuite/Makefile.in: Regenerate.
5834 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
5836         PR fortran/46753
5837         * libgomp.fortran/pr46753.f90: New test.
5839         PR libgomp/43706
5840         * env.c (initialize_env): Default to spin count 300000
5841         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
5842         is specified.
5844         PR libgomp/45240
5845         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
5846         at the end if sync builtins aren't supported.
5848 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5850         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
5852 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5854         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
5856 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
5858         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
5860 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5861             Tobias Burnus  <burnus@net-b.de>
5863         PR fortran/32049
5864         * configure.ac:
5865         * configure: Regenerate.
5867 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5869         * config/linux/futex.h: New.
5870         * config/linux/arm/mutex.h: New.
5871         * configure.tgt (arm*-*-linux*): Add config path.
5873 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
5875         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
5877 2010-09-23  Tobias Burnus  <burnus@net-b.de>
5879         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
5880         Change Fortran datatype to LOGICAL.
5881         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
5882         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
5884 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5886         * configure: Regenerate.
5888 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
5890         * libgomp.texi: Add function keyword to a couple of Fortran
5891         interfaces, use integer instead of int for Fortran.
5893 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
5895         * libgomp.texi: Fix spelling and pasto problems throughout.
5896         Adjust prototypes to match code.
5898 2010-07-24  Tobias Burnus  <burnus@net-b.de>
5900         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
5901         silence -fwhole-file warning.
5903 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5905         * configure.tgt (*-*-solaris2.[56]*): Removed.
5907 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5909         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
5910         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
5911         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
5912         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
5913         targetting solaris2*.
5914         * configure: Regenerate.
5915         * config.h.in: Regenerate.
5917         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
5918         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
5919         Add libgomp_version_dep.
5920         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
5921         versioning.
5922         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
5923         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
5924         * Makefile.in: Regenerate.
5926         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
5927         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
5928         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
5929         to common block, protected by
5930         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
5932 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
5934         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
5936 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
5938         PR bootstrap/43170
5939         * configure: Regenerate.
5941 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5943         PR other/43620
5944         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
5945         * configure: Regenerate.
5946         * Makefile.in: Regenerate.
5947         * testsuite/Makefile.in: Regenerate.
5949 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
5951         PR c/43893
5952         * testsuite/libgomp.c/pr43893.c: New test.
5953         * testsuite/libgomp.c++/pr43893.C: New test.
5955 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5957         PR middle-end/43570
5958         * testsuite/libgomp.fortran/vla8.f90: New test.
5960 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5962         PR libgomp/43706
5963         * config/linux/affinity.c (gomp_init_affinity): Decrease
5964         gomp_available_cpus if affinity mask confines the process to fewer
5965         CPUs.
5966         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
5967         non-NULL, just return gomp_available_cpus.
5969         PR libgomp/43569
5970         * sections.c (gomp_sections_init): Initialize ws->mode.
5972 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5974         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
5975         not unused bar variable.
5976         * configure: Regenerate.
5978 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5980         * Makefile.in: Regenerate.
5981         * aclocal.m4: Regenerate.
5982         * testsuite/Makefile.in: Regenerate.
5984 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
5986         PR libgomp/42942
5987         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
5988         (initialize_env): Adjust callers.
5989         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
5990         when the argument is 0.
5992         * testsuite/libgomp.c/pr42942.c: New test.
5994 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5996         PR middle-end/42644
5997         PR middle-end/42130
5998         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
5999         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
6001 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6003         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
6004         * testsuite/libgomp.c++/task-6.C: Likewise.
6006 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
6008         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
6010 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
6012         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
6013         * configure: Regenerate.
6015 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
6017         PR fortran/42866
6018         * testsuite/libgomp.fortran/allocatable5.f90: New test.
6020 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
6022         * configure.ac: Test for executability of GFORTRAN.
6023         * configure: Regenerate.
6025 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6027         * configure: Regenerate.
6029 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
6031         PR libgomp/42602
6032         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
6034 2010-01-03  Richard Guenther  <rguenther@suse.de>
6036         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
6038 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
6040         * testsuite/libgomp.graphite/pr4118.c: New.
6042 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6044         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
6045         for darwin, protect the test with require-effective-target tls_runtime.
6046         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
6048 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6050         PR target/41605
6051         * testsuite/lib/libgomp.exp: Provide -B options to allow for
6052         link spec %s substitutions for static libraries.
6054 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
6056         PR testsuite/42135
6057         * libgomp.graphite/force-parallel-2.c: Reduce array size.
6059 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6061         * Makefile.in: Regenerate.
6062         * configure: Regenerate.
6063         * testsuite/Makefile.in: Regenerate.
6065 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
6067         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
6068         settings for LC_ALL and LANG.
6070 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
6072         PR fortran/42162
6073         * testsuite/libgomp.fortran/pr42162.f90: New test.
6075 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
6077         PR middle-end/42029
6078         * testsuite/libgomp.c/pr42029.c: New test.
6080 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
6082         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
6083         *s.  Accept ld version without text in ()s.
6084         * configure: Regenerated.
6086 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
6088         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
6090 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6092         PR libgomp/41418
6093         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
6094         or a hyphen (happens with fortran language disabled).
6095         * configure: Regenerate.
6097 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6099         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
6100         use sed script portable to Solaris /bin/sed for extracting ld
6101         version.
6102         * configure: Regenerate.
6104 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
6106         * testsuite/libgomp.graphite/bounds.c: New test.
6108 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6110         * Makefile.am (libgomp_la_LINK): New.
6111         * Makefile.in: Regenerate.
6113 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6115         * configure.ac (AC_PREREQ): Bump to 2.64.
6117 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6119         * Makefile.am (install-html, install-pdf): Remove.
6120         * Makefile.in: Regenerate.
6122         * Makefile.in: Regenerate.
6123         * aclocal.m4: Regenerate.
6124         * config.h.in: Regenerate.
6125         * configure: Regenerate.
6126         * testsuite/Makefile.in: Regenerate.
6128 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6130         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
6131         * Makefile.in: Regenerate.
6133 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
6135         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
6136         * Makefile.in: Regenerate.
6138 2009-08-19  Tobias Burnus  <burnus@net-b.de>
6140         PR fortran/41102
6141         omp_lib.h.in: Fix -std=f95 errors.
6143 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
6145         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
6146         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
6147         * testsuite/libgomp.graphite/graphite.exp: New.
6149 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
6151         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
6152         only build.
6154 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
6156         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
6157         needed memory barrier semantics.
6158         * config/linux/mips/mutex.h: New file.
6160 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6162         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
6164 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
6166         * configure: Regenerate.
6168 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
6170         PR testsuite/40699
6171         PR testsuite/40707
6172         PR testsuite/40709
6173         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
6174         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
6175         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
6177 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6179         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
6180         options when choosing a multilib.
6182 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
6184         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
6185         ld_library_path.  Use add_path.  Add just find_libgcc_s to
6186         ld_library_path, not every libgcc multilib directory.
6187         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
6188         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
6189         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
6190         Use add_path.
6191         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
6193 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
6195         * Makefile.am (LTLDFLAGS): Define.
6196         (LINK): Define.
6197         * Makefile.in: Regenerate.
6199 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
6201         PR fortran/39718
6202         * testsuite/libgomp.fortran/fortran.exp: Don't link with
6203         libgfortranbegin, check existence of libgfortran.a instead of
6204         libgfortranbegin.a.
6206 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
6208         PR libgomp/40174
6209         * team.c (gomp_thread_start): Destroy thr->release semaphore.
6210         (gomp_free_pool_helper): Likewise.
6212 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
6213             Jakub Jelinek  <jakub@redhat.com>
6215         PR fortran/35423
6216         * testsuite/libgomp.fortran/workshare2.f90: New test.
6218 2009-04-09  Nick Clifton  <nickc@redhat.com>
6220         * iter.c: Change copyright header to refer to version 3 of the
6221         GNU General Public License with version 3.1 of the GCC Runtime
6222         Library Exception and to point readers at the COPYING3 and
6223         COPYING3.RUNTIME files and the FSF's license web page.
6224         * alloc.c: Likewise.
6225         * barrier.c: Likewise.
6226         * config/bsd/proc.c: Likewise.
6227         * config/linux/affinity.c: Likewise.
6228         * config/linux/alpha/futex.h: Likewise.
6229         * config/linux/bar.c: Likewise.
6230         * config/linux/bar.h: Likewise.
6231         * config/linux/ia64/futex.h: Likewise.
6232         * config/linux/ia64/mutex.h: Likewise.
6233         * config/linux/lock.c: Likewise.
6234         * config/linux/mips/futex.h: Likewise.
6235         * config/linux/mutex.c: Likewise.
6236         * config/linux/mutex.h: Likewise.
6237         * config/linux/powerpc/futex.h: Likewise.
6238         * config/linux/proc.c: Likewise.
6239         * config/linux/ptrlock.c: Likewise.
6240         * config/linux/ptrlock.h: Likewise.
6241         * config/linux/s390/futex.h: Likewise.
6242         * config/linux/sem.c: Likewise.
6243         * config/linux/sem.h: Likewise.
6244         * config/linux/sparc/futex.h: Likewise.
6245         * config/linux/wait.h: Likewise.
6246         * config/linux/x86/futex.h: Likewise.
6247         * config/mingw32/proc.c: Likewise.
6248         * config/mingw32/time.c: Likewise.
6249         * config/posix/affinity.c: Likewise.
6250         * config/posix/bar.c: Likewise.
6251         * config/posix/bar.h: Likewise.
6252         * config/posix/lock.c: Likewise.
6253         * config/posix/mutex.h: Likewise.
6254         * config/posix/proc.c: Likewise.
6255         * config/posix/ptrlock.h: Likewise.
6256         * config/posix/sem.c: Likewise.
6257         * config/posix/sem.h: Likewise.
6258         * config/posix/time.c: Likewise.
6259         * config/posix95/lock.c: Likewise.
6260         * critical.c: Likewise.
6261         * env.c: Likewise.
6262         * error.c: Likewise.
6263         * fortran.c: Likewise.
6264         * iter_ull.c: Likewise.
6265         * libgomp.h: Likewise.
6266         * libgomp_f.h.in: Likewise.
6267         * libgomp_g.h: Likewise.
6268         * loop.c: Likewise.
6269         * loop_ull.c: Likewise.
6270         * omp.h.in: Likewise.
6271         * omp_lib.f90.in: Likewise.
6272         * omp_lib.h.in: Likewise.
6273         * ordered.c: Likewise.
6274         * parallel.c: Likewise.
6275         * sections.c: Likewise.
6276         * single.c: Likewise.
6277         * task.c: Likewise.
6278         * team.c: Likewise.
6279         * work.c: Likewise.
6281 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
6283         * testsuite/config/default.exp: Change copyright header to refer to
6284         version 3 of the GNU General Public License and to point readers
6285         at the COPYING3 file and the FSF's license web page.
6287 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
6289         PR middle-end/39573
6290         * libgomp.c++/pr39573.C: New test.
6292 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
6294         PR other/39591
6295         * testsuite/libgomp.c/pr39591-1.c: New test.
6296         * testsuite/libgomp.c/pr39591-2.c: New test.
6297         * testsuite/libgomp.c/pr39591-3.c: New test.
6299 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
6301         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
6302         * testsuite/libgomp.c/atomic-6.c: Ditto.
6304 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
6306         PR c/39495
6307         * testsuite/libgomp.c/loop-12.c: New test.
6308         * testsuite/libgomp.c/loop-11.c: New test.
6309         * testsuite/libgomp.c++/loop-11.C: New test.
6310         * testsuite/libgomp.c++/loop-12.C: New test.
6311         * testsuite/libgomp.c++/for-8.C: New test.
6313 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6315         * configure: Regenerate.
6317 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
6319         PR middle-end/39154
6320         * testsuite/libgomp.c/pr39154.c: New test.
6322 2009-01-30  Ian Lance Taylor  <iant@google.com>
6324         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
6325         libgomp_ld_is_gold.  Get gold version number.
6326         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
6327         * configure: Rebuild.
6329 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6331         * testsuite/lib/libgomp.exp: Add -B option for targets that
6332         use libgfortran.a%s in their specs.
6334 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
6336         PR libgomp/38086
6337         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
6338         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
6339         HAVE_AS_SYMVER_DIRECTIVE is not defined.
6340         * configure: Regenerated.
6341         * config.h.in: Likewise.
6343 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
6345         PR c++/38650
6346         * testsuite/libgomp.c/pr38650.c: New test.
6347         * testsuite/libgomp.c++/pr38650.C: New test.
6349 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
6351         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
6353 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
6355         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
6357 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6359         * configure: Regenerate.
6361 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
6363         PR middle-end/36802
6364         * testsuite/libgomp.c/pr36802-1.c: New test.
6365         * testsuite/libgomp.c/pr36802-2.c: New test.
6366         * testsuite/libgomp.c/pr36802-3.c: New test.
6368 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
6370         PR libgomp/38270
6371         * config/linux/powerpc/mutex.h: New.
6373 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
6375         PR c++/38257
6376         * testsuite/libgomp.c++/for-7.C: New test.
6378         PR c++/38348
6379         * testsuite/libgomp.c++/for-6.C: New test.
6381 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
6383         PR testsuite/28870
6384         * testsuite/lib/libgomp.exp: Include new timeout library files.
6385         (libgomp_target_compile): Set timeout value from new proc.
6387 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
6389         PR libgomp/37938
6390         * config/linux/ia64/mutex.h: New.
6392 2008-11-04  Tobias Burnus  <burnus@net-b.de>
6394         PR libgomp/37935
6395         * libgomp.texi (Runtime library routines, environment variables):
6396         Update for OpenMP version 3.0.
6398 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
6399             Steve Ellcey  <sje@cup.hp.com>
6401         * configure: Regenerate for new libtool.
6402         * Makefile.in: Ditto.
6403         * testsuite/Makefile.in: Ditto.
6405 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
6406             Andreas Tobler  <a.tobler@schweiz.org>
6408         * config/bsd/proc.c: New file.
6409         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
6410         * configure.ac: Check for header <sys/sysctl.h>
6411         * configure: Regenerate.
6412         * config.h.in: Likewise.
6414 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
6416         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
6418 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6420         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
6421         * Makefile.in: Regenerated.
6422         * testsuite/Makefile.in: Regenerated.
6424 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
6426         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
6427         depend on blddir if blddir exists.
6428         (libgomp_target_compile): Likewise.
6429         * testsuite/libgomp.c++/c++.exp: Likewise.
6430         * testsuite/libgomp.fortran/fortran.exp: Likewise.
6432 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6434         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
6435         Do not list GPL as Invariant Section.
6437 2008-07-28  Ilie Garbacea  <ilie@mips.com>
6438             Chao-ying Fu  <fu@mips.com>
6440         * configure.tgt: Enable futex for MIPS.
6441         * config/linux/mips/futex.h: New file.
6443 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
6445         * team.c (gomp_team_end): Free team immediately if it has
6446         just one thread.
6448 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
6450         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
6451         * testsuite/libgomp.fortran/fortran.exp: Same.
6452         * testsuite/libgomp.c/c.exp: Same.
6453         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
6454         directory to library path first.
6456 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
6458         * env.c (parse_stacksize): Add cast to avoid warning.
6459         (parse_spincount): Likewise.
6461 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
6463         * testsuite/libgomp.c/loop-10.c: New test.
6464         * libgomp.c/loop-3.c (main): Add lastprivate clause.
6465         * libgomp.c++/loop-6.C (main): Likewise.
6467         PR debug/36617
6468         * testsuite/libgomp.c/debug-1.c: New test.
6470 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
6472         * testsuite/libgomp.c/nqueens-1.c: New test.
6474         PR c++/36523
6475         * testsuite/libgomp.c++/task-7.C: New function.
6477 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6479         * configure: Regenerate.
6481 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6483         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
6484         mutex when HAVE_SYNC_BUILTINS isn't defined.
6486 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6488         * libgomp.texi (omp_test_lock): Fix typo.
6490 2008-06-12  Tobias Burnus  <burnus@net-b.de>
6492         * omp_lib.f90.in: Add "implicit none".
6494 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
6496         PR middle-end/36506
6497         * testsuite/libgomp.c/reduction-5.c: New test.
6499 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
6501         * libgomp.h (struct gomp_task): Add in_tied_task field.
6502         * task.c (gomp_init_task): Initialize it.
6503         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
6504         unconditionally.  Don't call gomp_team_barrier_wake if
6505         current task is implicit or if(0) from implicit and number of
6506         running tasks is equal to nthreads - 1.
6508         PR libgomp/36471
6509         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
6510         omp_get_team_size_8): Fix pastos.
6512         PR libgomp/36469
6513         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
6514         * configure: Regenerated.
6515         * config.h.in: Regenerated.
6516         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
6517         defined.
6519 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
6521         PR bootstrap/36452
6522         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
6523         (GOMP_loop_ull_dynamic_start): Likewise.
6524         (GOMP_loop_ull_guided_start): Likewise.
6525         (GOMP_loop_ull_ordered_static_start): Likewise.
6526         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
6527         (GOMP_loop_ull_ordered_guided_start): Likewise.
6529 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
6530             Richard Henderson  <rth@redhat.com>
6531             Ulrich Drepper  <drepper@redhat.com>
6532             Jakob Blomer  <jakob.blomer@ira.uka.de>
6534         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
6535         Substitute also OMP_*LOCK_25*.
6536         * configure: Regenerated.
6537         * config.h.in: Regenerated.
6538         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
6539         ptrlock.c and task.c.
6540         * Makefile.in: Regenerated.
6541         * testsuite/Makefile.in: Regenerated.
6542         * task.c: New file.
6543         * loop_ull.c: New file.
6544         * iter_ull.c: New file.
6545         * libgomp.h: Include ptrlock.h.
6546         (enum gomp_task_kind): New type.
6547         (struct gomp_team): Add task_lock, task_queue, task_count,
6548         task_running_count, single_count fields.  Add
6549         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
6550         Remove work_share_lock, generation_mask,
6551         oldest_live_gen, num_live_gen and init_work_shares fields, add
6552         work work_share_list_alloc, work_share_list_free and work_share_chunk
6553         fields.  Change work_shares from pointer to pointers into an array.
6554         Change ordered_release field into gomp_sem_t ** from flexible array
6555         member.  Add implicit_task and initial_work_shares fields.
6556         Move close to the end of the struct.
6557         (struct gomp_team_state): Add single_count, last_work_share,
6558         active_level and level fields, remove work_share_generation.
6559         (gomp_barrier_handle_tasks): New prototype.
6560         (gomp_finish_task): New inline function.
6561         (struct gomp_work_share): Move chunk_size, end, incr into
6562         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
6563         next_ll fields.  Reshuffle fields.  Add next_alloc,
6564         next_ws, next_free and inline_ordered_team_ids fields, change
6565         ordered_team_ids into pointer from flexible array member.
6566         Add mode field.  Put lock and next into a different cache line
6567         from most of the write-once fields.
6568         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
6569         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
6570         gomp_iter_ull_guided_next): New prototypes.
6571         (gomp_new_icv): New prototype.
6572         (struct gomp_thread): Add thread_pool and task fields.
6573         (struct gomp_thread_pool): New type.
6574         (gomp_new_team): New prototype.
6575         (gomp_team_start): Change type of last argument.
6576         (gomp_new_work_share): Removed.
6577         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
6578         (gomp_work_share_init_done): New static inline.
6579         (gomp_throttled_spin_count_var, gomp_available_cpus,
6580         gomp_managed_threads): New extern decls.
6581         (gomp_init_task): New prototype.
6582         (gomp_spin_count_var): New extern var decl.
6583         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
6584         or no alias support, or if not PIC.
6585         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
6586         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
6587         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
6588         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
6589         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
6590         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
6591         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
6592         gomp_test_nest_lock_25): New prototypes.
6593         (omp_lock_symver, strong_alias): Define.
6594         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
6595         decls.
6596         (gomp_end_task): New.
6597         (struct gomp_task_icv, gomp_global_icv): New.
6598         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
6599         (struct gomp_task): New.
6600         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
6601         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
6602         (gomp_icv): New.
6603         (gomp_schedule_type): Reorder enum to match
6604         omp_sched_t.
6605         * team.c (struct gomp_thread_start_data): Add thread_pool and task
6606         fields.
6607         (gomp_thread_start): Add gomp_team_barrier_wait call.
6608         For non-nested case remove clearing of docked thread thr fields.
6609         Use pool fields instead of global gomp_* variables.  Use
6610         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
6611         Create tasks for each member thread.
6612         (free_team): Only destroy team barrier, task_lock here and free it.
6613         (gomp_free_thread): Free last_team if non-NULL.
6614         (gomp_team_end): Call gomp_team_barrier_wait instead of
6615         gomp_barrier_wait.  For nested case call one extra
6616         gomp_barrier_wait.  Move here some destruction from free_team.
6617         Call free_team on pool->last_team if any, rather than freeing
6618         current team.  Destroy work_share_list_free_lock ifndef
6619         HAVE_SYNC_BUILTINS.
6620         (gomp_new_icv): New function.
6621         (gomp_threads, gomp_threads_size, gomp_threads_used,
6622         gomp_threads_dock): Removed.
6623         (gomp_thread_destructor): New variable.
6624         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
6625         functions.
6626         (gomp_team_start): Create new pool if current thread doesn't have
6627         one.  Use pool fields instead of global gomp_* variables.
6628         Initialize thread_pool field for new threads.  Clear single_count.
6629         Change last argument from ws to team, don't create
6630         new team, set ts.work_share to &team->work_shares[0] and clear
6631         ts.last_work_share.  Don't clear ts.work_share_generation.
6632         If number of threads changed, adjust atomically gomp_managed_threads.
6633         Use gomp_init_task instead of gomp_new_task,
6634         set thr->task to the corresponding implicit_task array entry.
6635         Create tasks for each member thread.  Initialize ts.level.
6636         (initialize_team): Call pthread_key_create on
6637         gomp_thread_destructor.
6638         (team_destructor): New function.
6639         (new_team): Removed.
6640         (gomp_new_team): New function.
6641         (free_team): Free gomp_work_share blocks chained through next_alloc,
6642         instead of freeing work_shares and destroying work_share_lock.
6643         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
6644         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
6645         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
6646         of gomp_barrier_wait.
6647         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
6648         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
6649         if gomp_work_share_start returned true.  Don't unlock ws->lock.
6650         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
6651         of gomp_barrier_wait.
6652         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
6653         gomp_work_share_init_done if gomp_work_share_start returned true.
6654         Don't unlock ws->lock.
6655         * work.c: Include stddef.h.
6656         (free_work_share): Use work_share_list_free_lock instead
6657         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
6658         Call gomp_fini_work_share and then either free ws if orphaned, or
6659         put it into work_share_list_free list of the current team.
6660         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
6661         functions.
6662         (gomp_work_share_start, gomp_work_share_end,
6663         gomp_work_share_end_nowait): Rewritten.
6664         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
6665         (openmp_version): Set to 200805.
6666         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
6667         omp_sched_guided, omp_sched_auto): New parameters.
6668         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
6669         omp_set_max_active_levels, omp_get_max_active_levels,
6670         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
6671         omp_get_active_level): New interfaces.
6672         * omp_lib.h.in (openmp_version): Set to 200805.
6673         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
6674         omp_sched_guided, omp_sched_auto): New parameters.
6675         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
6676         omp_set_max_active_levels, omp_get_max_active_levels,
6677         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
6678         omp_get_active_level): New externals.
6679         * loop.c: Include limits.h.
6680         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
6681         GFS_AUTO.
6682         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
6683         Likewise.  Use gomp_icv.
6684         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
6685         ts.static_trip here.
6686         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
6687         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
6688         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
6689         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
6690         don't unlock ws->lock, otherwise lock it.
6691         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
6692         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
6693         (gomp_parallel_loop_start): Call gomp_new_team instead of
6694         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
6695         Adjust gomp_team_start caller.  Pass 0 as second argument to
6696         gomp_resolve_num_threads.
6697         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
6698         If adding ws->chunk_size nthreads + 1 times after end won't
6699         overflow, set ws->mode to 1.
6700         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
6701         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
6702         GOMP_loop_ull_ordered_static_start,
6703         GOMP_loop_ull_ordered_dynamic_start,
6704         GOMP_loop_ull_ordered_guided_start,
6705         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
6706         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
6707         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
6708         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
6709         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
6710         prototypes.
6711         * libgomp.map: Export lock routines also @@OMP_2.0.
6712         (GOMP_loop_ordered_dynamic_first,
6713         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
6714         GOMP_loop_ordered_static_first): Remove.
6715         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
6716         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
6717         GOMP_loop_ull_ordered_dynamic_next,
6718         GOMP_loop_ull_ordered_dynamic_start,
6719         GOMP_loop_ull_ordered_guided_next,
6720         GOMP_loop_ull_ordered_guided_start,
6721         GOMP_loop_ull_ordered_runtime_next,
6722         GOMP_loop_ull_ordered_runtime_start,
6723         GOMP_loop_ull_ordered_static_next,
6724         GOMP_loop_ull_ordered_static_start,
6725         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
6726         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
6727         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
6728         (omp_set_schedule, omp_get_schedule,
6729         omp_get_thread_limit, omp_set_max_active_levels,
6730         omp_get_max_active_levels, omp_get_level,
6731         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
6732         omp_set_schedule_, omp_set_schedule_8_,
6733         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
6734         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
6735         omp_get_max_active_levels_, omp_get_level_,
6736         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
6737         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
6738         New exports @@OMP_3.0.
6739         * omp.h.in (omp_sched_t): New type.
6740         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
6741         omp_set_max_active_levels, omp_get_max_active_levels,
6742         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
6743         omp_get_active_level): New prototypes.
6744         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
6745         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
6746         gomp_thread_limit_var, gomp_remaining_threads_count,
6747         gomp_remaining_threads_lock): New variables.
6748         (parse_spincount): New function.
6749         (initialize_env): Call gomp_init_num_threads unconditionally.
6750         Initialize gomp_available_cpus.  Call parse_spincount,
6751         initialize gomp_{,throttled_}spin_count_var
6752         depending on presence and value of OMP_WAIT_POLICY and
6753         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
6754         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
6755         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
6756         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
6757         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
6758         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
6759         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
6760         (gomp_global_icv): New.
6761         (parse_schedule): Use it.  Parse "auto".
6762         (omp_set_num_threads): Use gomp_icv.
6763         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
6764         Likewise.
6765         (omp_get_max_threads): Move from parallel.c.
6766         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
6767         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
6768         add ialias.
6769         (parse_stacksize, parse_wait_policy): New functions.
6770         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
6771         both wrappers for compatibility and new locks.
6772         (omp_set_schedule, omp_get_schedule,
6773         omp_get_thread_limit, omp_set_max_active_levels,
6774         omp_get_max_active_levels, omp_get_level,
6775         omp_get_ancestor_thread_num, omp_get_team_size,
6776         omp_get_active_level): New ialias_redirect.
6777         (omp_set_schedule_, omp_set_schedule_8_,
6778         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
6779         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
6780         omp_get_max_active_levels_, omp_get_level_,
6781         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
6782         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
6783         New functions.
6784         * parallel.c: Include limits.h.
6785         (gomp_resolve_num_threads): Add count argument.  Rewritten.
6786         (GOMP_parallel_start): Call gomp_new_team and pass that as last
6787         argument to gomp_team_start.  Pass 0 as second argument to
6788         gomp_resolve_num_threads.
6789         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
6790         if gomp_thread_limit_var != ULONG_MAX.
6791         (omp_in_parallel): Implement using ts.active_level.
6792         (omp_get_max_threads): Move to env.c.
6793         (omp_get_level, omp_get_ancestor_thread_num,
6794         omp_get_team_size, omp_get_active_level): New functions,
6795         add ialias.
6796         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
6797         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
6798         gomp_iter_dynamic_next instead of the _locked variant and don't take
6799         lock around it, otherwise acquire it before calling
6800         gomp_iter_dynamic_next_locked.
6801         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
6802         gomp_iter_dynamic_next instead of the _locked variant and don't take
6803         lock around it.
6804         (GOMP_parallel_sections_start): Call gomp_new_team instead of
6805         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
6806         Adjust gomp_team_start caller.  Pass count as second argument to
6807         gomp_resolve_num_threads, don't adjust num_threads after the call.
6808         Use gomp_icv.
6809         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
6810         ws->chunk_size by incr.
6811         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
6812         code.
6813         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
6814         types.
6815         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
6816         (omp_check_defines): Check even the compat defines.
6817         * config/linux/ptrlock.c: New file.
6818         * config/linux/ptrlock.h: New file.
6819         * config/linux/wait.h: New file.
6820         * config/posix/ptrlock.c: New file.
6821         * config/posix/ptrlock.h: New file.
6822         * config/linux/bar.h (gomp_team_barrier_wait,
6823         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
6824         (gomp_team_barrier_set_task_pending,
6825         gomp_team_barrier_clear_task_pending,
6826         gomp_team_barrier_set_waiting_for_tasks,
6827         gomp_team_barrier_waiting_for_tasks,
6828         gomp_team_barrier_done): New inlines.
6829         (gomp_barrier_t): Rewritten.
6830         (gomp_barrier_state_t): New typedef.
6831         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
6832         gomp_barrier_wait_start): Rewritten.
6833         (gomp_barrier_wait_end): Change second argument to
6834         gomp_barrier_state_t.
6835         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
6836         inlines.
6837         * config/linux/bar.c: Include wait.h instead of libgomp.h and
6838         futex.h.
6839         (gomp_barrier_wait_end): Rewritten.
6840         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
6841         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
6842         * config/posix/bar.h (gomp_barrier_t): Add generation field.
6843         (gomp_barrier_state_t): New typedef.
6844         (gomp_team_barrier_wait,
6845         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
6846         (gomp_barrier_wait_start): Or all but low 2 bits from generation
6847         into the return value.  Return gomp_barrier_state_t.
6848         (gomp_team_barrier_set_task_pending,
6849         gomp_team_barrier_clear_task_pending,
6850         gomp_team_barrier_set_waiting_for_tasks,
6851         gomp_team_barrier_waiting_for_tasks,
6852         gomp_team_barrier_done): New inlines.
6853         (gomp_barrier_wait_end): Change second argument to
6854         gomp_barrier_state_t.
6855         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
6856         inlines.
6857         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
6858         (gomp_barrier_wait_end): Change second argument to
6859         gomp_barrier_state_t.
6860         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
6861         gomp_team_barrier_wake): New functions.
6862         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
6863         futex.h.
6864         (gomp_futex_wake, gomp_futex_wait): New variables.
6865         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
6866         * config/linux/lock.c: Rewrite to make locks task owned,
6867         for backwards compatibility provide the old entrypoints
6868         if symbol versioning.  Include wait.h instead of libgomp.h and
6869         futex.h.
6870         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
6871         * config/posix95/lock.c: Rewrite to make locks task owned,
6872         for backwards compatibility provide the old entrypoints
6873         if symbol versioning.
6874         * config/posix/lock.c: Rewrite to make locks task owned,
6875         for backwards compatibility provide the old entrypoints
6876         if symbol versioning.
6877         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
6878         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
6879         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
6880         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6881         (sys_futex0): Return error code.
6882         (futex_wake, futex_wait): If ENOSYS was returned, clear
6883         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6884         (cpu_relax, atomic_write_barrier): New static inlines.
6885         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6886         (futex_wake, futex_wait): If ENOSYS was returned, clear
6887         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6888         (cpu_relax, atomic_write_barrier): New static inlines.
6889         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6890         (sys_futex0): Return error code.
6891         (futex_wake, futex_wait): If ENOSYS was returned, clear
6892         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6893         (cpu_relax, atomic_write_barrier): New static inlines.
6894         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6895         (sys_futex0): Return error code.
6896         (futex_wake, futex_wait): If ENOSYS was returned, clear
6897         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6898         (cpu_relax, atomic_write_barrier): New static inlines.
6899         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6900         (sys_futex0): Return error code.
6901         (futex_wake, futex_wait): If ENOSYS was returned, clear
6902         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6903         (cpu_relax, atomic_write_barrier): New static inlines.
6904         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
6905         (sys_futex0): Return error code.
6906         (futex_wake, futex_wait): If ENOSYS was returned, clear
6907         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
6908         (cpu_relax, atomic_write_barrier): New static inlines.
6909         * config/linux/sem.c: Include wait.h instead of libgomp.h and
6910         futex.h.
6911         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
6912         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
6913         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
6914         types.
6915         (omp_nest_lock_t): Change owner into void *, add lock field.
6916         * config/posix95/omp-lock.h: Include semaphore.h.
6917         (omp_lock_25_t, omp_nest_lock_25_t): New types.
6918         (omp_lock_t): Use sem_t instead of mutex if semaphores
6919         aren't broken.
6920         (omp_nest_lock_t): Likewise.  Change owner to void *.
6921         * config/posix/omp-lock.h: Include semaphore.h.
6922         (omp_lock_25_t, omp_nest_lock_25_t): New types.
6923         (omp_lock_t): Use sem_t instead of mutex if semaphores
6924         aren't broken.
6925         (omp_nest_lock_t): Likewise.  Add owner field.
6927 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
6929         * testsuite/libgomp.c/collapse-1.c: New test.
6930         * testsuite/libgomp.c/collapse-2.c: New test.
6931         * testsuite/libgomp.c/collapse-3.c: New test.
6932         * testsuite/libgomp.c/icv-1.c: New test.
6933         * testsuite/libgomp.c/icv-2.c: New test.
6934         * testsuite/libgomp.c/lib-2.c: New test.
6935         * testsuite/libgomp.c/lock-1.c: New test.
6936         * testsuite/libgomp.c/lock-2.c: New test.
6937         * testsuite/libgomp.c/lock-3.c: New test.
6938         * testsuite/libgomp.c/loop-4.c: New test.
6939         * testsuite/libgomp.c/loop-5.c: New test.
6940         * testsuite/libgomp.c/loop-6.c: New test.
6941         * testsuite/libgomp.c/loop-7.c: New test.
6942         * testsuite/libgomp.c/loop-8.c: New test.
6943         * testsuite/libgomp.c/loop-9.c: New test.
6944         * testsuite/libgomp.c/nested-3.c: New test.
6945         * testsuite/libgomp.c/nestedfn-6.c: New test.
6946         * testsuite/libgomp.c/sort-1.c: New test.
6947         * testsuite/libgomp.c/task-1.c: New test.
6948         * testsuite/libgomp.c/task-2.c: New test.
6949         * testsuite/libgomp.c/task-3.c: New test.
6950         * testsuite/libgomp.c/task-4.c: New test.
6951         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
6952         to C++ testsuite default compiler options.
6953         * testsuite/libgomp.c++/collapse-1.C: New test.
6954         * testsuite/libgomp.c++/collapse-2.C: New test.
6955         * testsuite/libgomp.c++/ctor-10.C: New test.
6956         * testsuite/libgomp.c++/for-1.C: New test.
6957         * testsuite/libgomp.c++/for-2.C: New test.
6958         * testsuite/libgomp.c++/for-3.C: New test.
6959         * testsuite/libgomp.c++/for-4.C: New test.
6960         * testsuite/libgomp.c++/for-5.C: New test.
6961         * testsuite/libgomp.c++/loop-8.C: New test.
6962         * testsuite/libgomp.c++/loop-9.C: New test.
6963         * testsuite/libgomp.c++/loop-10.C: New test.
6964         * testsuite/libgomp.c++/task-1.C: New test.
6965         * testsuite/libgomp.c++/task-2.C: New test.
6966         * testsuite/libgomp.c++/task-3.C: New test.
6967         * testsuite/libgomp.c++/task-4.C: New test.
6968         * testsuite/libgomp.c++/task-5.C: New test.
6969         * testsuite/libgomp.c++/task-6.C: New test.
6970         * testsuite/libgomp.fortran/allocatable1.f90: New test.
6971         * testsuite/libgomp.fortran/allocatable2.f90: New test.
6972         * testsuite/libgomp.fortran/allocatable3.f90: New test.
6973         * testsuite/libgomp.fortran/allocatable4.f90: New test.
6974         * testsuite/libgomp.fortran/collapse1.f90: New test.
6975         * testsuite/libgomp.fortran/collapse2.f90: New test.
6976         * testsuite/libgomp.fortran/collapse3.f90: New test.
6977         * testsuite/libgomp.fortran/collapse4.f90: New test.
6978         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
6979         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
6980         * testsuite/libgomp.fortran/lib4.f90: New test.
6981         * testsuite/libgomp.fortran/lock-1.f90: New test.
6982         * testsuite/libgomp.fortran/lock-2.f90: New test.
6983         * testsuite/libgomp.fortran/nested1.f90: New test.
6984         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
6985         * testsuite/libgomp.fortran/strassen.f90: New test.
6986         * testsuite/libgomp.fortran/tabs1.f90: New test.
6987         * testsuite/libgomp.fortran/tabs2.f: New test.
6988         * testsuite/libgomp.fortran/task1.f90: New test.
6989         * testsuite/libgomp.fortran/task2.f90: New test.
6990         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
6991         * testsuite/libgomp.fortran/vla5.f90: Likewise.
6992         * testsuite/libgomp.c/pr26943-2.c: Likewise.
6993         * testsuite/libgomp.c/pr26943-3.c: Likewise.
6994         * testsuite/libgomp.c/pr26943-4.c: Likewise.
6996 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
6998         PR c++/36308
6999         * testsuite/libgomp.c++/ctor-11.C: New test.
7000         * testsuite/libgomp.c++/ctor-12.C: New test.
7002 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
7004         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
7006 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
7008         PR middle-end/36106
7009         * testsuite/libgomp.c/atomic-5.c: New test.
7010         * testsuite/libgomp.c/atomic-6.c: New test.
7011         * testsuite/libgomp.c/autopar-1.c: New test.
7013 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7015         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
7016         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
7017         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
7018         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
7019         * configure: Regenerate.
7020         * Makefile.in, testsuite/Makefile.in: Likewise.
7022 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
7024         PR bootstrap/35457
7025         * aclocal.m4: Regenerate.
7026         * configure: Regenerate.
7028 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
7030         PR middle-end/35611
7031         * testsuite/libgomp.c/atomic-4.c: New test.
7033         PR libgomp/35625
7034         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
7035         (gomp_iter_guided_next): Likewise.
7036         * testsuite/libgomp.c/pr35625.c: New test.
7038 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7040         * aclocal.m4: Regenerate.
7041         * configure: Likewise.
7042         * Makefile.in: Likewise.
7043         * testsuite/Makefile.in: Likewise.
7045 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
7047         PR middle-end/35185
7048         * testsuite/libgomp.c++/pr35185.C: New test.
7050 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
7052         PR middle-end/35549
7053         * testsuite/libgomp.c/pr35549.c: New test.
7055 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7057         * testsuite/libgomp.c/atomic-3.c: New test.
7059 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7061         PR fortran/33197
7062         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
7063         .F08 file suffixes.
7065 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
7067         PR libgomp/33131
7068         * configure.ac: Add ACX_HEADER_STRING.
7069         * env.c: Include strings.h.
7070         * aclocal.m4: Regenerate.
7071         * config.h.in: Regenerate.
7072         * configure: Regenerate.
7073         * Makefile.in: Regenerate.
7074         * testsuite/Makefile.in: Regenerate.
7076 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
7078         PR middle-end/35196
7079         * testsuite/libgomp.c/pr35196.c: New test.
7081         PR middle-end/35130
7082         * testsuite/libgomp.fortran/pr35130.f90: New test.
7083         * testsuite/libgomp.c/pr35130.c: New test.
7085 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
7087         PR middle-end/33880
7088         * testsuite/libgomp.c/pr33880.c: New test.
7089         * testsuite/libgomp.fortran/pr33880.f90: New test.
7091 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
7093         * configure: Regenerate.
7095 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
7097         * configure.ac: Move futex checking into ../config/futex.m4.
7098         * configure: Rebuilt.
7099         * aclocal.m4: Rebuilt.
7100         * Makefile.in: Rebuilt.
7102         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
7103         2007-10-15 ../config/tls.m4 change.
7105 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
7107         PR c++/34513
7108         * testsuite/libgomp.c/pr34513.c: New test.
7109         * testsuite/libgomp.c++/pr34513.C: New test.
7111 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
7113         PR target/32765
7114         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
7116 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
7118         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
7120 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
7122         * testsuite/libgomp.c/private-1.c: New test.
7124 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
7125             Paolo Bonzini  <bonzini@gnu.org>
7127         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
7128         instead of 'VPATH ='.
7129         * Makefile.in: Regenerate.
7131 2007-11-23  Matthias Klose  <doko@ubuntu.com>
7133         * configure.ac: Adjust makeinfo version check.
7134         * configure: Regenerate.
7136 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
7138         PR fortran/34020
7139         * testsuite/libgomp.fortran/pr34020.f90: New test.
7141 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
7143         PR c++/33894
7144         * testsuite/libgomp.c++/atomic-1.C: New test.
7146 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
7148         PR libgomp/33275
7149         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
7150         Make x and y integers rather than (implicit) reals.  Add private (j)
7151         clause to the last omp parallel.
7153 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
7155         * configure: Regenerate following changes to ../config/tls.m4.
7157 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
7159         * testsuite/libgomp.fortran/stack.f90: New test.
7161 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
7163         * config/mingw32/proc.c: New file.
7165 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
7167         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
7168         (main): Use __get_cpuid to get i386 target fetaures.
7169         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
7170         (main): Use __get_cpuid to get x86_64 target fetaures.
7172 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
7174         PR target/32765
7175         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
7176         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
7178 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
7180         PR fortran/32550
7181         * testsuite/libgomp.fortran/pr32550.f90: New test.
7182         * testsuite/libgomp.fortran/crayptr2.f90: New test.
7184 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
7186         * aclocal.m4: Regenerated.
7188 2007-07-05  Tobias Burnus  <burnus@net-b.de>
7190         PR fortran/32359
7191         * testsuite/libgomp.fortran/pr32359.f90: New.
7193 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
7195         PR libgomp/32468
7196         * sections.c (GOMP_parallel_sections_start): Only decrease
7197         number of threads to COUNT if dyn_var is true.
7198         * testsuite/libgomp.c/pr32468.c: New test.
7200 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7202         PR libgomp/26308
7203         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
7205 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
7207         PR middle-end/32362
7208         * testsuite/libgomp.c/pr32362-1.c: New test.
7209         * testsuite/libgomp.c/pr32362-2.c: New test.
7210         * testsuite/libgomp.c/pr32362-3.c: New test.
7212 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
7214         * team.c (gomp_team_start): Fix setting up thread_attr
7215         stack size.
7217 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
7219         * configure: Regenerate.
7221 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
7223         * Makefile.in: Regenerate.
7224         * configure: Regenerate.
7225         * aclocal.m4: Regenerate.
7226         * testsuite/Makefile.in: Regenerate.
7228 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
7230         * config/linux/proc.c: New file.
7232         PR libgomp/28482
7233         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
7235 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
7237         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
7239 2007-04-16  Matthias Klose  <doko@debian.org>
7241         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
7242         flags if not building with -m64.
7243         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
7244         flag for i?86-*-* targets, if current target matches -m64.
7246 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
7248         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
7249         * Makefile.in: Regenerate.
7251 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7253         PR testsuite/31369
7254         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
7255         ld_library_path.
7256         * testsuite/libgomp.fortran/fortran.exp: Likewise.
7258 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
7260         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
7261         decls.
7262         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
7263         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
7264         (parse_affinity): New function.
7265         (initialize_env): Call it and gomp_init_affinity.
7266         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
7267         create new pthread_attr_t and call gomp_init_thread_affinity
7268         on it for each thread before passing the attribute to pthread_create.
7269         * config/linux/affinity.c: New file.
7270         * config/posix/affinity.c: New file.
7271         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
7272         * configure: Rebuilt.
7273         * config.h.in: Rebuilt.
7274         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
7275         * Makefile.in: Rebuilt.
7277 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
7279         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
7280         *-*-darwin*.
7281         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
7282         and use it if found.
7284 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
7286         * testsuite/config/default.exp: New file.
7287         * testsuite/lib/libgomp.exp: New file.
7288         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
7289         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
7290         load_lib *, load_gcc_lib *): Move to libgomp.exp.
7291         (libgomp_load): Remove.
7292         * testsuite/lib/libgomp.exp (libgomp_init): Compute
7293         always_ld_library_path, not ld_library_path.  Set additional_flags
7294         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
7295         (target_compile): Do not call libgomp_init.  Append lang_library_path
7296         and lang_link_flags to options.
7297         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
7298         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
7299         here.
7300         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
7301         always_ld_library_path.  Set LD_LIBRARY_PATH here.
7302         * testsuite/libgomp.fortran/fortran.exp: Ditto.
7303         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
7304         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
7305         CX8 flag.
7306         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
7307         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
7308         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
7309         * testsuite/libgomp.c/pr29947-1.c: Ditto.
7310         * testsuite/libgomp.c/atomic-10.c: Ditto.
7312 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
7314         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
7315         dg-final cleanup-modules line.
7316         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
7317         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
7318         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
7319         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
7320         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
7321         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
7322         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
7324 2007-03-18  Andreas Schwab  <schwab@suse.de>
7326         * acinclude.m4: Adjust regular expression for ld version
7327         extraction.
7328         * configure: Regenerate.
7330 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
7332         * Makefile.am: Add install-pdf target as copied from
7333         automake v1.10 rules.
7334         * Makefile.in: Regenerate
7336 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
7338         PR libgomp/28486
7339         * configure: Regenerate.
7341         PR c++/30703
7342         * testsuite/libgomp.c++/pr30703.C: New test.
7344 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
7346         Revert:
7347         2006-07-05  Eric Christopher  <echristo@apple.com>
7348         * configure.ac: Depend addition of -pthread on host OS.
7349         * configure: Regenerate.
7351 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7353         * libgomp.texi: Fix spacing after abbreviations.
7355 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
7357         PR libgomp/30546
7358         * configure.ac: Add check for makeinfo
7359         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
7360         if an appropiate version of makeinfo is found.
7361         * aclocal.m4: Regenerated.
7362         * configure: Regenerated.
7363         * Makefile.in: Regenerated.
7364         * testsuite/Makefile.in: Regenerated.
7366 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
7368         PR libgomp/30540
7369         * libgomp.texi: More about implementation-dependent settings.
7371 2007-01-26  Tobias Burnus  <burnus@net-b.de>
7373         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
7375 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
7377         PR middle-end/30494
7378         * testsuite/libgomp.c/pr30494.c: New test.
7380 2007-01-15  Tom Tromey  <tromey@redhat.com>
7382         * configure: Rebuilt.
7383         * configure.ac: Fixed comment.
7385 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
7387         * libgomp.texi: Document implementation specific default values of
7388         environment variables.
7390 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
7392         PR libgomp/28209
7393         * libgomp.texi: New file.
7394         * configure.ac: Add --enable-generated-files-in-srcdir option.
7395         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
7396         files to srcdir.
7397         * Makefile.in: Regenerated.
7398         * config.h.in: Regenerated.
7399         * testsuite/Makefile.in: Regenerated.
7400         * NOTES: Removed.
7402 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
7404         PR libgomp/29949
7405         * env.c (omp_set_num_threads): Set illegal thread count to 1.
7407 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7409         * configure: Regenerate.
7411 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
7413         PR libgomp/29947
7414         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
7415         start if there shouldn't be any loop iterations.
7416         (gomp_loop_ordered_static_start): Remove start == end test.
7417         * testsuite/libgomp.c/pr29947-1.c: New test.
7418         * testsuite/libgomp.c/pr29947-2.c: New test.
7420 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7422         * configure.tgt: Force initial-exec TLS model on Linux only.
7424 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
7426         * configure: Regenerated.
7428 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
7430         * env.c (parse_schedule): Reject out of range values.
7431         (parse_unsigned_long): Reject out of range, negative or zero values.
7433 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
7435         PR fortran/29629
7436         * testsuite/libgomp.fortran/pr29629.f90: New test.
7438 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
7440         PR libgomp/29494
7441         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
7442         * config/posix95: New directory.
7443         * config/posix95/omp-lock.h: New file.
7444         * config/posix95/lock.c: Likewise.
7446 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
7448         * aclocal.m4: Regenerate.
7449         * configure: Regenerate.
7451 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
7453         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
7454         '<' to '<='.
7456 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
7458         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
7459         test.
7460         * configure: Regenerate.
7461         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
7463 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
7465         PR middle-end/25261
7466         PR middle-end/28790
7467         * testsuite/libgomp.c/nestedfn-4.c: New test.
7468         * testsuite/libgomp.c/nestedfn-5.c: New test.
7469         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
7471         PR fortran/29097
7472         * testsuite/libgomp.fortran/condinc1.f: New test.
7473         * testsuite/libgomp.fortran/condinc2.f: New test.
7474         * testsuite/libgomp.fortran/condinc3.f90: New test.
7475         * testsuite/libgomp.fortran/condinc4.f90: New test.
7476         * testsuite/libgomp.fortran/condinc1.inc: New file.
7478 2006-09-18  Tom Tromey  <tromey@redhat.com>
7480         * configure: Rebuilt.
7482 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
7484         PR c/28768
7485         PR preprocessor/14634
7486         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
7487         to AC_DEFINE.
7488         * configure: Regenerate.
7490 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
7492         * testsuite/libgomp.fortran/reduction3.f90: Change
7493         -2147483648 to -huge(i)-1 to avoid overflow.
7494         * testsuite/libgomp.fortran/reduction4.f90: Change
7495         Z'ffffffff' to not(0) to avoid overflow.
7497 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
7499         PR libgomp/25938
7500         * Makefile.am (libsubincludedir): New.
7501         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
7502         * Makefile.in: Regenerate.
7504 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
7506         PR libgomp/28725
7507         * env.c: Include ctype.h.
7508         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
7509         leading and/or trailing whitespace and compare strings case
7510         insensitively.
7512 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
7514         PR fortran/28390
7515         * testsuite/libgomp.fortran/pr28390.f: New test.
7517 2006-07-05  Eric Christopher  <echristo@apple.com>
7519         * configure.ac: Depend addition of -pthread on host OS.
7520         * configure: Regenerate.
7522 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
7524         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
7525         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
7526         defined.
7528 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
7530         PR libgomp/26175
7531         PR libgomp/26477
7532         * configure.ac: If neither --enable-linux-futex nor
7533         --disable-linux-futex is passed, determine the default by checking
7534         for compiling and/or running against NPTL.  With --enable-linux-futex,
7535         check if SYS_gettid and SYS_futex are defined.
7536         * configure: Rebuilt.
7538 2006-06-14  Richard Henderson  <rth@redhat.com>
7540         PR libgomp/28008
7541         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
7542         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
7544 2006-06-09  Richard Henderson  <rth@redhat.com>
7546         * env.c (gomp_nthreads_var): Change to unsigned long.
7547         (gomp_run_sched_chunk): Likewise.
7548         (parse_unsigned_long): Rename from parse_num_threads and generalize.
7549         (initialize_env): Initialize gomp_thread_attr.
7550         * libgomp.h (gomp_nthreads_var): Update decl.
7551         (gomp_run_sched_chunk): Likewise.
7552         (gomp_thread_attr): Declare.
7553         * team.c (gomp_thread_attr): Export.
7554         (initialize_team): Don't initialize it.
7556 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
7558         PR fortran/27916
7559         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
7560         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
7562 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7564         * config/mingw32/time.c: New file.
7565         * configure.tgt: Use it.
7567 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
7569         * Makefile.am: Add install-html target. Add install-html to .PHONY
7570         * Makefile.in: Regenerate.
7572 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7574         PR libgomp/27612
7575         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
7576         * testsuite/libgomp.c/critical-1.c: Likewise.
7577         * testsuite/libgomp.c/loop-1.c: Likewise.
7578         * testsuite/libgomp.c/loop-2.c: Likewise.
7579         * testsuite/libgomp.c/single-1.c: Likewise.
7580         * testsuite/libgomp.c/ordered-1.c: Likewise.
7581         * testsuite/libgomp.c/ordered-2.c: Likewise.
7583 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
7585         PR middle-end/27416
7586         * libgomp.fortran/pr27416-1.f90: New test.
7588 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
7590         PR fortran/27395
7591         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
7592         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
7594 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
7596         PR c++/26943
7597         * testsuite/libgomp.c/pr26943-1.c: New test.
7598         * testsuite/libgomp.c/pr26943-2.c: New test.
7599         * testsuite/libgomp.c/pr26943-3.c: New test.
7600         * testsuite/libgomp.c/pr26943-4.c: New test.
7601         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
7602         * testsuite/libgomp.c++/pr26943.C: New test.
7604 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
7606         PR middle-end/27337
7607         * testsuite/libgomp.c++/pr27337.C: New test.
7609 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
7611         PR c/26171
7612         * testsuite/libgomp.c/pr26171.c: New test.
7614 2006-04-25  Richard Henderson  <rth@redhat.com>
7616         PR libgomp/25865
7617         * configure.ac: Use GCC_CHECK_TLS.
7618         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
7619         * Makefile.in, aclocal.m4, configure: Regenerate.
7621 2006-04-10  Matthias Klose  <doko@debian.org>
7623         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
7624         directory names containing underscores.
7626 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
7628         PR c++/26691
7629         * testsuite/libgomp.c++/pr26691.C: New test.
7631 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
7633         * testsuite/libgomp.fortran/retval2.f90: New test.
7635 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
7637         * testsuite/libgomp.c++: New directory.
7639 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
7641         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
7642         * config/posix/sem.c: Implement the above.
7644 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
7646         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
7647         define HAVE_BROKEN_POSIX_SEMAPHORES.
7648         * configure: Rebuilt.
7649         * config.h.in: Rebuilt.
7651 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7653         PR bootstrap/26161
7654         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
7655         for the other pthread check.
7656         * configure: Regenerate.
7657         * config.h.in: Regenerate.
7659 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
7661         PR libgomp/25938
7662         PR libgomp/25984
7663         * Makefile.am (fincludedir): New variable.
7664         (nodist_include_HEADERS): Remove Fortran files.
7665         (nodist_finclude_HEADERS): New variable.
7666         * Makefile.in: Regenerated.
7668 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
7670         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
7671         Remove tests for returning assumed character length arrays.
7673 2006-02-12  Roger Sayle  <roger@eyesopen.com>
7674             John David Anglin  <dave@hiauly1.hia.nrc.ca>
7676         PR libgomp/25936
7677         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
7679 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
7681         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
7683 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
7685         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
7686         part of LD_LIBRARY_PATH manually.
7688 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
7690         PR libgomp/25852
7691         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
7692         libgomp_init.
7694 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
7696         PR libgomp/25884
7697         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
7698         * configure.ac (PERL): Don't set.
7699         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
7700         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
7701         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
7702         * omp.h.in: Wrap the new configure substitutions with @ characters.
7703         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
7704         * aclocal.m4, configure, Makefile.in: Regenerate.
7705         * mkomp_h.pl: Delete.
7707 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
7709         PR libgomp/25259
7710         * configure.ac: Use GCC_HEADER_STDINT.
7711         * libgomp.h: Include gstdint.h.
7712         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
7713         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
7715 2006-01-24  Richard Henderson  <rth@redhat.com>
7717         PR libgomp/25942
7718         * configure.ac: Add AM_MAINTAINER_MODE.
7719         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
7721 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
7723         * Makefile.in: Regenerate.
7724         * testsuite/Makefile.in: Regenerate.
7725         * aclocal.m4: Regenerate.
7727 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
7729         * config/posix/proc.c: Conditional include of sys/loadavg.h for
7730         Solaris.
7731         * configure.ac: Add check for loadavg.h.
7732         (link_gomp): Adjust comment.
7733         * configure: Regenerate.
7734         * config.h.in: Regenerate.
7736 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
7738         PR libgomp/25877
7739         * configure.ac: Remove check for alloca.h.
7740         * configure: Regenerate.
7741         * config.h.in: Regenerate.
7742         * libgomp.h: define gomp_alloca to be __builtin_alloca.
7743         * team.c: Remove use of alloca.h.
7744         Call gomp_alloca instead of alloca.
7746 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
7748         PR libgomp/25877
7749         * team.c: Add include of alloca.h.
7750         * configure.ac: Add check for alloca.h.
7751         * configure: Regenerate.
7752         * config.h.in: Regenerate.
7754 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
7756         PR fortran/25219
7757         * testsuite/libgomp.fortran/pr25219.f90: New test.
7759 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
7761         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
7762         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
7763         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
7764         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
7765         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
7766         testsuite/libgomp.fortran/threadprivate1.f90,
7767         testsuite/libgomp.fortran/threadprivate2.f90,
7768         testsuite/libgomp.fortran/threadprivate3.f90,
7769         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
7770         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
7771         testsuite/libgomp.fortran/omp_parse3.f90: Change required
7772         effective-target to TLS runtime.
7774         * testsuite/libgomp.fortran/pr25162.f: Require
7775         effective-target TLS runtime.
7777 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
7779         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
7780         * testsuite/libgomp.c/nestedfn-3.c: New test.
7782 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
7784         PR fortran/25162
7785         * testsuite/libgomp.fortran/pr25162.f: New test.
7787 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
7789         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
7790         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
7792 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
7794         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
7795         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
7796         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
7797         single.c, team.c, work.c, config/linux/alpha/futex.h,
7798         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
7799         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
7800         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
7801         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
7802         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
7803         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
7804         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
7805         FSF address.
7807 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
7809         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
7810         to nodist_noinst_HEADERS.
7811         * Makefile.in: Rebuilt.
7813         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
7814         add integer count field.
7815         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
7816         omp_nest_lock_t type change.
7817         (omp_init_nest_lock): Likewise.  Initialize count to 0.
7818         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
7819         Increment count.
7820         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
7821         Decrement count.
7822         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
7823         Increment count if successful and return the new nesting level.
7824         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
7825         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
7826         * testsuite/libgomp.c/lib-1.c: New test.
7827         * testsuite/libgomp.fortran/lib1.f90: New test.
7828         * testsuite/libgomp.fortran/lib2.f: New test.
7829         * testsuite/libgomp.fortran/lib3.f: New test.
7831 2005-11-17  Richard Henderson  <rth@redhat.com>
7833         PR 24845
7834         * Makefile.am (nodist_toolexeclib_HEADERS): New.
7835         * configure.ac (link_gomp): New.  Substitute it.
7836         (AC_CONFIG_FILES): Add libgomp.spec.
7837         * libgomp.spec.in: New file.
7838         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
7839         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
7841 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
7843         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
7844         reduction(-:var) behaving the same as reduction(+:var).
7845         * testsuite/libgomp.c/reduction-4.c: New test.
7847 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
7849         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
7850         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
7851         testsuite/libgomp.c/copyin-3.c,
7852         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
7853         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
7854         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
7855         testsuite/libgomp.c++/pr24455.C,
7856         testsuite/libgomp.fortran/threadprivate1.f90,
7857         testsuite/libgomp.fortran/threadprivate2.f90,
7858         testsuite/libgomp.fortran/threadprivate3.f90,
7859         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
7860         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
7861         testsuite/libgomp.fortran/omp_parse3.f90: Require
7862         effective-target TLS.
7864 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
7866         * HEADER: Remove.
7868 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
7870         PR libgomp/24797
7871         * team.c (initialize_team): Pass NULL rather than free as
7872         pthread_key_create destructor.  Initialize thread specific data
7873         pointer in initial thread to a static local variable rather than
7874         malloced memory.
7876 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
7878         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
7879         its location to ld_library_path.
7881 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
7883         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
7885 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
7887         * testsuite/libgomp.c: Rename from libgomp.dg.
7889 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
7891         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
7892         threadprivate variable 'i'.
7894 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
7896         * config/linux/s390/futex.h: New file.
7897         * configure.tgt: Use it.
7899         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
7900         before the parallel.
7902 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
7904         PR c++/24734
7905         * testsuite/libgomp.c++/master-1.C: New test.
7907 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
7909         * testsuite/libgomp.dg/copyin-3.c: New test.
7911 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
7913         * testsuite/libgomp.fortran/retval1.f90: New test.
7914         * testsuite/libgomp.fortran/vla7.f90: New test.
7916 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
7918         * testsuite/libgomp.fortran/vla2.f90: New test.
7919         * testsuite/libgomp.fortran/vla3.f90: New test.
7920         * testsuite/libgomp.fortran/vla4.f90: New test.
7921         * testsuite/libgomp.fortran/vla5.f90: New test.
7922         * testsuite/libgomp.fortran/vla6.f90: New test.
7924 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
7926         * config/linux/sparc/futex.h: New file.
7927         * configure.tgt: Use it.
7928         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
7930         * critical.c: Include stdlib.h.
7931         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
7932         ignoring return value.
7933         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
7934         LIBGOMP_CHECK_SYNC_BUILTINS check.
7935         * configure: Rebuilt.
7937 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
7939         * testsuite/libgomp.fortran/vla1.f90: New test.
7941 2005-10-31  Richard Henderson  <rth@redhat.com>
7943         * testsuite/libgomp.fortran/character2.f90: Fix race condition
7944         setting 's' in different threads.
7946 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
7948         * libgomp.h (attribute_hidden, ialias): Define.
7949         * config/posix/proc.c (omp_get_num_procs): Add ialias.
7950         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
7951         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
7952         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
7953         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
7954         omp_test_lock, omp_test_nest_lock): Likewise.
7955         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
7956         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
7957         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
7958         omp_test_lock, omp_test_nest_lock): Likewise.
7959         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
7960         omp_get_dynamic, omp_get_nested): Likewise.
7961         * parallel.c (omp_get_num_threads, omp_get_max_threads,
7962         omp_get_thread_num, omp_in_parallel): Likewise.
7963         * fortran.c (ialias_redirect): Define.
7964         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
7965         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
7966         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
7967         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
7968         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
7969         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
7970         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
7971         omp_get_wtime): Add ialias_redirect.
7973 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
7975         * fortran.c: Include stdlib.h.
7977 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
7979         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
7980         * Makefile.in: Regenerated.
7982 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
7984         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
7985         * libgomp_f.h.in (omp_check_defines): New function.
7986         * env.c: Include libgomp_f.h.
7987         (initialize_env): Call omp_check_defines.
7989         * testsuite/libgomp.dg/copyin-2.c: New test.
7990         * testsuite/libgomp.c++/copyin-2.C: New test.
7991         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
7993         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
7994         * testsuite/libgomp.fortran/sharing2.f90: New test.
7996         * testsuite/libgomp.dg/copyin-1.c: New test.
7997         * testsuite/libgomp.c++/copyin-1.C: New test.
7999 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
8001         * testsuite/libgomp.fortran/crayptr1.f90: New test.
8003         * testsuite/libgomp.fortran/workshare1.f90: New test.
8005         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
8006         only test.
8007         * libgomp.fortran/sharing1.f90: New test.
8009 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
8011         PR c++/24502
8012         * testsuite/libgomp.c++/loop-7.C: New test.
8014         * testsuite/libgomp.dg/nestedfn-2.c: New test.
8016         * testsuite/libgomp.dg/nestedfn-1.c: New test.
8017         * testsuite/libgomp.fortran/reduction6.f90: New test.
8018         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
8020 2005-10-23  Richard Henderson  <rth@redhat.com>
8022         * testsuite/libgomp.c++/ctor-1.C: New.
8023         * testsuite/libgomp.c++/ctor-2.C: New.
8024         * testsuite/libgomp.c++/ctor-3.C: New.
8025         * testsuite/libgomp.c++/ctor-4.C: New.
8026         * testsuite/libgomp.c++/ctor-5.C: New.
8027         * testsuite/libgomp.c++/ctor-6.C: New.
8028         * testsuite/libgomp.c++/ctor-7.C: New.
8029         * testsuite/libgomp.c++/ctor-8.C: New.
8030         * testsuite/libgomp.c++/ctor-9.C: New.
8032 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
8034         PR 24455
8035         * testsuite/libgomp.c++/pr24455-1.C: New test.
8036         * testsuite/libgomp.c++/pr24455.C: New test.
8037         * testsuite/libgomp.dg/pr24455-1.c: New test.
8038         * testsuite/libgomp.dg/pr24455.c: New test.
8040 2005-10-20  Richard Henderson  <rth@redhat.com>
8042         * testsuite/libgomp.c++/loop-6.C: New.
8043         * testsuite/libgomp.dg/loop-3.c: New.
8045 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
8047         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
8048         explicitly private.
8049         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
8050         explicitly shared.
8052 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
8054         * testsuite/libgomp.fortran/jacobi.f: New test.
8056 2005-10-19  Richard Henderson  <rth@redhat.com>
8058         * configure.tgt (i?86-linux): Default to with_arch instead of
8059         CFLAGS.  Add -mtune to match target_cpu.
8060         (x86_64-linux): Tune to i686.
8062         * fortran.c (omp_test_nest_lock_): Fix typo.
8064 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
8066         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
8067         gomp_ordered_sync): Do nothing if team->nthreads == 1.
8068         * testsuite/libgomp.dg/ordered-3.c: New test.
8070         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
8071         Remove volatile keyword.
8073         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
8074         in COMMON block to avoid warnings on 64-bit targets.
8076 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
8078         * testsuite/libgomp.dg/shared-3.c: New test.
8080 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
8082         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
8083         * testsuite/libgomp.fortran/reduction5.f90: New test.
8085 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
8087         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
8088         dg-options.
8089         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
8090         flush loop now that __sync_synchronize has proper memory barrier.
8091         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
8092         Add -ffixed-form to dg-options.
8094 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
8096         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
8097         from subdirectories.
8098         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
8099         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
8100         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
8101         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
8102         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
8103         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
8104         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
8105         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
8106         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
8107         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
8108         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
8109         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
8110         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
8111         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
8112         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
8113         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
8114         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
8115         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
8116         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
8117         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
8118         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
8119         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
8120         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
8121         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
8122         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
8124 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
8126         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
8127         lang_library_path exists.  Use find instead of glob to gather tests.
8128         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
8130 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
8132         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
8133         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
8134         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
8135         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
8136         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
8137         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
8138         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
8139         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
8140         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
8141         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
8142         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
8143         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
8144         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
8146 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
8148         * testsuite/libgomp.dg/vla-1.c: New test.
8150         * testsuite/libgomp.fortran/reference2.f90: New test.
8152         * testsuite/libgomp.fortran/character2.f90: Remove explicit
8153         declaration of omp_get_thread_num.
8154         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
8155         use omp_lib.
8157         * testsuite/libgomp.fortran/reduction1.f90: New test.
8158         * testsuite/libgomp.fortran/reduction2.f90: New test.
8159         * testsuite/libgomp.fortran/reduction3.f90: New test.
8160         * testsuite/libgomp.fortran/reduction4.f90: New test.
8162 2005-10-13  Richard Henderson  <rth@redhat.com>
8164         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
8165         * Makefile.in: Regenerate.
8166         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
8167         * libgomp.h: Include bar.h.
8168         (struct gomp_barrier): Remove.
8169         (struct gomp_team): Add barrier.  Replace master_barrier with
8170         master_release.  Replace threads with ordered_release.
8171         (struct gomp_thread): Replace barrier with release.
8172         * ordered.c (gomp_ordered_first): Update for ordered_release change.
8173         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
8174         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
8175         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
8176         (GOMP_single_copy_end): Likewise.
8177         * team.c (gomp_threads_dock): New.
8178         (gomp_barrier_init, gomp_barrier_destroy): Remove.
8179         (gomp_thread_start): Use gomp_barrier_wait.
8180         (new_team, free_team): Update for gomp_team changes.
8181         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
8182         (gomp_team_end): Use gomp_barrier_wait.
8183         (initialize_team): Update for gomp_thread changes.
8184         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
8185         (gomp_work_share_end_nowait): Use atomic ops when available.
8186         * config/linux/bar.c, config/linux/bar.h: New files.
8187         * config/posix/bar.c, config/posix/bar.h: New files.
8189 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
8191         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
8192         * testsuite/libgomp.dg/single-2.c: New test.
8194         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
8195         lang_link_flags): Unset, so that they aren't inherited from previously
8196         sourced *.exp.
8198         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
8200 2005-10-12  Richard Henderson  <rth@redhat.com>
8202         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
8203         (libgomp_init): Use lang_test_file, lang_library_path, and
8204         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
8206         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
8207         (lang_test_file, lang_link_flags): New.
8208         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
8210         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
8211         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
8212         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
8213         testsuite/libgomp.c++/parallel-1.C,
8214         testsuite/libgomp.c++/reduction-1.C,
8215         testsuite/libgomp.c++/reduction-2.C,
8216         testsuite/libgomp.c++/reduction-3.C,
8217         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
8218         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
8219         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
8220         New files, largely cribbed from the C testsuite.
8222 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
8224         * testsuite/libgomp.fortran/character1.f90: New test.
8225         * testsuite/libgomp.fortran/character2.f90: New test.
8227         * testsuite/libgomp.dg/nested-1.c: New test.
8228         * testsuite/libgomp.dg/nested-2.c: New test.
8229         * testsuite/libgomp.fortran/do1.f90: New test.
8230         * testsuite/libgomp.fortran/do2.f90: New test.
8232         * testsuite/libgomp.fortran/reference1.f90: New test.
8234 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
8236         * testsuite/libgomp.dg/reduction-1.c: New test.
8237         * testsuite/libgomp.dg/reduction-2.c: New test.
8238         * testsuite/libgomp.dg/reduction-3.c: New test.
8240 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
8242         * testsuite/libgomp.dg/atomic-1.c: New test.
8243         * testsuite/libgomp.dg/atomic-2.c: New test.
8245 2005-10-09  Richard Henderson  <rth@redhat.com>
8247         * critical.c (atomic_lock): New.
8248         (initialize_critical): Initialize it.
8249         (GOMP_atomic_start, GOMP_atomic_end): New.
8250         * libgomp.map: Export them.
8251         * libgomp_g.h: Declare them.
8253         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
8255 2005-10-02  Richard Henderson  <rth@redhat.com>
8257         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
8258         to XCFLAGS instead of CFLAGS.
8260 2005-09-30  Richard Henderson  <rth@redhat.com>
8262         * configure.ac: Determine whether -pthread or -lpthread is needed.
8263         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
8264         * Makefine.in, configure: Rebuild.
8266 2005-09-28  Richard Henderson  <rth@redhat.com>
8268         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
8269         * testsuite/libgomp.dg/omp-single-3.c: New test.
8271 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
8273         * testsuite/libgomp.dg/omp-single-2.c: New test.
8274         * testsuite/libgomp.dg/shared-2.c: Fix return code.
8276 2005-09-27  Richard Henderson  <rth@redhat.com>
8278         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
8279         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
8281 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
8283         * testsuite/libgomp.dg/omp-loop03.c: New test.
8285 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
8287         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
8289 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
8291         * testsuite/libgomp.dg/omp-single-1.c: New test.
8292         * testsuite/libgomp.dg/shared-1.c: Return 0.
8293         Add prototype for abort.
8294         * testsuite/libgomp.dg/shared-2.c: Likewise.
8296 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
8298         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
8299         constructs.
8301 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
8303         * testsuite/libgomp.dg/shared-1.c: New test.
8304         * testsuite/libgomp.dg/shared-2.c: New test.
8306 2005-09-24  Richard Henderson  <rth@redhat.com>
8308         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
8310 2005-09-24  Richard Henderson  <rth@redhat.com>
8312         * iter.c (gomp_iter_static_next): Round up when computing number
8313         of iterations.  Don't bother distributing a remainder equally.
8315         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
8316         Don't call srand.  Zero b before testing.
8317         (main): New.
8319 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
8321         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
8322         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
8324 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
8326         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
8327         without !$omp end do, followed immediately by subroutine end.
8329 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
8331         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
8333 2005-09-22  Richard Henderson  <rth@redhat.com>
8335         * critical.c (GOMP_critical_name_start): Change argument to void**.
8336         Reuse the pointer space if the mutex fits.
8337         (GOMP_critical_name_end): Likewise.
8338         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
8339         * libgomp_g.h (GOMP_critical_name_start): Update decl.
8340         (GOMP_critical_name_end): Likewise.
8341         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
8342         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
8344 2005-09-20  Richard Henderson  <rth@redhat.com>
8346         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
8347         (create_lock_lock): New.
8348         (initialize_critical): Initialize it.
8349         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
8350         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
8352 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
8354         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
8356 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
8358         * testsuite/libgomp.dg/omp-loop01.c: New test.
8359         * testsuite/libgomp.dg/omp-loop02.c: New test.
8361 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
8363         * configure.ac (AC_PROG_FC): Add.
8364         (USE_FORTRAN): New automake conditional.
8365         * configure: Rebuilt.
8366         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
8367         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
8368         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
8369         Add rules to build them.
8370         * Makefile.in: Rebuilt.
8371         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
8372         OMP_NEST_LOCK_KIND.
8373         * libgomp.map: Add Fortran wrappers.
8374         * libgomp_f.h.in: New file.
8375         * omp_lib.h.in: New file.
8376         * omp_lib.f90.in: New file.
8377         * fortran.c: New file.
8378         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
8379         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
8380         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
8381         libgfortran has been built.
8382         * testsuite/libgomp.fortran/fortran.exp: New file.
8383         * testsuite/libgomp.fortran/omp_cond1.f: New test.
8384         * testsuite/libgomp.fortran/omp_cond2.f: New test.
8385         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
8386         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
8387         * testsuite/libgomp.fortran/omp_hello.f: New test.
8388         * testsuite/libgomp.fortran/omp_orphan.f: New test.
8389         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
8390         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
8391         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
8392         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
8393         * testsuite/libgomp.fortran/omp_reduction.f: New test.
8394         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
8395         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
8397 2005-08-30  Richard Henderson  <rth@redhat.com>
8399         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
8400         function for when aliases are not usable.
8401         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
8402         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
8403         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
8404         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
8405         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
8406         GOMP_loop_ordered_guided_next): Likewise.
8407         * ordered.c (GOMP_ordered_start): Likewise.
8409 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
8411         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
8412         * testsuite/libgomp.dg/omp_hello.c: Fix return code
8413         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
8414         * testsuite/libgomp.dg/omp_orphan.c: Likewise
8415         * testsuite/libgomp.dg/omp_reduction.c: Likewise
8416         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
8417         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
8418         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
8419         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
8421 2005-07-07  Eric Christopher  <echristo@redhat.com>
8422             Diego Novillo  <dnovillo@redhat.com>
8424         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
8425         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
8426         up code.
8427         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
8428         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
8429         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
8430         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
8431         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
8432         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
8433         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
8435 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
8437         * TOPLEVEL.patch: Remove.
8439 2005-05-16  Richard Henderson  <rth@redhat.com>
8441         * configure.ac: Test for clock_gettime.
8442         * config.h.in, configure: Rebuild.
8443         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
8444         (omp_get_wtime): Use clock_gettime if available.
8445         (omp_get_wtick): Use clock_getres if available.
8447 2005-05-11  Richard Henderson  <rth@redhat.com>
8449         * config/linux/ia64/futex.h: New file.
8450         * configure.tgt: Use it.
8452         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
8454 2005-05-07  Richard Henderson  <rth@redhat.com>
8456         * config/linux/powerpc/futex.h: New file.
8457         * configure.tgt: Use it.
8459         * config/linux/i486/futex.h: Merge ...
8460         * config/linux/x86_64/futex.h: ... into ...
8461         * config/linux/x86/futex.h: ... here.
8462         * configure.tgt: Update to match.
8464 2005-05-06  Richard Henderson  <rth@redhat.com>
8466         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
8467         * config/linux/i486/futex.h: Likewise.
8468         * config/linux/x86_64/futex.h: Likewise.
8470         * config/linux/lock.c: New file.
8471         * config/linux/omp-lock.h: New file.
8473         * critical.c, env.h: Don't include omp.h
8474         * config/posix/lock.c: Include libgomp.h instead of omp.h.
8475         * config/posix/time.c: Likewise.
8476         * config/posix/omp-lock.h: New file.
8477         * libgomp.h: Include omp-lock.h and omp.h.
8478         * Makefile.am (nodist_include_HEADERS): New.
8479         (omp.h): New rule.
8480         * configure.ac (PERL): New.
8481         * mkomp_h.pl: New file.
8482         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
8483         with templates.
8484         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
8486         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
8487         build directory.  Re-add -march=i486 hack.
8489         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
8490         (libgomp_link_flags): Remove.
8491         (libgomp_initialized): Remove.
8492         (libgomp_init): Don't protect from reinitialization.  Copy code
8493         from libstdc++ for getting the multilib set correctly.
8495 2005-05-05  Richard Henderson  <rth@redhat.com>
8497         * config/linux/alpha/futex.h: New file.
8498         * configure.tgt (alpha*-*-linux*): Use it.
8500         * config/posix/mutex.c: New file.
8501         * config/posix/sem.c: Use libgomp.h.
8503         * configure.tgt (x86_64-linux): Also test CC for -m32.
8504         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
8506         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
8507         after $gccpath.
8509         * Makefile.am (SUBDIRS): New.
8510         (libgomp_la_LDFLAGS): Add -lpthread.
8511         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
8512         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
8514         * libgomp_g.h: New file.
8515         * libgomp.h: Split out all public declarations to libgomp_g.h.
8516         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
8517         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
8518         * config/linux/sem.h: Likewise.
8519         * config/posix/sem.h: Likewise.
8521         * Makefile.am (AM_LDFLAGS): New.
8522         (libgomp_version_script): Split out from ...
8523         (libgomp_la_LDFLAGS): ... here.
8524         (libgomp_version_info): New.
8525         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
8526         (LIBGOMP_ENABLE): New.
8527         (LIBGOMP_CHECK_LINKER_FEATURES): New.
8528         (LIBGOMP_ENABLE_SYMVERS): New.
8529         * configure.ac (AC_INIT): Version 1.0.
8530         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
8531         (enable-linux-futex): Likewise.  Rename from enable-futex.
8532         (libtool_VERSION): New.
8533         (LIBGOMP_ENABLE_SYMVERS): Use it.
8534         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
8535         * Makefile.in, aclocal.m4, configure: Rebuild.
8537         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
8538         (gomp_mutex_unlock_slow): Fix typo.
8539         * config/linux/sem.c: Similarly.
8540         (gomp_sem_post_slow): Fix typo.
8541         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
8542         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
8543         [__PIC__] (sys_futex0): Don't use tmp output in asm.
8545         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
8546         (libgomp_la_LDFLAGS): Add top_srcdir to path.
8547         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
8548         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
8549         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
8550         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
8551         LDFLAGS.  Pull enable_futex check to top-level.
8552         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
8553         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
8555         First attempt at real configury.
8556         * Makefile, config.h: Remove file.
8557         * Makefile.am, Makefile.in: New file.
8558         * acinclude.m4 aclocal.m4: New file.
8559         * configure.ac, configure.tgt, configure: New file.
8561         * config/posix/lock.c: Rename from sys-lock.c.
8562         * config/posix/mutex.h: Rename from sys-mutex.h.
8563         * config/posix/sem.c: Rename from sys-sem.c.
8564         * config/posix/sem.h: Rename from sys-sem.h.
8565         * config/posix/proc.c: Rename from sys-proc.c.
8566         * config/posix/time.c: Rename from sys-proc.c.
8568         * config/linux/mutex.c: New file.
8569         * config/linux/mutex.h: New file.
8570         * config/linux/sem.c: New file.
8571         * config/linux/sem.h: New file.
8572         * config/linux/i486/futex.h: New file.
8573         * config/linux/x86_64/futex.h: New file.
8575 2005-05-04  Richard Henderson  <rth@redhat.com>
8577         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
8578         * libgomp.h: Declare them.
8579         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
8580         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
8582 2005-05-04  Richard Henderson  <rth@redhat.com>
8584         * libgomp-1 code drop
8586 2005-05-04  Richard Henderson  <rth@redhat.com>
8588         * iter.c (gomp_iter_static_next): Return tri-state on 0.
8589         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
8590         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
8591         (gomp_iter_static_next): Update.
8592         (gomp_ordered_static_next): Update.
8593         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
8594         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
8595         totally empty range.
8596         (gomp_loop_ordered_static_next): Refine test for calling
8597         gomp_ordered_static_next.
8598         * testsuite/ordered-1.c: Add case for more threads than iterations.
8600         * iter.c (gomp_iter_runtime_next_locked): Remove.
8601         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
8602         gomp_loop_guided_start, gomp_loop_ordered_static_start,
8603         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
8604         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
8605         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
8606         gomp_loop_ordered_guided_next): Downcase name, make static, add
8607         an external alias with the old name.
8608         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
8609         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
8610         switch and call one of the above static functions.
8611         * libgomp.h: Update.
8613         * work.c (gomp_work_share_start): Lock the mutex for !first too.
8614         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
8615         GOMP_loop_guided_start, GOMP_loop_runtime_start,
8616         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
8617         GOMP_loop_ordered_guided_start): Update to match.
8618         * sections.c (GOMP_sections_start): Likewise.
8619         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
8621         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
8622         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
8623         Use bounds check instead of modulus.
8624         (gomp_ordered_sync): Split out of GOMP_ordered_start.
8625         (gomp_ordered_last): Don't sync with ordered_owner here.
8626         (gomp_ordered_next): Likewise.
8627         (gomp_ordered_static_loop_next): Likewise.
8628         * loop.c, libgomp.h: Update to match.
8630         * libgomp.h (GOMP_barrier): Declare.
8632         * testsuite/barrier-1.c: New file.
8633         * testsuite/critical-1.c: New file.
8634         * testsuite/ordered-2.c: New file.
8635         * testsuite/ordered-1.c: New file.
8636         * testsuite/sections-1.c: New file.
8637         * testsuite/single-1.c: New file.
8638         * testsuite/Makefile (TESTS): Add them.
8640 2005-05-04  Richard Henderson  <rth@redhat.com>
8642         * libgomp.h (struct gomp_work_share): Add ordered_owner.
8643         * loop.c (GOMP_loop_static_start): If not the startup thread,
8644         acquire the mutex to wait for initialization complete.
8645         (GOMP_loop_ordered_static_start): Likewise.
8646         (GOMP_loop_ordered_runtime_start): Likewise.
8647         (GOMP_loop_ordered_static_first): Remove.
8648         (GOMP_loop_ordered_dynamic_first): Remove.
8649         (GOMP_loop_ordered_guided_first): Remove.
8650         (GOMP_loop_ordered_runtime_first): Remove.
8651         * ordered.c (gomp_ordered_loop_first): Post to own release when
8652         we're the first thread.
8653         (gomp_ordered_loop_last): Wait on release if not owner.
8654         (gomp_ordered_loop_next): Likewise.
8655         (gomp_ordered_static_loop_init): New.
8656         (gomp_ordered_static_loop_next): Use ordered_owner.
8657         (GOMP_ordered_start): Likewise.
8658         * work.c (gomp_new_work_share): Initialize ordered_owner.
8660 2005-05-03  Richard Henderson  <rth@redhat.com>
8662         * Makefile (OPT): New.
8663         (CFLAGS): Use it.
8665         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
8666         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
8667         * libgomp.h, libgomp.map, NOTES: Update to match.
8669         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
8670         Add initialized and thr members.
8671         (gomp_thread_start): Pause when initially spawned to wait for
8672         the whole team to be created.
8673         (gomp_team_start): Release team members at the end.
8675         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
8676         (f_foo_1): Use GOMP_loop_end.
8677         (f_foo_2): Use GOMP_loop_end_nowait.
8679         * testsuite/loop-2.c: New file.
8680         * testsuite/Makefile (TESTS): Add it.
8682 2005-05-03  Richard Henderson  <rth@redhat.com>
8684         * iter.c (gomp_iter_static_next): Fix overflow check typo.
8685         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
8686         * team.c (new_team): Initialize oldest_live_gen to 1 if no
8687         initial work_share.
8689         * testsuite/Makefile: New file.
8690         * testsuite/loop-1.c: New file.
8692 2005-05-03  Richard Henderson  <rth@redhat.com>
8694         Initial implementation and checkin.
8696 Copyright (C) 2005-2017 Free Software Foundation, Inc.
8698 Copying and distribution of this file, with or without modification,
8699 are permitted in any medium without royalty provided the copyright
8700 notice and this notice are preserved.