Mercurial > hg > CbC > CbC_gcc
diff libgomp/ChangeLog @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/libgomp/ChangeLog Sun Aug 21 07:07:55 2011 +0900 +++ b/libgomp/ChangeLog Fri Oct 27 22:46:09 2017 +0900 @@ -1,3 +1,5921 @@ +2017-10-17 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do + run" directive. + * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise. + +2017-10-16 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require + openacc_nvidia_accel_selected. + * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same. + * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same. + * testsuite/libgomp.oacc-fortran/declare-2.f90: Same. + * testsuite/libgomp.oacc-fortran/declare-4.f90: Same + * testsuite/libgomp.oacc-fortran/declare-5.f90: Same. + * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require + openacc_nvidia_accel_selected. Skip for shared memory device. + * testsuite/libgomp.oacc-fortran/declare-1.f90: Same. + * testsuite/libgomp.oacc-fortran/declare-3.f90: Same. + +2017-10-09 Martin Jambor <mjambor@suse.cz> + + PR hsa/82416 + * testsuite/libgomp.hsa.c/pr82416.c: New test. + +2017-10-07 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate): + Remove acc_device_nvidia references. + * testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction): + Same. + +2017-10-05 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove + vector_length(32) clause from acc parallel directive. + * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same. + +2017-10-04 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c + (main): Reduce sum of arr elements. Assert that hres is exactly + representable in 32-bit floating point. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c + (main): Reduce sum of arr elements. Assert that hres and hmres are + exactly representable in 32-bit floating point. + * testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same. + +2017-09-28 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option + setting. + * testsuite/libgomp.c++/pr69393.C: Same. + * testsuite/libgomp.c++/taskloop-1.C: Same. + * testsuite/libgomp.c++/taskloop-3.C: Same. + * testsuite/libgomp.c++/taskloop-4.C: Same. + * testsuite/libgomp.c/for-4.c: Same. + * testsuite/libgomp.c/pr66199-3.c: Same. + * testsuite/libgomp.c/pr66199-4.c: Same. + * testsuite/libgomp.c/pr66199-6.c: Same. + * testsuite/libgomp.c/taskloop-1.c: Same. + * testsuite/libgomp.c/taskloop-3.c: Same. + * testsuite/libgomp.c/taskloop-4.c: Same. + * testsuite/libgomp.fortran/aligned1.f03: Same. + * testsuite/libgomp.fortran/condinc1.f: Same. + * testsuite/libgomp.fortran/condinc3.f90: Same. + * testsuite/libgomp.fortran/crayptr1.f90: Same. + * testsuite/libgomp.fortran/crayptr2.f90: Same. + * testsuite/libgomp.fortran/crayptr3.f90: Same. + * testsuite/libgomp.fortran/omp_cond1.f: Same. + * testsuite/libgomp.fortran/omp_cond3.F90: Same. + * testsuite/libgomp.fortran/pr66199-1.f90: Same. + * testsuite/libgomp.fortran/pr66199-2.f90: Same. + * testsuite/libgomp.fortran/recursion1.f90: Same. + * testsuite/libgomp.fortran/target2.f90: Same. + * testsuite/libgomp.fortran/target5.f90: Same. + * testsuite/libgomp.fortran/task3.f90: Same. + +2017-09-28 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove + vector_length(32) clause from acc parallel directive. + * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same. + +2017-09-27 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main): + Remove acc_device_nvidia references. + +2017-09-16 Tom de Vries <tom@codesourcery.com> + + PR c/81875 + * testsuite/libgomp.c-c++-common/pr81875.c: New test. + +2017-09-14 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove. + * testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ... + * testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here. + * testsuite/libgomp.c/c.exp: Include test-cases from + libgomp.c-c++-common. + * testsuite/libgomp.c++/c++.exp: Same. Force c++-mode compilation of .c + files. + +2017-09-14 Jakub Jelinek <jakub@redhat.com> + + PR c++/81314 + * testsuite/libgomp.c++/pr81314.C: New test. + +2017-09-03 Gerald Pfeifer <gerald@pfeifer.com> + + * libgomp.texi (Top): www.openacc.org now uses https. + (Enabling OpenACC): Ditto. + (acc_get_num_devices): Ditto. + (acc_set_device_type): Ditto. + (acc_get_device_type): Ditto. + (acc_set_device_num): Ditto. + (acc_get_device_num): Ditto. + (acc_async_test): Ditto. + (acc_async_test_all): Ditto. + (acc_wait): Ditto. + (acc_wait_all): Ditto. + (acc_wait_all_async): Ditto. + (acc_wait_async): Ditto. + (acc_init): Ditto. + (acc_shutdown): Ditto. + (acc_on_device): Ditto. + (acc_malloc): Ditto. + (acc_free): Ditto. + (acc_copyin): Ditto. + (acc_present_or_copyin): Ditto. + (acc_create): Ditto. + (acc_present_or_create): Ditto. + (acc_copyout): Ditto. + (acc_delete): Ditto. + (acc_update_device): Ditto. + (acc_update_self): Ditto. + (acc_map_data): Ditto. + (acc_unmap_data): Ditto. + (acc_deviceptr): Ditto. + (acc_hostptr): Ditto. + (acc_is_present): Ditto. + (acc_memcpy_to_device): Ditto. + (acc_memcpy_from_device): Ditto. + (acc_get_current_cuda_device): Ditto. + (acc_get_current_cuda_context): Ditto. + (acc_get_cuda_stream): Ditto. + (acc_set_cuda_stream): Ditto. + (ACC_DEVICE_TYPE): Ditto. + (ACC_DEVICE_NUM): Ditto. + (OpenACC Library Interoperability): Ditto. + +2017-08-09 Jakub Jelinek <jakub@redhat.com> + + PR c/81687 + * testsuite/libgomp.c/pr81687-1.c: New test. + * testsuite/libgomp.c/pr81687-2.c: New test. + +2017-08-07 Jakub Jelinek <jakub@redhat.com> + + PR c/69389 + * testsuite/libgomp.c/pr69389.c: New test. + * testsuite/libgomp.c++/pr69389.C: New test. + +2017-08-07 Tom de Vries <tom@codesourcery.com> + + PR middle-end/78266 + * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail. + +2017-07-27 Jakub Jelinek <jakub@redhat.com> + + PR c/45784 + * testsuite/libgomp.c/pr45784.c: New test. + * testsuite/libgomp.c++/pr45784.C: New test. + +2017-07-19 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c/vec.c: New test. + +2017-07-03 Tom de Vries <tom@codesourcery.com> + + * plugin/plugin-hsa.c: Fix secure_getenv.h include. + +2017-06-27 Tom de Vries <tom@codesourcery.com> + + * plugin/plugin-nvptx.c (notify_var): New function. + (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM. + +2017-06-27 Tom de Vries <tom@codesourcery.com> + + * env.c (parse_unsigned_long_1): Factor out of ... + (parse_unsigned_long): ... here. + (parse_int_1): Factor out of ... + (parse_int): ... here. + (parse_int_secure): New function. + (initialize_env): Use parse_int_secure for GOMP_DEBUG. + * secure_getenv.h: Factor out of ... + * plugin/plugin-hsa.c: ... here. + * testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test. + +2017-06-21 Jakub Jelinek <jakub@redhat.com> + + PR c++/81130 + * testsuite/libgomp.c++/pr81130.C: New test. + +2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if + default args. + * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove + dg-xfail-run-if default args. + +2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> + + * testsuite/libgomp.c/pr39591-2.c: Fix test case. + * testsuite/libgomp.c/pr39591-3.c: Likewise. + +2017-05-30 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/80822 + * config/linux/affinity.c (gomp_affinity_init_level_1): New function. + (gomp_affinity_init_level): Use it. Always analyze the core and thread + sibling lists, depending on level just pick up what CPUs to put + together into a place vs. whether add multiple ordered places. + +2017-05-24 Thomas Schwinge <thomas@codesourcery.com> + + * openacc.h (acc_async_wait, acc_async_wait_all): New prototypes. + * libgomp.map (OACC_2.0.1): Add these. + * oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases + for "acc_wait", and "acc_wait_all", respectively. + * openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces + for "acc_wait", and "acc_wait_all", respectively. + * openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise. + * libgomp.texi (acc_wait, acc_wait_all): Update. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update. + * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file. + * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise. + + * openacc_lib.h (acc_pcopyin, acc_pcreate): Route to + acc_present_or_copyin and acc_present_or_create procedures, + respectively. + * testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and + generally different variants of OpenACC Runtime Library functions. + * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. + + * testsuite/libgomp.oacc-fortran/lib-32-1.f: New file. + * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. + + * openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead + of preprocessor definitions. + * libgomp.h (strong_alias): Guard by "#ifdef + HAVE_ATTRIBUTE_ALIAS". + * oacc-mem.c: Provide "acc_pcreate" as alias for + "acc_present_or_create", and "acc_pcopyin" as alias for + "acc_present_or_copyin". + * libgomp.map: New version "OACC_2.0.1". + (OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate". + * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging + its content into... + * testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file. + Extend testing. + + * plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output + when disabling nvptx offloading. + +2017-05-23 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update. + * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise. + + * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite. + * testsuite/lib/libgomp.exp + (check_effective_target_openacc_nvidia_accel_configured): New + proc. + * testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c) + (check_effective_target_c++): New procs. + * testsuite/libgomp.oacc-c/c.exp (check_effective_target_c) + (check_effective_target_c++): Likewise. + +2017-05-22 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/80809 + * testsuite/libgomp.c/pr80809-2.c: New test. + * testsuite/libgomp.c/pr80809-3.c: New test. + + PR middle-end/80809 + * testsuite/libgomp.c/pr80809-1.c: New test. + + PR middle-end/80853 + * testsuite/libgomp.c/pr80853.c: New test. + +2017-05-19 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c++/template-reduction.C: Update. + * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update. + * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise. + + * plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions): + Debug output for failure. + +2017-05-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * testsuite/lib/libgomp.exp: Load scanlang.exp. + +2017-04-27 Jakub Jelinek <jakub@redhat.com> + + PR bootstrap/80531 + * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid + bootstrap compare failures. + +2017-04-20 Alexander Monakov <amonakov@ispras.ru> + + * testsuite/libgomp.c/target-36.c: New testcase. + +2017-04-13 Jakub Jelinek <jakub@redhat.com> + + * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type + instead of char. + +2017-04-11 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/80394 + * testsuite/libgomp.c/pr80394.c: New test. + +2017-04-04 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/79876 + * config/posix/thread-stacksize.h: New file. + * config/darwin/thread-stacksize.h: New file. + * config/nvptx/thread-stacksize.h: New file. + * env.c: Include thread-stacksize.h. + (initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE + instead of 0. Call pthread_attr_setstacksize even if + GOMP_DEFAULT_STACKSIZE is non-zero. + +2017-03-30 Jakub Jelinek <jakub@redhat.com> + + * env.c (initialize_env): Initialize stacksize to 0. + +2017-03-22 Cesar Philippidis <cesar@codesourcery.com> + + PR c++/80029 + * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test. + +2017-03-08 Jakub Jelinek <jakub@redhat.com> + + PR c/79940 + * testsuite/libgomp.c/pr79940.c: New test. + +2017-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * testsuite/libgomp.c/pr48591.c: Enable on all __float128 + targets. + Add __float128 options. + +2017-02-11 John David Anglin <danglin@gcc.gnu.org> + + * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove + hppa*-*-* dg-skip-if directive. + +2017-02-09 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move + dg-skip-if directive into a comment. + +2017-02-09 Nathan Sidwell <nathan@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and + add additional case. + * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under + "openacc_nvidia_accel_selected". + * libgomp.oacc-fortran/nested-function-1.f90 (test2): + Add num_workers(8) clause. + +2017-02-08 John David Anglin <danglin@gcc.gnu.org> + + * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on + hppa*-*-*. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't + include complex.h on hppa*-*-hpux*. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise. + +2017-02-02 Thomas Schwinge <thomas@codesourcery.com> + + * plugin/plugin-nvptx.c (nvptx_exec): Make it static. + + * libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to + GOMP_OFFLOAD_openacc_exec. Adjust all users. + (GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to + GOMP_OFFLOAD_openacc_cuda_get_current_device. Adjust all users. + (GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to + GOMP_OFFLOAD_openacc_cuda_get_current_context. Adjust all users. + (GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to + GOMP_OFFLOAD_openacc_cuda_get_stream. Adjust all users. + (GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to + GOMP_OFFLOAD_openacc_cuda_set_stream. Adjust all users. + +2017-01-31 Thomas Schwinge <thomas@codesourcery.com> + + * libgomp-plugin.h: #include <stdbool.h>. + (GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps) + (GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices) + (GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device) + (GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image) + (GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free) + (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev) + (GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run) + (GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel) + (GOMP_OFFLOAD_openacc_register_async_cleanup) + (GOMP_OFFLOAD_openacc_async_test) + (GOMP_OFFLOAD_openacc_async_test_all) + (GOMP_OFFLOAD_openacc_async_wait) + (GOMP_OFFLOAD_openacc_async_wait_async) + (GOMP_OFFLOAD_openacc_async_wait_all) + (GOMP_OFFLOAD_openacc_async_wait_all_async) + (GOMP_OFFLOAD_openacc_async_set_async) + (GOMP_OFFLOAD_openacc_create_thread_data) + (GOMP_OFFLOAD_openacc_destroy_thread_data) + (GOMP_OFFLOAD_openacc_get_current_cuda_device) + (GOMP_OFFLOAD_openacc_get_current_cuda_context) + (GOMP_OFFLOAD_openacc_get_cuda_stream) + (GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes. + * libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use + these. + * plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image) + (GOMP_OFFLOAD_unload_image): Fix argument types. + +2017-01-26 Jakub Jelinek <jakub@redhat.com> + + * testsuite/lib/libgomp.exp + (check_effective_target_hsa_offloading_selected_nocache): Fix up + check_compile invocation. Fix up removal of executable. Drop + bogus "2>&1" argument. + + * testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules + directive. + +2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> + Martin Jambor <mjambor@suse.cz> + + * plugin/hsa.h: Moved to top level include. + * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly. + +2017-01-21 Jakub Jelinek <jakub@redhat.com> + + PR other/79046 + * testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead + of cat to get version from BASE-VER file. + * testsuite/Makefile.in: Regenerated. + +2017-01-19 Jakub Jelinek <jakub@redhat.com> + + * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even + for _WIN64. + +2017-01-17 Jakub Jelinek <jakub@redhat.com> + + * plugin/hsa.h: Add GCC runtime library exception. + * plugin/hsa_ext_finalize.h: Likewise. + + * plugin/configfrag.ac: For --without-cuda-driver don't initialize + CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. If both + CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small + cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use + plugin/include/cuda as include dir and -ldl instead of -lcuda as + library to link ptx plugin against. + * plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC. + (CUDA_CALLS): Define. + (cuda_lib, cuda_lib_inited): New variables. + (init_cuda_lib): New function. + (CUDA_CALL_PREFIX): Define. + (CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX. + (CUDA_CALL): Use FN instead of (FN). + (CUDA_CALL_NOCHECK): Define. + (cuda_error, fini_streams_for_device, select_stream_for_async, + nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx, + event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all, + nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image, + nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use + CUDA_CALL_NOCHECK. + (nvptx_init): Call init_cuda_lib, if it fails, return false. Use + CUDA_CALL_NOCHECK. + (nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0. + Use CUDA_CALL_NOCHECK. + * plugin/cuda/cuda.h: New file. + * config.h.in: Regenerated. + * configure: Regenerated. + + PR other/79046 + * configure.ac: Add GCC_BASE_VER. + * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to + get version from BASE-VER file. + * testsuite/Makefile.in: Regenerated. + * configure: Regenerated. + * Makefile.in: Regenerated. + +2017-01-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR libgomp/60670 + * Makefile.am: Make fincludedir multilib-aware. + * Makefile.in: Regenerate. + +2017-01-01 Jakub Jelinek <jakub@redhat.com> + + Update copyright years. + + * libgomp.texi: Bump @copying's copyright year. + +2016-12-02 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use + pthread_spinlock_t instead of gomp_mutex_t lock. + (gomp_get_thread_pool): Likewise. + (gomp_release_thread_pool): Likewise. + * libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir): + Likewise. + +2016-12-02 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rtems/pool.h (gomp_get_thread_pool): Return proper + thread pool in case nthreads == 1. + +2016-11-30 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/env.c: Delete. + * icv.c: Move definitions of ICV variables back ... + * env.c: ...here. Do not compile environment-related functionality if + LIBGOMP_OFFLOADED_ONLY is set. + +2016-11-30 Alexander Monakov <amonakov@ispras.ru> + + * configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it... + (LIBGOMP_OFFLOADED_ONLY): ...here; new define. + * configure: Regenerate. + * config.h.in: Likewise. + +2016-11-30 Alexander Monakov <amonakov@ispras.ru> + + * Makefile.in: Regenerate with automake-1.11.6. + * aclocal.m4: Likewise. + * configure: Likewise. + * testsuite/Makefile.in: Likewise. + +2016-11-28 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/critical.c: Delete to use generic implementation. + +2016-11-28 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> + + * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include + ../../affinity.c as fallback. + * config/nvptx/affinity.c: Delete to use fallback implementation. + +2016-11-23 Alexander Monakov <amonakov@ispras.ru> + Jakub Jelinek <jakub@redhat.com> + Dmitry Melnik <dm@ispras.ru> + + * Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c. + * Makefile.in. Regenerate. + * configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it... + (LIBGOMP_USE_PTHREADS): ...here; new define. + * configure: Regenerate. + * config.h.in: Likewise. + * config/posix/affinity.c: Move to... + * affinity.c: ...here (new file). Guard use of Pthreads-specific + interface by LIBGOMP_USE_PTHREADS. + * critical.c: Split out GOMP_atomic_{start,end} into... + * atomic.c: ...here (new file). + * env.c: Split out ICV definitions into... + * icv.c: ...here (new file) and... + * icv-device.c: ...here. New file. + * config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c. + (gomp_destroy_lock_30): Ditto. + (gomp_set_lock_30): Ditto. + (gomp_unset_lock_30): Ditto. + (gomp_test_lock_30): Ditto. + (gomp_init_nest_lock_30): Ditto. + (gomp_destroy_nest_lock_30): Ditto. + (gomp_set_nest_lock_30): Ditto. + (gomp_unset_nest_lock_30): Ditto. + (gomp_test_nest_lock_30): Ditto. + * lock.c: New. + * config/nvptx/lock.c: New. + * config/nvptx/bar.c: New. + * config/nvptx/bar.h: New. + * config/nvptx/doacross.h: New. + * config/nvptx/error.c: New. + * config/nvptx/icv-device.c: New. + * config/nvptx/mutex.h: New. + * config/nvptx/pool.h: New. + * config/nvptx/proc.c: New. + * config/nvptx/ptrlock.h: New. + * config/nvptx/sem.h: New. + * config/nvptx/simple-bar.h: New. + * config/nvptx/target.c: New. + * config/nvptx/task.c: New. + * config/nvptx/team.c: New. + * config/nvptx/time.c: New. + * config/posix/simple-bar.h: New. + * libgomp.h: Guard pthread.h inclusion. Include simple-bar.h. + (gomp_num_teams_var): Declare. + (struct gomp_thread_pool): Change threads_dock member to + gomp_simple_barrier_t. + [__nvptx__] (gomp_thread): New implementation. + (gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS. + (gomp_thread_destructor): Ditto. + (gomp_init_thread_affinity): Ditto. + * team.c: Guard uses of Pthreads-specific interfaces by + LIBGOMP_USE_PTHREADS. Adjust all uses of threads_dock. + (gomp_free_thread) [__nvptx__]: Do not call 'free'. + * config/nvptx/alloc.c: Delete. + * config/nvptx/barrier.c: Ditto. + * config/nvptx/fortran.c: Ditto. + * config/nvptx/iter.c: Ditto. + * config/nvptx/iter_ull.c: Ditto. + * config/nvptx/loop.c: Ditto. + * config/nvptx/loop_ull.c: Ditto. + * config/nvptx/ordered.c: Ditto. + * config/nvptx/parallel.c: Ditto. + * config/nvptx/priority_queue.c: Ditto. + * config/nvptx/sections.c: Ditto. + * config/nvptx/single.c: Ditto. + * config/nvptx/splay-tree.c: Ditto. + * config/nvptx/work.c: Ditto. + * testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass + -foffload=-lgfortran in addition to -lgfortran. + * testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto. + * plugin/plugin-nvptx.c: Include <limits.h>. + (struct targ_fn_descriptor): Add new fields. + (struct ptx_device): Ditto. Set them... + (nvptx_open_device): ...here. + (nvptx_adjust_launch_bounds): New. + (nvptx_host2dev): Allow NULL 'nvthd'. + (nvptx_dev2host): Ditto. + (GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400. + (link_ptx): Adjust log sizes. + (nvptx_host2dev): Allow NULL 'nvthd'. + (nvptx_dev2host): Ditto. + (nvptx_set_clocktick): New. Use it... + (GOMP_OFFLOAD_load_image): ...here. Set new targ_fn_descriptor + fields. + (GOMP_OFFLOAD_dev2dev): New. + (nvptx_adjust_launch_bounds): New. + (nvptx_stacks_size): New. + (nvptx_stacks_alloc): New. + (nvptx_stacks_free): New. + (GOMP_OFFLOAD_run): New. + (GOMP_OFFLOAD_async_run): New (stub). + +2016-11-23 Martin Jambor <mjambor@suse.cz> + + * testsuite/libgomp.hsa.c/bits-insns.c: New test. + * testsuite/libgomp.hsa.c/tiling-1.c: Likewise. + * testsuite/libgomp.hsa.c/tiling-2.c: Likewise. + +2016-11-23 Martin Liska <mliska@suse.cz> + Martin Jambor <mjambor@suse.cz> + + * plugin/hsa.h: New file. + * plugin/hsa_ext_finalize.h: New file. + * plugin/configfrag.ac: Remove hsa-kmt-lib test. Added checks for + header file unistd.h, and functions secure_getenv, __secure_getenv, + getuid, geteuid, getgid and getegid. + * plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added + -D_GNU_SOURCE. + * plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h. + Handle various cases of secure_getenv presence, add an implementation + when we can test effective UID and GID. + (struct hsa_runtime_fn_info): New structure. + (hsa_runtime_fn_info hsa_fns): New variable. + (hsa_runtime_lib): Likewise. + (support_cpu_devices): Likewise. + (init_enviroment_variables): Load newly introduced ENV + variables. + (hsa_warn): Call hsa run-time functions via hsa_fns structure. + (hsa_fatal): Likewise. + (DLSYM_FN): New macro. + (init_hsa_runtime_functions): New function. + (suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns + structure. Depending on environment, also allow CPU devices. + (init_hsa_context): Call hsa run-time functions via hsa_fns structure. + (get_kernarg_memory_region): Likewise. + (GOMP_OFFLOAD_init_device): Likewise. + (destroy_hsa_program): Likewise. + (init_basic_kernel_info): New function. + (GOMP_OFFLOAD_load_image): Use it. + (create_and_finalize_hsa_program): Call hsa run-time functions via + hsa_fns structure. + (create_single_kernel_dispatch): Likewise. + (release_kernel_dispatch): Likewise. + (init_single_kernel): Likewise. + (parse_target_attributes): Allow up multiple HSA grid dimensions. + (get_group_size): New function. + (run_kernel): Likewise. + (GOMP_OFFLOAD_run): Outline most functionality to run_kernel. + (GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns + structure. + * testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support. + * testsuite/libgomp-test-support.exp.in: Likewise. + * Makefile.in: Regenerated. + * aclocal.m4: Likewise. + * config.h.in: Likewise. + * configure: Likewise. + * testsuite/Makefile.in: Likewise. + +2016-11-15 Martin Jambor <mjambor@suse.cz> + Alexander Monakov <amonakov@ispras.ru> + + * testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add + mapping clauses to target constructs. + * testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto. + +2016-11-15 Matthias Klose <doko@ubuntu.com> + + * configure: Regenerate. + +2016-11-10 Jakub Jelinek <jakub@redhat.com> + + * omp_lib.f90.in (openmp_version): Change to 201511 from 201307. + * omp_lib.h.in (openmp_version): Likewise. + * testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead + of 201307. + * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. + + * testsuite/libgomp.fortran/examples-4/declare_target-1.f90 + (fib_wrapper): Add map(from: x) clause. + * testsuite/libgomp.fortran/examples-4/declare_target-2.f90 + (e_53_2): Likewise. + * testsuite/libgomp.fortran/examples-4/declare_target-4.f90 + (accum): Add map(tmp) clause. + * testsuite/libgomp.fortran/examples-4/declare_target-5.f90 + (accum): Add map(tofrom: tmp) clause. + * testsuite/libgomp.fortran/examples-4/target_data-3.f90 + (gramSchmidt): Likewise. + * testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add + map(tofrom: sum) clause. + * testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice + map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause. + * testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause + only allowed on the loop iterator. + * testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause. + * testsuite/libgomp.fortran/taskloop2.f90: New test. + * testsuite/libgomp.fortran/taskloop4.f90: New test. + * testsuite/libgomp.fortran/doacross1.f90: New test. + * testsuite/libgomp.fortran/doacross3.f90: New test. + * testsuite/libgomp.fortran/taskloop1.f90: New test. + * testsuite/libgomp.fortran/taskloop3.f90: New test. + * testsuite/libgomp.fortran/doacross2.f90: New test. + * testsuite/libgomp.c/doacross-1.c (main): Add missing + #pragma omp atomic read. + * testsuite/libgomp.c/doacross-2.c (main): Likewise. + * testsuite/libgomp.c/doacross-3.c (main): Likewise. + +2016-11-02 Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@acm.org> + + * plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes + to determine default geometry. + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang + dimension. + +2016-11-01 Jakub Jelinek <jakub@redhat.com> + + * hashtab.h: Use standard GPLv3 with runtime exception + boilerplate. + +2016-10-27 Aldy Hernandez <aldyh@redhat.com> + + * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate + size when allocating new thread. + +2016-09-14 Marek Polacek <polacek@redhat.com> + + * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated. + +2016-08-19 Jakub Jelinek <jakub@redhat.com> + + PR fortran/71014 + * testsuite/libgomp.fortran/pr71014.f90: New test. + +2016-08-18 Chung-Lin Tang <cltang@codesourcery.com> + + PR middle-end/70895 + * testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit + firstprivate clauses. + * testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit + copy clauses. + * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise. + +2016-08-14 Chung-Lin Tang <cltang@codesourcery.com> + + PR fortran/70598 + * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test. + +2016-08-08 Jakub Jelinek <jakub@redhat.com> + + PR c++/58706 + * testsuite/libgomp.c++/pr58706.C: New test. + +2016-08-04 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c++/routine-1-auto.C: New file. + * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise. + * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C: + Likewise. + * testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise. + * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust. + + * testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link" + test, and don't hardcode -O0. + +2016-08-03 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New. + +2016-07-15 Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New + test. + +2016-07-03 H.J. Lu <hongjiu.lu@intel.com> + + PR middle-end/71734 + * testsuite/libgomp.fortran/pr71734-1.f90: New test. + * testsuite/libgomp.fortran/pr71734-2.f90: Likewise. + +2016-07-01 Jakub Jelinek <jakub@redhat.com> + + PR fortran/71717 + * testsuite/libgomp.fortran/associate3.f90: New test. + +2016-06-17 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c++/target-21.C: New test. + +2016-06-16 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c++/target-20.C: New test. + +2016-06-10 Thomas Schwinge <thomas@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + PR middle-end/71373 + * libgomp.oacc-c/nested-function-1.c: New file. + * libgomp.oacc-c/nested-function-2.c: Likewise. + * libgomp.oacc-fortran/nested-function-1.f90: Likewise. + * libgomp.oacc-fortran/nested-function-2.f90: Likewise. + * libgomp.oacc-fortran/nested-function-3.f90: Likewise. + +2016-06-10 Thomas Schwinge <thomas@codesourcery.com> + + PR c/71381 + * testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include + "../../../gcc/testsuite/c-c++-common/goacc/cache-1.c". + * testsuite/libgomp.oacc-fortran/cache-1.f95: New file. + +2016-06-03 Chung-Lin Tang <cltang@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase. + * testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase. + +2016-06-01 Cesar Philippidis <cesar@codesourcery.com> + + PR c/70688 + * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file. + +2016-05-26 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/doacross-1.c (main): Use schedule(static) + instead of invalid schedule(static, 0). + * testsuite/libgomp.c/doacross-2.c (main): Likewise. + +2016-05-26 Chung-Lin Tang <cltang@codesourcery.com> + + * oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter. + * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async' + parameter, use to set async stream around call to gomp_unmap_vars, + call gomp_unmap_vars() with 'do_copyfrom' set to true. + * plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field. + (event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP + events and call GOMP_PLUGIN_async_unmap_vars() for each of them. + (event_add): Add int parameter, initialize 'val' field when + adding new ptx_event struct. + (nvptx_evec): Adjust event_add() call arguments. + (nvptx_host2dev): Likewise. + (nvptx_dev2host): Likewise. + (nvptx_wait_async): Likewise. + (nvptx_wait_all_async): Likewise. + (GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter, + pass to event_add() call. + * oacc-host.c (host_openacc_register_async_cleanup): Add 'int async' + parameter. + * oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to + call openacc.register_async_cleanup_func() hook. + * oacc-parallel.c (GOACC_parallel_keyed): Likewise. + * target.c (gomp_copy_from_async): Delete function. + (gomp_map_vars): Remove async_refcount. + (gomp_unmap_vars): Likewise. + (gomp_load_image_to_device): Likewise. + (omp_target_associate_ptr): Likewise. + * libgomp.h (struct splay_tree_key_s): Remove async_refcount. + (acc_dispatch_t.register_async_cleanup_func): Add int parameter. + (gomp_copy_from_async): Remove. + +2016-05-26 Chung-Lin Tang <cltang@codesourcery.com> + + * target.c (gomp_device_copy): New function. + (gomp_copy_host2dev): Likewise. + (gomp_copy_dev2host): Likewise. + (gomp_free_device_memory): Likewise. + (gomp_map_vars_existing): Adjust to call gomp_copy_host2dev. + (gomp_map_pointer): Likewise. + (gomp_map_vars): Adjust to call gomp_copy_host2dev, handle + NULL value from alloc_func plugin hook. + (gomp_unmap_tgt): Adjust to call gomp_free_device_memory. + (gomp_copy_from_async): Adjust to call gomp_copy_dev2host. + (gomp_unmap_vars): Likewise. + (gomp_update): Adjust to call gomp_copy_dev2host and + gomp_copy_host2dev functions. + (gomp_unload_image_from_device): Handle false value from + unload_image_func plugin hook. + (gomp_init_device): Handle false value from init_device_func + plugin hook. + (gomp_exit_data): Adjust to call gomp_copy_dev2host. + (omp_target_free): Adjust to call gomp_free_device_memory. + (omp_target_memcpy): Handle return values from host2dev_func, + dev2host_func, and dev2dev_func plugin hooks. + (omp_target_memcpy_rect_worker): Likewise. + (gomp_target_fini): Handle false value from fini_device_func + plugin hook. + * libgomp.h (struct gomp_device_descr): Adjust return type of + init_device_func, fini_device_func, unload_image_func, free_func, + dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'. + * oacc-init.c (acc_shutdown_1): Handle false value from + fini_device_func plugin hook. + * oacc-host.c (host_init_device): Change return type to bool. + (host_fini_device): Likewise. + (host_unload_image): Likewise. + (host_free): Likewise. + (host_dev2host): Likewise. + (host_host2dev): Likewise. + * oacc-mem.c (acc_free): Handle plugin hook fatal error case. + (acc_memcpy_to_device): Likewise. + (acc_memcpy_from_device): Likewise. + (delete_copyout): Add libfnname parameter, handle free_func + hook fatal error case. + (acc_delete): Adjust delete_copyout call. + (acc_copyout): Likewise. + (update_dev_host): Move gomp_mutex_unlock to after + host2dev/dev2host hook calls. + + * plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable + to 'hsa_error_msg', for clarity. + (hsa_fatal): Likewise. + (hsa_error): New function. + (init_hsa_context): Change return type to bool, adjust to return + false on error. + (GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context + return value. + (GOMP_OFFLOAD_init_device): Change return type to bool, adjust to + return false on error. + (get_agent_info): Adjust to return NULL on error. + (destroy_hsa_program): Change return type to bool, adjust to + return false on error. + (GOMP_OFFLOAD_load_image): Adjust to return -1 on error. + (destroy_module): Change return type to bool, adjust to + return false on error. + (GOMP_OFFLOAD_unload_image): Likewise. + (GOMP_OFFLOAD_fini_device): Likewise. + (GOMP_OFFLOAD_alloc): Change to return NULL when called. + (GOMP_OFFLOAD_free): Change to return false when called. + (GOMP_OFFLOAD_dev2host): Likewise. + (GOMP_OFFLOAD_host2dev): Likewise. + (GOMP_OFFLOAD_dev2dev): Likewise. + + * plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro. + (CUDA_CALL): Likewise. + (CUDA_CALL_ASSERT): Likewise. + (map_init): Change return type to bool, use CUDA_CALL* macros. + (map_fini): Likewise. + (init_streams_for_device): Change return type to bool, adjust + call to map_init. + (fini_streams_for_device): Change return type to bool, adjust + call to map_fini. + (select_stream_for_async): Release stream_lock before calls to + GOMP_PLUGIN_fatal, adjust call to map_init. + (nvptx_init): Use CUDA_CALL* macros. + (nvptx_attach_host_thread_to_device): Change return type to bool, + use CUDA_CALL* macros. + (nvptx_open_device): Use CUDA_CALL* macros. + (nvptx_close_device): Change return type to bool, use CUDA_CALL* + macros. + (nvptx_get_num_devices): Use CUDA_CALL* macros. + (link_ptx): Change return type to bool, use CUDA_CALL* macros. + (nvptx_exec): Use CUDA_CALL* macros. + (nvptx_alloc): Use CUDA_CALL* macros. + (nvptx_free): Change return type to bool, use CUDA_CALL* macros. + (nvptx_host2dev): Likewise. + (nvptx_dev2host): Likewise. + (nvptx_wait): Use CUDA_CALL* macros. + (nvptx_wait_async): Likewise. + (nvptx_wait_all): Likewise. + (nvptx_wait_all_async): Likewise. + (nvptx_set_cuda_stream): Adjust order of stream_lock acquire, + use CUDA_CALL* macros, adjust call to map_fini. + (GOMP_OFFLOAD_init_device): Change return type to bool, + adjust code accordingly. + (GOMP_OFFLOAD_fini_device): Likewise. + (GOMP_OFFLOAD_load_image): Adjust calls to + nvptx_attach_host_thread_to_device/link_ptx to handle errors, + use CUDA_CALL* macros. + (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust + return code. + (GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return. + (GOMP_OFFLOAD_free): Change return type to bool, adjust calls to + handle error return. + (GOMP_OFFLOAD_dev2host): Likewise. + (GOMP_OFFLOAD_host2dev): Likewise. + (GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros. + (GOMP_OFFLOAD_openacc_create_thread_data): Likewise. + +2016-05-24 Cesar Philippidis <cesar@codesourcery.com> + + * oacc-mem.c (acc_malloc): Update handling of shared-memory targets. + (acc_free): Likewise. + (acc_memcpy_to_device): Likewise. + (acc_memcpy_from_device): Likewise. + (acc_deviceptr): Likewise. + (acc_hostptr): Likewise. + (acc_is_present): Likewise. + (acc_map_data): Likewise. + (acc_unmap_data): Likewise. + (present_create_copy): Likewise. + (delete_copyout): Likewise. + (update_dev_host): Likewise. + * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail. + * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test. + * testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test. + * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test. + * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that + it only runs on nvptx targets. + * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. + +2016-05-23 Martin Jambor <mjambor@suse.cz> + + * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test. + +2016-05-17 Chung-Lin Tang <cltang@codesourcery.com> + + * oacc-init.c (acc_init): Remove !cached_base_dev condition on call + to gomp_init_targets_once. + (acc_set_device_type): Remove !cached_base_dev condition on call to + gomp_init_targets_once, move call to before acc_device_lock acquire, + to avoid deadlock. + (acc_get_device_num): Remove !cached_base_dev condition on call to + gomp_init_targets_once. + (acc_set_device_num): Likewise. + +2016-05-16 Martin Jambor <mjambor@suse.cz> + + * testsuite/libgomp.hsa.c/complex-align-2.c: New test. + +2016-05-02 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust + expected partitioning. + +2016-04-29 Cesar Philippidis <cesar@codesourcery.com> + + PR middle-end/70626 + * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test. + * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test. + * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test. + +2016-04-21 Alexander Monakov <amonakov@ispras.ru> + + * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error + non-fatal. + +2016-04-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/70680 + * testsuite/libgomp.c/pr70680-1.c: New test. + * testsuite/libgomp.c/pr70680-2.c: New test. + +2016-04-14 Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't + pass parameter variables to subroutines. + +2016-04-14 Cesar Philippidis <cesar@codesourcery.com> + + PR middle-end/70643 + * testsuite/libgomp.oacc-fortran/pr70643.f90: New test. + +2016-04-13 Cesar Philippidis <cesar@codesourcery.com> + + PR testsuite/68242 + * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test. + * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise. + +2016-04-12 Thomas Schwinge <thomas@codesourcery.com> + + * libgomp_g.h: Rename GOACC_parallel_keyd prototype to + GOACC_parallel_keyed, restore GOACC_parallel prototype, new + GOACC_declare prototype. + + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: + Merge this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: + ... this file, and... + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: + ... this file into... + * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this + file. + + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: + Make failure observable. + +2016-04-12 Jakub Jelinek <jakub@redhat.com> + + * libgomp.h (struct gomp_target_task): Remove firstprivate_copies + field. + * target.c (gomp_target_fallback_firstprivate, + gomp_target_unshare_firstprivate): Removed. + (GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory + before waiting for dependencies. + (gomp_target_task_fn): Don't copy firstprivate vars here. + * task.c (GOMP_PLUGIN_target_task_completion): Don't free + firstprivate_copies here. + (gomp_create_target_task): Don't initialize firstprivate_copies field. + * testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of + explicit/implicit firstprivate. + +2016-04-08 Cesar Philippidis <cesar@codesourcery.com> + + PR lto/70289 + PR ipa/70348 + PR tree-optimization/70373 + PR middle-end/70533 + PR middle-end/70534 + PR middle-end/70535 + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New + test. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test + coverage. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test. + * testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test. + * testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test. + * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test + coverage. + * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test. + * testsuite/libgomp.oacc-c-c++-common/reduction.h: New test. + * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test. + * testsuite/libgomp.oacc-fortran/pr70289.f90: New test. + * testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage. + * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-7.f90: New test. + +2016-03-30 Thomas Schwinge <thomas@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Nathan Sidwell <nathan@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Chung-Lin Tang <cltang@codesourcery.com> + Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update. + * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise. + * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise. + XFAIL. + * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update. + Incorporate... + * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this + file. + * testsuite/libgomp.oacc-c++/template-reduction.C: New file. + * testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/private-variables.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise. + * testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/default-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: + Likewise. + * testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise. + * testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this + file... + * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this + file into... + * testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new + file. Update. + * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New + file. + * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to... + * testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c: + ... this new file. Update. + * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to... + * testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c: + ... this new file. Update. + * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New + file. Incorporate... + * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this + file, and... + * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this + file, and... + * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this + file. + * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file. + +2016-03-29 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call + set-torture-options. + +2016-03-24 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use + gcc-dg-runtest. + * testsuite/libgomp.oacc-c/c.exp: Likewise. + * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify + -fno-builtin-acc_on_device instead of -O0. + * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for + -O0. + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c: + Don't specify -O2. + * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c: + Likewise. + +2016-03-24 Martin Liska <mliska@suse.cz> + + * plugin/plugin-hsa.c (packet_store_release): New function + that is taken from the HSA runtime manual. + (GOMP_OFFLOAD_run): Use the function. + +2016-03-23 Jakub Jelinek <jakub@redhat.com> + + PR c++/70376 + * testsuite/libgomp.c++/pr70376.C: New test. + +2016-03-23 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing + initialization of lresult and lvresult. + * testsuite/libgomp.oacc-fortran/reduction-3.f90: Same. + +2016-03-23 James Norris <jnorris@codesourcery.com> + Daichi Fukuoka <dc-fukuoka@sgi.com> + + PR libgomp/69414 + * oacc-mem.c (delete_copyout, update_dev_host): Fix device address. + * testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests. + * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise. + * testsuite/libgomp.oacc-fortran/update-1.f90: New file. + +2016-03-23 Martin Liska <mliska@suse.cz> + + PR hsa/70337 + * plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow + argument just in case a dispatched kernel uses that argument. + +2016-03-16 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to + -ftree-parallelize-loops/-fopenacc changes. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: + Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise. + * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise. + +2016-03-13 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to + always_ld_library_path the path to libgcc_s. + +2016-03-10 Cesar Philippidis <cesar@codesourcery.com> + + PR testsuite/70009 + * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed. + +2016-03-09 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: + Same. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same. + * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same. + * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same. + * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same. + +2016-03-07 Martin Jambor <mjambor@suse.cz> + + * testsuite/lib/libgomp.exp + (check_effective_target_hsa_offloading_selected_nocache): New. + (check_effective_target_hsa_offloading_selected): Likewise. + * testsuite/libgomp.hsa.c/c.exp: Likewise. + * testsuite/libgomp.hsa.c/alloca-1.c: Likewise. + * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise. + * testsuite/libgomp.hsa.c/builtins-1.c: Likewise. + * testsuite/libgomp.hsa.c/complex-1.c: Likewise. + * testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise. + * testsuite/libgomp.hsa.c/function-call-1.c: Likewise. + * testsuite/libgomp.hsa.c/get-level-1.c: Likewise. + * testsuite/libgomp.hsa.c/gridify-1.c: Likewise. + * testsuite/libgomp.hsa.c/gridify-2.c: Likewise. + * testsuite/libgomp.hsa.c/gridify-3.c: Likewise. + * testsuite/libgomp.hsa.c/gridify-4.c: Likewise. + * testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise. + * testsuite/libgomp.hsa.c/pr69568.c: Likewise. + * testsuite/libgomp.hsa.c/rotate-1.c: Likewise. + * testsuite/libgomp.hsa.c/switch-1.c: Likewise. + * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise. + +2016-03-07 Martin Jambor <mjambor@suse.cz> + + * testsuite/libgomp.c/examples-4/async_target-2.c: Only run on + non-shared memory accelerators. + * testsuite/libgomp.c/examples-4/device-1.c: Likewise. + * testsuite/libgomp.c/examples-4/target-5.c: Likewise. + * testsuite/libgomp.c/examples-4/target_data-6.c: Likewise. + * testsuite/libgomp.c/examples-4/target_data-7.c: Likewise. + * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise. + * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise. + * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise. + * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise. + * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise. + +2016-03-07 Martin Jambor <mjambor@suse.cz> + + * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to + ALWAYS_CFLAGS. + +2016-03-02 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/69555 + * testsuite/libgomp.c++/pr69555-1.C: New test. + * testsuite/libgomp.c++/pr69555-2.C: New test. + +2016-02-26 Keith McDaniel <k.allen.mcdaniel@gmail.com> + Martin Jambor <mjambor@suse.cz> + + * testsuite/lib/libgomp.exp + (check_effective_target_offload_device_shared_as): New proc. + * testsuite/libgomp.c++/declare_target-1.C: New test. + +2016-02-25 Ilya Verbin <ilya.verbin@intel.com> + + PR driver/68463 + * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove. + +2016-02-23 Thomas Schwinge <thomas@codesourcery.com> + + * oacc-parallel.c (GOACC_parallel_keyed): Initialize dims. + * plugin/plugin-nvptx.c (nvptx_exec): Provide default values for + dims. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to + -ftree-parallelize-loops/-fopenacc changes. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: + Likewise. + +2016-02-22 Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test. + +2016-02-19 Jakub Jelinek <jakub@redhat.com> + + PR driver/69805 + * testsuite/libgomp.c/pr69805.c: New test. + +2016-02-16 Tom de Vries <tom@codesourcery.com> + + PR lto/67709 + * testsuite/libgomp.fortran/declare-simd-4.f90: New test. + +2016-02-09 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/69599 + * testsuite/libgomp.c/omp-nested-3.c: New test. + * testsuite/libgomp.c/pr46032-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test. + +2016-02-09 Tom de Vries <tom@codesourcery.com> + + PR lto/69707 + * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test. + +2016-02-02 Alexander Monakov <amonakov@ispras.ru> + + * testsuite/libgomp.c/target-31.c: Fix testcase. + +2016-02-02 Alexander Monakov <amonakov@ispras.ru> + + * testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction + clause. + * testsuite/libgomp.c/examples-4/teams-4.c: Likewise. + * testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing + reduction and map clauses. + * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise. + +2016-02-02 James Norris <jnorris@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause. + +2016-02-02 Thomas Schwinge <thomas@codesourcery.com> + + * libgomp.map (GOACC_2.0): Remove GOACC_host_data. + * oacc-parallel.c (GOACC_host_data): Remove function definition. + + * testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test + cases. + + * plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New + variables. + * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib) + (hsa_kmt_lib): Set variables. + * testsuite/lib/libgomp.exp (libgomp_init): Use them to amend + always_ld_library_path. + * Makefile.in: Regenerate. + * configure: Likewise. + * testsuite/Makefile.in: Likewise. + + * plugin/configfrag.ac (offload_additional_options) + (offload_additional_lib_paths): Don't amend for hsa offloading. + * configure: Regenerate. + + * plugin/configfrag.ac: Don't configure for offloading target if + we don't build the corresponding plugin. + * configure: Regenerate. + +2016-02-01 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New. + * testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop. + +2016-01-26 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/69110 + * testsuite/libgomp.c/pr69110.c: New test. + +2016-01-25 Richard Biener <rguenther@suse.de> + + PR lto/69393 + * testsuite/libgomp.c++/pr69393.C: New testcase. + +2016-01-22 Ilya Verbin <ilya.verbin@intel.com> + + * target.c (gomp_get_target_fn_addr): Allow host fallback if target + function wasn't mapped to the device with non-shared memory. + +2016-01-20 Ilya Verbin <ilya.verbin@intel.com> + + * task.c (gomp_create_target_task): Set firstprivate_copies to NULL. + +2016-01-19 Martin Jambor <mjambor@suse.cz> + Martin Liska <mliska@suse.cz> + + * plugin/Makefrag.am: Add HSA plugin requirements. + * plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable. + (HSA_RUNTIME_LIB): Likewise. + (HSA_RUNTIME_CPPFLAGS): Likewise. + (HSA_RUNTIME_INCLUDE): New substitution. + (HSA_RUNTIME_LIB): Likewise. + (HSA_RUNTIME_LDFLAGS): Likewise. + (hsa-runtime): New configure option. + (hsa-runtime-include): Likewise. + (hsa-runtime-lib): Likewise. + (PLUGIN_HSA): New substitution variable. + Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new + configure options. + (PLUGIN_HSA_CPPFLAGS): Likewise. + (PLUGIN_HSA_LDFLAGS): Likewise. + (PLUGIN_HSA_LIBS): Likewise. + Check that we have access to HSA run-time. + * libgomp-plugin.h (offload_target_type): New element + OFFLOAD_TARGET_TYPE_HSA. + * libgomp.h (gomp_target_task): New fields firstprivate_copies and + args. + (bool gomp_create_target_task): Updated. + (gomp_device_descr): Extra parameter of run_func and async_run_func, + new field can_run_func. + * libgomp_g.h (GOMP_target_ext): Update prototype. + * oacc-host.c (host_run): Added a new parameter args. + * target.c (calculate_firstprivate_requirements): New function. + (copy_firstprivate_data): Likewise. + (gomp_target_fallback_firstprivate): Use them. + (gomp_target_unshare_firstprivate): New function. + (gomp_get_target_fn_addr): Allow returning NULL for shared memory + devices. + (GOMP_target): Do host fallback for all shared memory devices. Do not + pass any args to plugins. + (GOMP_target_ext): Introduce device-specific argument parameter args. + Allow host fallback if device shares memory. Do not remap data if + device has shared memory. + (gomp_target_task_fn): Likewise. Also treat shared memory devices + like host fallback for mappings. + (GOMP_target_data): Treat shared memory devices like host fallback. + (GOMP_target_data_ext): Likewise. + (GOMP_target_update): Likewise. + (GOMP_target_update_ext): Likewise. Also pass NULL as args to + gomp_create_target_task. + (GOMP_target_enter_exit_data): Likewise. + (omp_target_alloc): Treat shared memory devices like host fallback. + (omp_target_free): Likewise. + (omp_target_is_present): Likewise. + (omp_target_memcpy): Likewise. + (omp_target_memcpy_rect): Likewise. + (omp_target_associate_ptr): Likewise. + (gomp_load_plugin_for_device): Also load can_run. + * task.c (GOMP_PLUGIN_target_task_completion): Free + firstprivate_copies. + (gomp_create_target_task): Accept new argument args and store it to + ttask. + * plugin/plugin-hsa.c: New file. + +2016-01-18 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c: + Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c: + Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c: + Same. + * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same. + +2016-01-15 Jakub Jelinek <jakub@redhat.com> + + * task.c (GOMP_PLUGIN_target_task_completion): Add missing return. + +2016-01-15 Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test. + +2016-01-12 James Norris <jnorris@codesourcery.com> + + * libgomp.texi: Updates for OpenACC. + +2016-01-11 Alexander Monakov <amonakov@ispras.ru> + + * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET. + +2016-01-07 H.J. Lu <hongjiu.lu@intel.com> + + PR fortran/66680 + * testsuite/libgomp.fortran/pr66680.f90: New test. + +2016-01-07 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/68960 + * testsuite/libgomp.c/pr68960.c: New test. + +2016-01-06 Nathan Sidwell <nathan@acm.org> + + * openacc.h (acc_on_device): Add routine pragma for C++ wrapper. + * testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New. + +2016-01-04 Jakub Jelinek <jakub@redhat.com> + + Update copyright years. + + * libgomp.texi: Bump @copying's copyright year. + +2015-12-31 Nathan Sidwell <nathan@acm.org> + + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct + dg-additional-options syntax. + * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise. + +2015-12-15 Ilya Verbin <ilya.verbin@intel.com> + + * libgomp.h (REFCOUNT_LINK): Define. + (struct splay_tree_key_s): Add link_key. + * target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped. + Replace target address of the pointer with target address of newly + mapped object in the splay tree. Set link pointer on target to the + device address of the mapped object. + (gomp_unmap_vars): Restore target address of the pointer in the splay + tree for REFCOUNT_LINK objects after unmapping. + (gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp + declare target link" objects. + (gomp_unload_image_from_device): Replace j with i. Force unmap of all + "omp declare target link" objects, which were mapped for the image. + (gomp_exit_data): Restore target address of the pointer in the splay + tree for REFCOUNT_LINK objects after unmapping. + * testsuite/libgomp.c/target-link-1.c: New file. + +2015-12-14 Ilya Verbin <ilya.verbin@intel.com> + + * libgomp.h (gomp_device_state): New enum. + (struct gomp_device_descr): Replace is_initialized with state. + (gomp_fini_device): Remove declaration. + * oacc-host.c (host_dispatch): Use state instead of is_initialized. + * oacc-init.c (acc_init_1): Use state instead of is_initialized. + (acc_shutdown_1): Likewise. Inline gomp_fini_device. + (acc_set_device_type): Use state instead of is_initialized. + (acc_set_device_num): Likewise. + * target.c (resolve_device): Use state instead of is_initialized. + Do not initialize finalized device. + (gomp_map_vars): Do nothing if device is finalized. + (gomp_unmap_vars): Likewise. + (gomp_update): Likewise. + (GOMP_offload_register_ver): Use state instead of is_initialized. + (GOMP_offload_unregister_ver): Likewise. + (gomp_init_device): Likewise. + (gomp_unload_device): Likewise. + (gomp_fini_device): Remove. + (gomp_get_target_fn_addr): Do nothing if device is finalized. + (GOMP_target): Go to host fallback if device is finalized. + (GOMP_target_ext): Likewise. + (gomp_exit_data): Do nothing if device is finalized. + (gomp_target_task_fn): Go to host fallback if device is finalized. + (gomp_target_fini): New static function. + (gomp_target_init): Use state instead of is_initialized. + Call gomp_target_fini at exit. + +2015-12-09 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/68716 + * testsuite/libgomp.c/omp-nested-2.c: New test. + +2015-12-02 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to + target openacc_nvidia_accel_selected. + * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file. + * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file. + +2015-12-01 Julian Brown <julian@codesourcery.com> + James Norris <James_Norris@mentor.com> + + * oacc-parallel.c (GOACC_host_data): New function. + * libgomp.map (GOACC_host_data): Add to GOACC_2.0.1. + * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test. + * testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test. + * testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test. + * testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test. + * testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test. + * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test. + +2015-11-30 James Norris <jnorris@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + libgomp/ + * libgomp.oacc-fortran/routine-5.f90: New test. + * libgomp.oacc-fortran/routine-7.f90: New test. + * libgomp.oacc-fortran/routine-9.f90: New test. + +2015-11-30 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/46032 + * testsuite/libgomp.c/pr46032.c: New test. + +2015-11-27 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/68579 + * task.c (gomp_task_run_post_handle_depend_hash): New forward decl. + (gomp_create_target_task): Call it before freeing + GOMP_TARGET_TASK_DATA tasks. + + PR c/63326 + * testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon + in between case label and OpenMP standalone directives. + * testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise. + +2015-11-26 David Edelsohn <dje.gcc@gmail.com> + + * configure: Regenerate. + +2015-11-26 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/target-35.c: New test. + +2015-11-22 James Norris <jnorris@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/declare-1.f90: New test. + * testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise. + +2015-11-20 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/68221 + * testsuite/libgomp.c/reduction-11.c: Remove xfail. + * testsuite/libgomp.c/reduction-12.c: Likewise. + * testsuite/libgomp.c++/reduction-11.C: Likewise. + * testsuite/libgomp.c++/reduction-12.C: Likewise. + +2015-11-19 Nathan Sidwell <nathan@codesourcery.com> + + * libgomp.oacc-c-c++-common/reduction-dbl.c: New. + * libgomp.oacc-c-c++-common/reduction-flt.c: New. + * libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef. + * libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef. + * libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests + and fix. + * libgomp.oacc-c-c++-common/reduction-3.c: Likewise. + * libgomp.oacc-c-c++-common/reduction-4.c: Likewise. + +2015-11-18 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add + worker & gang cases. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise. + +2015-11-17 Cesar Philippidis <cesar@codesourcery.com> + + * config/nvptx/priority_queue.c: New file. + +2015-11-14 Jakub Jelinek <jakub@redhat.com> + + * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5 + sections. + +2015-11-14 Jakub Jelinek <jakub@redhat.com> + Aldy Hernandez <aldyh@redhat.com> + Ilya Verbin <ilya.verbin@intel.com> + + * ordered.c (gomp_doacross_init, GOMP_doacross_post, + GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post, + GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of + iterators or IV by chunk size. + * parallel.c (gomp_resolve_num_threads): Don't assume that + if thr->ts.team is non-NULL, then pool must be non-NULL. + * libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare. + * libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export + GOMP_PLUGIN_target_task_completion. + * Makefile.am (libgomp_la_SOURCES): Add priority_queue.c. + * Makefile.in: Regenerate. + * libgomp.h: Shuffle prototypes and forward definitions around so + priority queues can be defined. + (enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING. + (enum gomp_target_task_state): New enum. + (struct gomp_target_task): Add state, tgt, task and team fields. + (gomp_create_target_task): Change return type to bool, add + state argument. + (gomp_target_task_fn): Change return type to bool. + (struct gomp_device_descr): Add async_run_func. + (struct gomp_task): Remove children, next_child, prev_child, + next_queue, prev_queue, next_taskgroup, prev_taskgroup. + Add pnode field. + (struct gomp_taskgroup): Remove children. + Add taskgroup_queue. + (struct gomp_team): Change task_queue type to a priority queue. + (splay_compare): Define inline. + (priority_queue_offset): New. + (priority_node_to_task): New. + (task_to_priority_node): New. + * oacc-mem.c: Do not include splay-tree.h. + * priority_queue.c: New file. + * priority_queue.h: New file. + * splay-tree.c: Do not include splay-tree.h. + (splay_tree_foreach_internal): New. + (splay_tree_foreach): New. + * splay-tree.h: Become re-entrant if splay_tree_prefix is defined. + (splay_tree_callback): Define typedef. + * target.c (splay_compare): Move to libgomp.h. + (GOMP_target): Don't adjust *thr in any way around running offloaded + task. + (GOMP_target_ext): Likewise. Handle target nowait. + (GOMP_target_update_ext, GOMP_target_enter_exit_data): Check + return value from gomp_create_target_task, if false, fallthrough + as if no dependencies exist. + (gomp_target_task_fn): Change return type to bool, return true + if the task should have another part scheduled later. Handle + target nowait. + (gomp_load_plugin_for_device): Initialize async_run. + * task.c (gomp_init_task): Initialize children_queue. + (gomp_clear_parent_in_list): New. + (gomp_clear_parent_in_tree): New. + (gomp_clear_parent): Handle priorities. + (GOMP_task): Likewise. + (priority_queue_move_task_first, + gomp_target_task_completion, GOMP_PLUGIN_target_task_completion): + New functions. + (gomp_create_target_task): Use priority queues. Change return type + to bool, add state argument, return false if for async + {{enter,exit} data,update} constructs no dependencies need to be + waited for, handle target nowait. Set task->fn to NULL instead of + gomp_target_task_fn. + (verify_children_queue): Remove. + (priority_list_upgrade_task): New. + (priority_queue_upgrade_task): New. + (verify_task_queue): Remove. + (priority_list_downgrade_task): New. + (priority_queue_downgrade_task): New. + (gomp_task_run_pre): Use priority queues. + Abstract code out to priority_queue_downgrade_task. + (gomp_task_run_post_handle_dependers): Use priority queues. + (gomp_task_run_post_remove_parent): Likewise. + (gomp_task_run_post_remove_taskgroup): Likewise. + (gomp_barrier_handle_tasks): Likewise. Handle target nowait target + tasks specially. + (GOMP_taskwait): Likewise. + (gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to + priority-queue_upgrade_task. + (GOMP_taskgroup_start): Use priority queues. + (GOMP_taskgroup_end): Likewise. Handle target nowait target tasks + specially. If taskgroup is NULL, and thr->ts.level is 0, act as a + barrier. + * taskloop.c (GOMP_taskloop): Handle priorities. + * team.c (gomp_new_team): Call priority_queue_init. + (free_team): Call priority_queue_free. + (gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial + team created for target nowait in implicit parallel region. + (gomp_team_start): For nested check, test thr->ts.level instead of + thr->ts.team != NULL. + * testsuite/libgomp.c/doacross-3.c: New test. + * testsuite/libgomp.c/ordered-5.c: New test. + * testsuite/libgomp.c/priority.c: New test. + * testsuite/libgomp.c/target-31.c: New test. + * testsuite/libgomp.c/target-32.c: New test. + * testsuite/libgomp.c/target-33.c: New test. + * testsuite/libgomp.c/target-34.c: New test. + +2015-11-13 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New. + + * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential + loop is sequential. + +2015-11-13 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New. + * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New. + +2015-11-12 James Norris <jnorris@codesourcery.com> + Joseph Myers <joseph@codesourcery.com> + + * libgomp.map (GOACC_2.0.1): Export GOACC_declare. + * oacc-parallel.c (GOACC_declare): New function. + * testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test. + * testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise. + * testsuite/libgomp.oacc-c++/declare-1.C: Likewise. + +2015-11-12 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/default-1.c: New. + +2015-11-1 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New. + +2015-11-09 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove + inadvertent commit. + +2015-11-09 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New. + +2015-11-06 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL. + * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise. + +2015-11-05 Jakub Jelinek <jakub@redhat.com> + Ilya Verbin <ilya.verbin@intel.com> + + * libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next, + GOMP_loop_nonmonotonic_dynamic_start, + GOMP_loop_nonmonotonic_guided_next, + GOMP_loop_nonmonotonic_guided_start, + GOMP_loop_ull_nonmonotonic_dynamic_next, + GOMP_loop_ull_nonmonotonic_dynamic_start, + GOMP_loop_ull_nonmonotonic_guided_next, + GOMP_loop_ull_nonmonotonic_guided_start, + GOMP_parallel_loop_nonmonotonic_dynamic, + GOMP_parallel_loop_nonmonotonic_guided): New prototypes. + (GOMP_target_41): Renamed to ... + (GOMP_target_ext): ... this. Add num_teams and thread_limit + arguments. + (GOMP_target_data_41): Renamed to ... + (GOMP_target_data_ext): ... this. + (GOMP_target_update_41): Renamed to ... + (GOMP_target_update_ext): ... this. + * libgomp.map (GOMP_4.5): Export GOMP_target_ext, + GOMP_target_data_ext and GOMP_target_update_ext instead of + GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41. + Export GOMP_loop_nonmonotonic_dynamic_next, + GOMP_loop_nonmonotonic_dynamic_start, + GOMP_loop_nonmonotonic_guided_next, + GOMP_loop_nonmonotonic_guided_start, + GOMP_loop_ull_nonmonotonic_dynamic_next, + GOMP_loop_ull_nonmonotonic_dynamic_start, + GOMP_loop_ull_nonmonotonic_guided_next, + GOMP_loop_ull_nonmonotonic_guided_start, + GOMP_parallel_loop_nonmonotonic_dynamic and + GOMP_parallel_loop_nonmonotonic_guided. + * loop.c (GOMP_parallel_loop_nonmonotonic_dynamic, + GOMP_parallel_loop_nonmonotonic_guided, + GOMP_loop_nonmonotonic_dynamic_start, + GOMP_loop_nonmonotonic_guided_start, + GOMP_loop_nonmonotonic_dynamic_next, + GOMP_loop_nonmonotonic_guided_next): New aliases or functions. + * loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start, + GOMP_loop_ull_nonmonotonic_guided_start, + GOMP_loop_ull_nonmonotonic_dynamic_next, + GOMP_loop_ull_nonmonotonic_guided_next): Likewise. + * target.c (gomp_map_0len_lookup, gomp_map_val): New inline + functions. + (gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER. For + GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup. + Use gomp_map_val function. + (gomp_target_fallback_firstprivate): New static function. + (GOMP_target_41): Renamed to ... + (GOMP_target_ext): ... this. Add num_teams and thread_limit + arguments. Move firstprivate fallback handling into a new + function. + (GOMP_target_data_41): Renamed to ... + (GOMP_target_data_ext): ... this. + (GOMP_target_update_41): Renamed to ... + (GOMP_target_update_ext): ... this. + (gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use + gomp_map_0len_lookup instead of gomp_map_lookup. + (omp_target_is_present): Use gomp_map_0len_lookup instead of + gomp_map_lookup. + * testsuite/libgomp.c/target-28.c: Likewise. + * testsuite/libgomp.c/monotonic-1.c: New test. + * testsuite/libgomp.c/monotonic-2.c: New test. + * testsuite/libgomp.c/nonmonotonic-1.c: New test. + * testsuite/libgomp.c/nonmonotonic-2.c: New test. + * testsuite/libgomp.c/pr66199-5.c: New test. + * testsuite/libgomp.c/pr66199-6.c: New test. + * testsuite/libgomp.c/pr66199-7.c: New test. + * testsuite/libgomp.c/pr66199-8.c: New test. + * testsuite/libgomp.c/pr66199-9.c: New test. + * testsuite/libgomp.c/reduction-11.c: New test. + * testsuite/libgomp.c/reduction-12.c: New test. + * testsuite/libgomp.c/reduction-13.c: New test. + * testsuite/libgomp.c/reduction-14.c: New test. + * testsuite/libgomp.c/reduction-15.c: New test. + * testsuite/libgomp.c/target-12.c (main): Adjust for + omp_target_is_present change for one-past-last element. + * testsuite/libgomp.c/target-17.c (foo): Drop tests where + the same var is both mapped and privatized. + * testsuite/libgomp.c/target-19.c (foo): Adjust for different + handling of zero-length array sections. + * testsuite/libgomp.c/target-28.c: New test. + * testsuite/libgomp.c/target-29.c: New test. + * testsuite/libgomp.c/target-30.c: New test. + * testsuite/libgomp.c/target-teams-1.c: New test. + * testsuite/libgomp.c++/member-6.C: New test. + * testsuite/libgomp.c++/member-7.C: New test. + * testsuite/libgomp.c++/monotonic-1.C: New test. + * testsuite/libgomp.c++/monotonic-2.C: New test. + * testsuite/libgomp.c++/nonmonotonic-1.C: New test. + * testsuite/libgomp.c++/nonmonotonic-2.C: New test. + * testsuite/libgomp.c++/pr66199-3.C: New test. + * testsuite/libgomp.c++/pr66199-4.C: New test. + * testsuite/libgomp.c++/pr66199-5.C: New test. + * testsuite/libgomp.c++/pr66199-6.C: New test. + * testsuite/libgomp.c++/pr66199-7.C: New test. + * testsuite/libgomp.c++/pr66199-8.C: New test. + * testsuite/libgomp.c++/pr66199-9.C: New test. + * testsuite/libgomp.c++/reduction-11.C: New test. + * testsuite/libgomp.c++/reduction-12.C: New test. + * testsuite/libgomp.c++/target-13.C: New test. + * testsuite/libgomp.c++/target-14.C: New test. + * testsuite/libgomp.c++/target-15.C: New test. + * testsuite/libgomp.c++/target-16.C: New test. + * testsuite/libgomp.c++/target-17.C: New test. + * testsuite/libgomp.c++/target-18.C: New test. + * testsuite/libgomp.c++/target-19.C: New test. + +2015-11-04 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions + and reduction copy. + * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New. + +2015-11-04 Nathan Sidwell <nathan@codesourcery.com> + + * libgomp.oacc-c-c++-common/loop-red-g-1.c: New. + * libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New. + * libgomp.oacc-c-c++-common/loop-red-v-1.c: New. + * libgomp.oacc-c-c++-common/loop-red-v-2.c: New. + * libgomp.oacc-c-c++-common/loop-red-w-1.c: New. + * libgomp.oacc-c-c++-common/loop-red-w-2.c: New. + * libgomp.oacc-c-c++-common/loop-red-wv-1.c: New. + * libgomp.oacc-fortran/reduction-5.f90: Avoid reference var. + +2015-11-03 Nathan Sidwell <nathan@codesourcery.com> + + * libgomp.h (struct acc_dispatch_t): Remove args from exec_func. + * plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg. + (GOMP_OFFLOAD_openacc_parallel): Likewise. + * oacc-host.c (host_openacc_exec): Likewise. + * oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call. + +2015-11-03 Julian Brown <julian@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file. + * testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise. + +2015-11-03 James Norris <jnorris@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New + file. + * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise. + * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file. + * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise. + +2015-10-29 Nathan Sidwell <nathan@codesourcery.com> + + * openacc.h (enum acc_device_t): Reformat. Ensure layout + compatibility. + (enum acc_async_t): Reformat. + (acc_on_device): Declare compatible with builtin and provide C++ + wrapper. + * testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New. + +2015-10-29 Thomas Schwinge <thomas@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to... + * testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c: + ... this. Add a description of the test at the top of the file. + * testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to... + * testsuite/libgomp.oacc-fortran/combined-directives-1.f90: + ... this. Add a description of the test at the top of the file. + +2015-10-28 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New. + * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New. + +2015-10-27 Nathan Sidwell <nathan@codesourcery.com> + + * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute + dimensions. + +2015-10-27 Thomas Schwinge <thomas@codesourcery.com> + + PR testsuite/68063 + * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause. + +2015-10-27 James Norris <jnorris@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file. + * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise. + +2015-10-26 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr. + * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise. + + * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit + acc_device_nvidia usage. + * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise. + + * oacc-init.c (acc_shutdown): Call gomp_init_targets_once. + * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file. + + PR libgomp/66518 + * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL. + + PR libgomp/65437 + PR libgomp/66518 + * oacc-mem.c (update_dev_host): Call goacc_lazy_initialize. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL. + +2015-10-23 Tom de Vries <tom@codesourcery.com> + + PR testsuite/68063 + * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause. + +2015-10-20 Nathan Sidwell <nathan@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane + vector_length. + * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise. + +2015-10-14 Ilya Verbin <ilya.verbin@intel.com> + Aleksander Ivanushenko <aleksander.ivanushenko@intel.com> + + * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end + to 0 when mapnum is 0. + +2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_): + Cast to int from int32_t. + +2015-10-13 Jakub Jelinek <jakub@redhat.com> + Aldy Hernandez <aldyh@redhat.com> + Ilya Verbin <ilya.verbin@intel.com> + + * config/linux/affinity.c (omp_get_place_num_procs, + omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions. + * config/linux/doacross.h: New file. + * config/posix/affinity.c (omp_get_place_num_procs, + omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions. + * config/posix/doacross.h: New file. + * env.c: Include gomp-constants.h. + (struct gomp_task_icv): Rename run_sched_modifier to + run_sched_chunk_size. + (gomp_max_task_priority_var): New variable. + (parse_schedule): Rename run_sched_modifier to run_sched_chunk_size. + (handle_omp_display_env): Change _OPENMP value from 201307 to + 201511. Print OMP_MAX_TASK_PRIORITY. + (initialize_env): Parse OMP_MAX_TASK_PRIORITY. + (omp_set_schedule, omp_get_schedule): Rename modifier argument to + chunk_size and run_sched_modifier to run_sched_chunk_size. + (omp_get_max_task_priority, omp_get_initial_device, + omp_get_num_places, omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums): New functions. + * fortran.c (omp_set_schedule_, omp_set_schedule_8_, + omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument + to chunk_size. + (omp_get_num_places_, omp_get_place_num_procs_, + omp_get_place_num_procs_8_, omp_get_place_proc_ids_, + omp_get_place_proc_ids_8_, omp_get_place_num_, + omp_get_partition_num_places_, omp_get_partition_place_nums_, + omp_get_partition_place_nums_8_, omp_get_initial_device_, + omp_get_max_task_priority_): New functions. + * libgomp_g.h (GOMP_loop_doacross_static_start, + GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start, + GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start, + GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post, + GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait, + GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41, + GOMP_target_data_41, GOMP_target_update_41, + GOMP_target_enter_exit_data): New prototypes. + (GOMP_task): Add prototype argument. + * libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined. + (struct gomp_doacross_work_share): New type. + (struct gomp_work_share): Add doacross field. + (struct gomp_task_icv): Rename run_sched_modifier to + run_sched_chunk_size. + (enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to + GOMP_TASK_UNDEFERRED. Add comments. + (struct gomp_task_depend_entry): Add comments. + (struct gomp_task): Likewise. + (struct gomp_taskgroup): Likewise. + (struct gomp_target_task): New type. + (struct gomp_team): Add comment. + (gomp_get_place_proc_ids_8, gomp_doacross_init, + gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies, + gomp_create_target_task, gomp_target_task_fn): New prototypes. + (struct target_var_desc): New type. + (struct target_mem_desc): Adjust comment. Use struct + target_var_desc instead of splay_tree_key for list. + (REFCOUNT_INFINITY): Define. + (struct splay_tree_key_s): Remove copy_from field. + (struct gomp_device_descr): Add dev2dev_func field. + (enum gomp_map_vars_kind): New enum. + (gomp_map_vars): Add one argument. + * libgomp.map (OMP_4.5): Export omp_get_max_task_priority, + omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_, + omp_get_place_num_procs, omp_get_place_num_procs_, + omp_get_place_num_procs_8_, omp_get_place_proc_ids, + omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num, + omp_get_place_num_, omp_get_partition_num_places, + omp_get_partition_num_places_, omp_get_partition_place_nums, + omp_get_partition_place_nums_, omp_get_partition_place_nums_8_, + omp_get_initial_device, omp_get_initial_device_, omp_target_alloc, + omp_target_free, omp_target_is_present, omp_target_memcpy, + omp_target_memcpy_rect, omp_target_associate_ptr and + omp_target_disassociate_ptr. + (GOMP_4.0.2): Renamed to ... + (GOMP_4.5): ... this. Export GOMP_target_41, GOMP_target_data_41, + GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop, + GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start, + GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start, + GOMP_loop_doacross_static_start, GOMP_doacross_post, + GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start, + GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and + GOMP_doacross_ull_wait. + * libgomp.texi: Document omp_get_max_task_priority. + Rename modifier argument to chunk_size for omp_set_schedule and + omp_get_schedule. Document OMP_MAX_TASK_PRIORITY env var. + * loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier + to run_sched_chunk_size renaming. + (GOMP_loop_ordered_runtime_start): Likewise. + (gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start, + gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start, + GOMP_parallel_loop_runtime_start): New functions. + (GOMP_parallel_loop_runtime): Adjust for run_sched_modifier + to run_sched_chunk_size renaming. + (GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start, + GOMP_loop_doacross_guided_start): New functions or aliases. + * loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for + run_sched_modifier to run_sched_chunk_size renaming. + (GOMP_loop_ull_ordered_runtime_start): Likewise. + (gomp_loop_ull_doacross_static_start, + gomp_loop_ull_doacross_dynamic_start, + gomp_loop_ull_doacross_guided_start, + GOMP_loop_ull_doacross_runtime_start): New functions. + (GOMP_loop_ull_doacross_static_start, + GOMP_loop_ull_doacross_dynamic_start, + GOMP_loop_ull_doacross_guided_start): New functions or aliases. + * oacc-mem.c (acc_map_data, present_create_copy, + gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false + to gomp_map_vars. + (gomp_acc_remove_pointer): Use copy_from from target_var_desc. + * oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC + instead of false to gomp_map_vars. + (GOACC_parallel_keyed): Likewise. Use copy_from from target_var_desc. + * omp.h.in (omp_lock_hint_t): New type. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority, omp_target_alloc, omp_target_free, + omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect, + omp_target_associate_ptr, omp_target_disassociate_ptr): New + prototypes. + * omp_lib.f90.in (omp_lock_hint_kind): New parameter. + (omp_lock_hint_none, omp_lock_hint_uncontended, + omp_lock_hint_contended, omp_lock_hint_nonspeculative, + omp_lock_hint_speculative): New parameters. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority): New interfaces. + (omp_set_schedule, omp_get_schedule): Rename modifier argument + to chunk_size. + * omp_lib.h.in (omp_lock_hint_kind): New parameter. + (omp_lock_hint_none, omp_lock_hint_uncontended, + omp_lock_hint_contended, omp_lock_hint_nonspeculative, + omp_lock_hint_speculative): New parameters. + (omp_init_lock_with_hint, omp_init_nest_lock_with_hint, + omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids, + omp_get_place_num, omp_get_partition_num_places, + omp_get_partition_place_nums, omp_get_initial_device, + omp_get_max_task_priority): New functions and subroutines. + * ordered.c: Include stdarg.h and string.h. + (MAX_COLLAPSED_BITS): Define. + (gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait, + gomp_doacross_ull_init, GOMP_doacross_ull_post, + GOMP_doacross_ull_wait): New functions. + * target.c: Include errno.h. + (resolve_device): If device is not initialized, call + gomp_init_device on it. + (gomp_map_lookup): New function. + (gomp_map_vars_existing): Add tgt_var argument, fill it in. + Don't bump refcount if REFCOUNT_INFINITY. Handle + GOMP_MAP_ALWAYS_TO_P. + (get_kind): Rename is_openacc argument to short_mapkind. + (gomp_map_pointer): Use gomp_map_lookup. + (gomp_map_fields_existing): New function. + (gomp_map_vars): Rename is_openacc argument to short_mapkind + and is_target to pragma_kind. Handle GOMP_MAP_VARS_ENTER_DATA, + handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT, + GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION. + Adjust for tgt->list changed type and copy_from living in there. + (gomp_copy_from_async): Adjust for tgt->list changed type and + copy_from living in there. + (gomp_unmap_vars): Likewise. + (gomp_update): Likewise. Rename is_openacc argument to + short_mapkind. Don't fail if object is not mapped. + (gomp_load_image_to_device): Initialize refcount to + REFCOUNT_INFINITY. + (gomp_target_fallback): New function. + (gomp_get_target_fn_addr): Likewise. + (GOMP_target): Adjust gomp_map_vars caller, use + gomp_get_target_fn_addr and gomp_target_fallback. + (GOMP_target_41): New function. + (gomp_target_data_fallback): New function. + (GOMP_target_data): Use it, adjust gomp_map_vars caller. + (GOMP_target_data_41): New function. + (GOMP_target_update): Adjust gomp_update caller. + (GOMP_target_update_41): New function. + (gomp_exit_data, GOMP_target_enter_exit_data, + gomp_target_task_fn, omp_target_alloc, omp_target_free, + omp_target_is_present, omp_target_memcpy, + omp_target_memcpy_rect_worker, omp_target_memcpy_rect, + omp_target_associate_ptr, omp_target_disassociate_ptr, + gomp_load_plugin_for_device): New functions. + * task.c: Include gomp-constants.h. Include taskloop.c + twice to get GOMP_taskloop and GOMP_taskloop_ull definitions. + (gomp_task_handle_depend): New function. + (GOMP_task): Use it. Add priority argument. Use + gomp-constant.h constants instead of hardcoded numbers. + Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED. + (gomp_create_target_task): New function. + (verify_children_queue, verify_taskgroup_queue, + verify_task_queue): New functions. + (gomp_task_run_pre): Call verify_*_queue functions. + If an upcoming tied task is about to leave the sibling or + taskgroup queues in an invalid state, adjust appropriately. + Remove taskgroup argument. Add comments. + (gomp_task_run_post_handle_dependers): Add comments. + (gomp_task_run_post_remove_parent): Likewise. + (gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller. + (GOMP_taskwait): Likewise. Add comments. + (gomp_task_maybe_wait_for_dependencies): Fix scheduling + problem such that the first non parent_depends_on task does not + end up at the end of the children queue. + (GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to + GOMP_TASK_UNDEFERRED. + (GOMP_taskgroup_end): Adjust gomp_task_run_pre caller. + * taskloop.c: New file. + * testsuite/lib/libgomp.exp + (check_effective_target_offload_device_nonshared_as): New proc. + * testsuite/libgomp.c/affinity-2.c: New test. + * testsuite/libgomp.c/doacross-1.c: New test. + * testsuite/libgomp.c/doacross-2.c: New test. + * testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper): + Add map clause to target. + * testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise. + * testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise. + * testsuite/libgomp.c/examples-4/device-1.c (main): Likewise. + * testsuite/libgomp.c/examples-4/device-3.c (main): Likewise. + * testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt): + Likewise. + * testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise. + * testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise. + * testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise. + * testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if + not defined. Use those where needed. + * testsuite/libgomp.c/for-4.c: New test. + * testsuite/libgomp.c/for-5.c: New test. + * testsuite/libgomp.c/for-6.c: New test. + * testsuite/libgomp.c/linear-1.c: New test. + * testsuite/libgomp.c/ordered-4.c: New test. + * testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause + only allowed on the loop iterator. + * testsuite/libgomp.c/pr66199-3.c: New test. + * testsuite/libgomp.c/pr66199-4.c: New test. + * testsuite/libgomp.c/reduction-7.c: New test. + * testsuite/libgomp.c/reduction-8.c: New test. + * testsuite/libgomp.c/reduction-9.c: New test. + * testsuite/libgomp.c/reduction-10.c: New test. + * testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add + map(tofrom:s). + * testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise. + * testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed. + * testsuite/libgomp.c/target-11.c: New test. + * testsuite/libgomp.c/target-12.c: New test. + * testsuite/libgomp.c/target-13.c: New test. + * testsuite/libgomp.c/target-14.c: New test. + * testsuite/libgomp.c/target-15.c: New test. + * testsuite/libgomp.c/target-16.c: New test. + * testsuite/libgomp.c/target-17.c: New test. + * testsuite/libgomp.c/target-18.c: New test. + * testsuite/libgomp.c/target-19.c: New test. + * testsuite/libgomp.c/target-20.c: New test. + * testsuite/libgomp.c/target-21.c: New test. + * testsuite/libgomp.c/target-22.c: New test. + * testsuite/libgomp.c/target-23.c: New test. + * testsuite/libgomp.c/target-24.c: New test. + * testsuite/libgomp.c/target-25.c: New test. + * testsuite/libgomp.c/target-26.c: New test. + * testsuite/libgomp.c/target-27.c: New test. + * testsuite/libgomp.c/taskloop-1.c: New test. + * testsuite/libgomp.c/taskloop-2.c: New test. + * testsuite/libgomp.c/taskloop-3.c: New test. + * testsuite/libgomp.c/taskloop-4.c: New test. + * testsuite/libgomp.c++/ctor-13.C: New test. + * testsuite/libgomp.c++/doacross-1.C: New test. + * testsuite/libgomp.c++/examples-4/declare_target-2.C: + Replace offload_device with offload_device_nonshared_as. + * testsuite/libgomp.c++/for-12.C: New test. + * testsuite/libgomp.c++/for-13.C: New test. + * testsuite/libgomp.c++/for-14.C: New test. + * testsuite/libgomp.c++/linear-1.C: New test. + * testsuite/libgomp.c++/member-1.C: New test. + * testsuite/libgomp.c++/member-2.C: New test. + * testsuite/libgomp.c++/member-3.C: New test. + * testsuite/libgomp.c++/member-4.C: New test. + * testsuite/libgomp.c++/member-5.C: New test. + * testsuite/libgomp.c++/ordered-1.C: New test. + * testsuite/libgomp.c++/reduction-5.C: New test. + * testsuite/libgomp.c++/reduction-6.C: New test. + * testsuite/libgomp.c++/reduction-7.C: New test. + * testsuite/libgomp.c++/reduction-8.C: New test. + * testsuite/libgomp.c++/reduction-9.C: New test. + * testsuite/libgomp.c++/reduction-10.C: New test. + * testsuite/libgomp.c++/reference-1.C: New test. + * testsuite/libgomp.c++/simd14.C: New test. + * testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause. + * testsuite/libgomp.c++/target-5.C: New test. + * testsuite/libgomp.c++/target-6.C: New test. + * testsuite/libgomp.c++/target-7.C: New test. + * testsuite/libgomp.c++/target-8.C: New test. + * testsuite/libgomp.c++/target-9.C: New test. + * testsuite/libgomp.c++/target-10.C: New test. + * testsuite/libgomp.c++/target-11.C: New test. + * testsuite/libgomp.c++/target-12.C: New test. + * testsuite/libgomp.c++/taskloop-1.C: New test. + * testsuite/libgomp.c++/taskloop-2.C: New test. + * testsuite/libgomp.c++/taskloop-3.C: New test. + * testsuite/libgomp.c++/taskloop-4.C: New test. + * testsuite/libgomp.c++/taskloop-5.C: New test. + * testsuite/libgomp.c++/taskloop-6.C: New test. + * testsuite/libgomp.c++/taskloop-7.C: New test. + * testsuite/libgomp.c++/taskloop-8.C: New test. + * testsuite/libgomp.c++/taskloop-9.C: New test. + * testsuite/libgomp.fortran/affinity1.f90: New test. + * testsuite/libgomp.fortran/affinity2.f90: New test. + +2015-10-13 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/67476 + * testsuite/libgomp.c/autopar-3.c: New test. + * testsuite/libgomp.c/autopar-4.c: New test. + * testsuite/libgomp.c/autopar-5.c: New test. + * testsuite/libgomp.c/autopar-6.c: New test. + * testsuite/libgomp.c/autopar-7.c: New test. + * testsuite/libgomp.c/autopar-8.c: New test. + +2015-10-12 James Norris <jnorris@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop + initializer. + +2015-10-09 David Malcolm <dmalcolm@redhat.com> + + * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp, + using load_gcc_lib. + +2015-10-02 Thomas Schwinge <thomas@codesourcery.com> + + * oacc-ptx.h: Remove file, moving its content into... + * config/nvptx/fortran.c: ... here... + * config/nvptx/oacc-init.c: ..., here... + * config/nvptx/oacc-parallel.c: ..., and here. + * config/nvptx/openacc.f90: New file. + * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h". + (link_ptx): Don't link in predefined bits of PTX code. + +2015-09-30 Nathan Sidwell <nathan@codesourcery.com> + Bernd Schmidt <bernds@codesourcery.com> + + * plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX. + (struct targ_ptx_obj): New. + (nvptx_tdata): Move earlier, change data format. + (link_ptx): Take targ_ptx_obj ptr and count. Allow multiple + objects. + (GOMP_OFFLOAD_load_image): Adjust. + +2015-09-30 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint. + * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise. + * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. + +2015-09-29 Nathan Sidwell <nathan@codesourcery.com> + + * oacc-init.c (acc_on_device): Force optimization level. + +2015-09-29 Nathan Sidwell <nathan@codesourcery.com> + + * plugin/plugin-nvptx.c (ARRAYSIZE): Delete. + (cuda_errlist): Delete. + (cuda_error): Reimplement. + +2015-09-28 Nathan Sidwell <nathan@codesourcery.com> + + * libgomp.h (acc_dispatch_t): Replace separate geometry args with + array. + * libgomp.map (GOACC_parallel_keyed): New. + * oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust + all callers. + (GOACC_parallel_keyed): New interface. Lose geometry arguments + and take keyed varargs list. Adjust call to exec_func. + (GOACC_parallel): Force host fallback. + * libgomp_g.h (GOACC_parallel): Remove. + (GOACC_parallel_keyed): Declare. + * plugin/plugin-nvptx.c (struct targ_fn_launch): New struct. + (stuct targ_gn_descriptor): Replace name field with launch field. + (nvptx_exec): Lose separate geometry args, take array. Process + dynamic dimensions and adjust. + (struct nvptx_tdata): Replace fn_names field with fn_descs. + (GOMP_OFFLOAD_load_image): Adjust for change in function table + data. + (GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension + passing. + * oacc-host.c (host_openacc_exec): Adjust for change in dimension + passing. + +2015-09-22 Chung-Lin Tang <cltang@codesourcery.com> + + PR libgomp/67141 + * oacc-int.h (goacc_host_init): Add declaration. + * oacc-host.c (goacc_host_init): Remove static and constructor attribute. + * oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end. + +2015-09-08 Aditya Kumar <hiraditya@msn.com> + Sebastian Pop <s.pop@samsung.com> + + * testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to + match o/p. + * testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same. + * testsuite/libgomp.graphite/force-parallel-4.c: Same. + * testsuite/libgomp.graphite/force-parallel-5.c: Same. + * testsuite/libgomp.graphite/force-parallel-7.c: Same. + * testsuite/libgomp.graphite/force-parallel-8.c: Same. + +2015-09-03 Jakub Jelinek <jakub@redhat.com> + + * configure.tgt: Add missing ;; in between nvptx and rtems + snippets. + +2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/posix/pool.h (gomp_adjust_thread_attr): New. + * config/rtems/pool.h (gomp_adjust_thread_attr): Likewise. + (gomp_thread_pool_reservoir): Add priority member. + * confi/rtems/proc.c (allocate_thread_pool_reservoir): Add + priority. + (parse_thread_pools): Likewise. + * team.c (gomp_team_start): Call configuration provided + gomp_adjust_thread_attr(). Destroy thread attributes if + necessary. + * libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS. + +2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/posix/pool.h: New. + * config/rtems/pool.h: Likewise. + * config/rtems/proc.c: Likewise. + * libgomp.h (gomp_thread_destructor): Declare. + * team.c: Include configuration provided "pool.h". + (gomp_get_thread_pool): Define in configuration. + (gomp_team_end): Call configuration defined + gomp_release_thread_pool(). + +2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * config/rtems/bar.c: New. + * config/rtems/bar.h: Likewise. + * config/rtems/mutex.c: Likewise. + * config/rtems/mutex.h: Likewise. + * config/rtems/sem.c: Likewise. + * config/rtems/sem.h: Likewise. + * configure.ac (*-*-rtems*): Check that Newlib provides a proper + <sys/lock.h> header file. + * configure.tgt (*-*-rtems*): Enable RTEMS configuration if + supported by Newlib. + * configure: Regenerate. + +2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * team.c (gomp_new_thread_pool): Delete and move content to ... + (gomp_get_thread_pool): ... new function. Allocate and + initialize thread pool on demand. + (get_last_team): Use gomp_get_thread_pool(). + (gomp_team_start): Delete thread pool initialization. + +2015-09-03 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65637 + * testsuite/libgomp.c/autopar-2.c: New test. + +2015-08-29 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/46193 + * testsuite/libgomp.c/pr46193.c: New test. + +2015-08-24 Nathan Sidwell <nathan@codesourcery.com> + + libgomp/ + * libgomp.map: Add 4.0.2 version. + * target.c (offload_image_descr): Add version field. + (gomp_load_image_to_device): Add version argument. Adjust plugin + call. Improve load mismatch diagnostic. + (gomp_unload_image_from_device): Add version argument. Adjust plugin + call. + (GOMP_offload_regster): Make stub function, move bulk to ... + (GOMP_offload_register_ver): ... here. Process version argument. + (GOMP_offload_unregister): Make stub function, move bulk to ... + (GOMP_offload_unregister_ver): ... here. Process version argument. + (gomp_init_device): Process version field. + (gomp_unload_device): Process version field. + (gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT + macros. Check plugin version. + * libgomp.h (gomp_device_descr): Add version function field. Adjust + loader and unloader types. + * oacc-host.c: Include gomp-constants.h. + (host_version): New. + (host_load_image, host_unload_image): Adjust. + (host_dispatch): Add host_version. + * plugin/plugin-nvptx.c: Include gomp-constants.h. + (GOMP_OFFLOAD_version): New. + (GOMP_OFFLOAD_load_image): Add version arg and check it. + (GOMP_OFFLOAD_unload_image): Likewise. + * plugin/plugin-host.c: Include gomp-constants.h. + (GOMP_OFFLOAD_version): New. + (GOMP_OFFLOAD_load_image): Add version arg. + (GOMP_OFFLOAD_unload_image): Likewise. + +2015-08-24 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65468 + * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test. + +2015-08-24 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65468 + * testsuite/libgomp.c/static-chunk-size-one.c: New test. + +2015-08-24 Joost VandeVondele <vondele@gnu.gcc.org> + + PR libgomp/66761 + PR libgomp/67303 + * iter.c (gomp_iter_dynamic_next): Employ an atomic load. + (gomp_iter_guided_next): Idem. + * iter_ull.c (gomp_iter_ull_dynamic_next): Idem. + (gomp_iter_ull_guided_next): Idem. + * config/linux/wait.h (do_spin): Idem. + +2015-08-10 Thomas Schwinge <thomas@codesourcery.com> + + * libgomp-plugin.h (enum offload_target_type): Remove + OFFLOAD_TARGET_TYPE_HOST_NONSHM. + * openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm. + * openacc.h (enum acc_device_t): Likewise. + * openacc_lib.h: Likewise. + * oacc-init.c (name_of_acc_device_t): Don't handle it. + (acc_on_device): Just use __builtin_acc_on_device. + * testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage + of acc_on_device builtin. + * plugin/plugin-host.h: Remove file. + * plugin/plugin-host.c: Likewise, but salvage some content into... + * oacc-host.c: ... this file. + * plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la. + * plugin/configfrag.ac (offload_targets): Don't add host_nonshm. + * Makefile.in: Regenerate. + * configure: Likewise. + * testsuite/lib/libgomp.exp + (check_effective_target_openacc_host_nonshm_selected): Remove. + * testsuite/libgomp.oacc-c++/c++.exp: Don't handle + ACC_DEVICE_TYPE=host_nonshm. + * testsuite/libgomp.oacc-c/c.exp: Likewise. + * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. + * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise. + +2015-08-10 Thomas Schwinge <thomas@codesourcery.com> + Jakub Jelinek <jakub@redhat.com> + + * config/nvptx/affinity.c: New file. + * config/nvptx/alloc.c: Likewise. + * config/nvptx/bar.c: Likewise. + * config/nvptx/barrier.c: Likewise. + * config/nvptx/critical.c: Likewise. + * config/nvptx/env.c: Likewise. + * config/nvptx/error.c: Likewise. + * config/nvptx/fortran.c: Likewise. + * config/nvptx/iter.c: Likewise. + * config/nvptx/iter_ull.c: Likewise. + * config/nvptx/libgomp-plugin.c: Likewise. + * config/nvptx/lock.c: Likewise. + * config/nvptx/loop.c: Likewise. + * config/nvptx/loop_ull.c: Likewise. + * config/nvptx/mutex.c: Likewise. + * config/nvptx/oacc-async.c: Likewise. + * config/nvptx/oacc-cuda.c: Likewise. + * config/nvptx/oacc-host.c: Likewise. + * config/nvptx/oacc-init.c: Likewise. + * config/nvptx/oacc-mem.c: Likewise. + * config/nvptx/oacc-parallel.c: Likewise. + * config/nvptx/oacc-plugin.c: Likewise. + * config/nvptx/omp-lock.h: Likewise. + * config/nvptx/ordered.c: Likewise. + * config/nvptx/parallel.c: Likewise. + * config/nvptx/proc.c: Likewise. + * config/nvptx/ptrlock.c: Likewise. + * config/nvptx/sections.c: Likewise. + * config/nvptx/sem.c: Likewise. + * config/nvptx/single.c: Likewise. + * config/nvptx/splay-tree.c: Likewise. + * config/nvptx/target.c: Likewise. + * config/nvptx/task.c: Likewise. + * config/nvptx/team.c: Likewise. + * config/nvptx/time.c: Likewise. + * config/nvptx/work.c: Likewise. + * configure.ac: Don't probe pthreads support for host nvptx*-*-*. + * configure: Regenerate. + * configure.tgt (config_path): Set to "nvptx" for target + nvptx*-*-*. + +2015-08-10 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file. + +2015-08-03 Nathan Sidwell <nathan@codesourcery.com> + + * plugin/plugin-nvptx.c: Don't include dlfcn.h. + (cuda_errlist): Constify. + (errmsg): Move into ... + (cuda_error): ... here. Make smaller. + (_XSTR, _STR): Delete. + (cuda_synames): Delete. + (verify_device_library): Delete. + (nvptx_init): Don't call it. + +2015-07-28 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/uns-outer-4.c: New test. + +2015-07-24 Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/libgomp.c/pr66714.c: New test. + +2015-07-22 Maxim Blumenthal <maxim.blumenthal@intel.com> + + PR libgomp/66950 + * testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45. + (fib_ref): New function. + (fib): Correct corner cases in the recursion. + (main): Replace the non-simd loop with fib_ref call. + * testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New + subroutine. + (fibonacci): Lower the parameter N to 30. Correct accordingly check + for the last array element value. Replace the non-simd loop with + fib_ref call. Remove redundant b_ref array. Remove the comparison + of the last array element with according Fibonacci sequence element. + (fib): Correct corner cases in the recursion. + +2015-07-21 Nathan Sidwell <nathan@codesourcery.com> + + * target.c (gomp_offload_image_to_device): Rename to ... + (gomp_load_image_to_device): ... here. + (GOMP_offload_register): Adjust call. + (gomp_init_device): Likewise. + (gomp_unload_image_from_device): New. Broken out of ... + (GOMP_offload_unregister): ... here. Call it. + (gomp_unload_device): New. + * libgomp.h (gomp_unload_device): Declare. + * oacc-init.c (acc_shutdown_1): Unload from device before deleting + mem maps. + +2015-07-20 Nathan Sidwell <nathan@codesourcery.com> + + * oacc-parallel.c (GOACC_parallel): Move variadic handling into + wait=-specific if. + (GOACC_enter_exit_data, GOACC_update): Use consistent num_waits + !=0 condition. + (goacc_waits): Move !num_waits handling to ... + (GOACC_wait): ... here, the only caller that might have zero waits. + + * plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later. + (struct ptx_image_data): Move earlier, add fns field. + (struct ptx_device): Add images and image_lock fields. + (ptx_images, ptx_image_lock): Delete. + (nvptx_open_device): Initialize images and image_lock fields. + (nvptx_close_device): Destroy image_lock. + (GOMP_OFFLOAD_load_image): Register image to device-specific fields. + (GOMP_OFFLOAD_unload_image): Unregister image from device-specific + fields. + +2015-07-17 Nathan Sidwell <nathan@codesourcery.com> + + * target.c (GOMP_offload_register): Use int for device type arg. + (GOMP_offload_unregister): Likewise. + + * target.c (struct_offload_image_descr): Constify host_table. + (gomp_offload_image_to_device): Likewise. + (GOMP_offload_register, GOMP_offload_unregister): Likewise. + + * libgomp.h (gomp_device_descr): Constify target data arguments. + * target.c (struct offload_image_descr): Constify target_data. + (gomp_offload_image_to_device): Likewise. + (GOMP_offload_register): Likewise. + (GOMP_offload_unrefister): Likewise. + * plugin/plugin-host.c (GOMP_OFFLOAD_load_image, + GOMP_OFFLOAD_unload_image): Constify target data. + * plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data. + (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise. + +2015-07-16 Nathan Sidwell <nathan@codesourcery.com> + + * plugin/plugin-nvptx.c (link_ptx): Constify string argument. + Workaround driver library const error. + (struct nvptx_tdata, nvptx_tdata_t): New. + (GOMP_OFFLOAD_load_image): Use struct for target_data's real + type. + +2015-07-15 Maxim Blumenthal <maxim.blumenthal@intel.com> + + * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type + of EPS parameter from integer to real. + * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change + type of EPS parameter from integer to real. + +2015-07-15 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * team.c (get_last_team): New. + (gomp_new_team): Recycle last non-nested team if possible. + (gomp_team_end): Move team work share list free lock destruction + to ... + (free_team): ... here. + +2015-07-14 Maxim Blumenthal <maxim.blumenthal@intel.com> + + * testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res + and ref from int to double. Replaced their comparison with + an inequality of their difference and EPS. + * testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the + comparison of pri and a reference number with an inequality of their + difference and EPS. + * testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced + the comparison of sum and sum_ref with an inequality of their + difference and EPS. + * testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace + the comparison of pri and a reference number with an inequality of + their difference and EPS. + +2015-07-13 Maxim Blumenthal <maxim.blumenthal@intel.com> + + * testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to... + * testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this. + * testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to... + * testsuite/libgomp.c++/examples-4/target_data-5.C: ...this. + * testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/array_sections-3.c: ...this. + * testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to... + * testsuite/libgomp.c/examples-4/array_sections-4.c: ...this. + * testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/async_target-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/async_target-2.c: ...this. + (vec_mult_ref): Remove v1 and v2 arguments, turn them into local + variables. + (vec_mult): Likewise. Add #pragma omp taskwait. + (main): Adjust caller. + * testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/declare_target-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/declare_target-3.c: ...this. + * testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to... + * testsuite/libgomp.c/examples-4/declare_target-4.c: ...this. + * testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to... + * testsuite/libgomp.c/examples-4/declare_target-5.c: ...this. + * testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/device-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/device-2.c: ...this. + * testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/device-3.c: ...this. + * testsuite/libgomp.c/examples-4/simd-1.c: New file. + * testsuite/libgomp.c/examples-4/simd-2.c: New file. + * testsuite/libgomp.c/examples-4/simd-3.c: New file. + * testsuite/libgomp.c/examples-4/simd-4.c: New file. + * testsuite/libgomp.c/examples-4/simd-5.c: New file. + * testsuite/libgomp.c/examples-4/simd-6.c: New file. + * testsuite/libgomp.c/examples-4/simd-7.c: New file. + * testsuite/libgomp.c/examples-4/simd-8.c: New file. + * testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/target-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/target-2.c: ...this. + * testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/target-3.c: ...this. + * testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to... + * testsuite/libgomp.c/examples-4/target-4.c: ...this. + * testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to... + * testsuite/libgomp.c/examples-4/target-5.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-2.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-3.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-4.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-6.c: ...this. + * testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_data-7.c: ...this. + * testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_update-1.c: ...this. + * testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/target_update-2.c: ...this. + * testsuite/libgomp.c/examples-4/task_dep-1.c: New file. + * testsuite/libgomp.c/examples-4/task_dep-2.c: New file. + * testsuite/libgomp.c/examples-4/task_dep-3.c: New file. + * testsuite/libgomp.c/examples-4/task_dep-4.c: New file. + * testsuite/libgomp.c/examples-4/task_dep-5.c: New file. + * testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to... + * testsuite/libgomp.c/examples-4/teams-2.c: ...this. + * testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to... + * testsuite/libgomp.c/examples-4/teams-3.c: ...this. + * testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to... + * testsuite/libgomp.c/examples-4/teams-4.c: ...this. + * testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to... + * testsuite/libgomp.c/examples-4/teams-5.c: ...this. + * testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to... + * testsuite/libgomp.c/examples-4/teams-6.c: ...this. + * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this. + (vec_mult): Add !$omp taskwait. + * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/device-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/device-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/device-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/simd-1.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-2.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-3.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-4.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-5.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-6.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-7.f90: New file. + * testsuite/libgomp.fortran/examples-4/simd-8.f90: New file. + * testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target-4.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target-5.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file. + * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file. + * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file. + * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file. + * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file. + * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this. + * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to... + * testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this. + +2015-07-10 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test. + * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test. + +2015-07-08 Thomas Schwinge <thomas@codesourcery.com> + + PR libgomp/65099 + * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not + in a 64-bit configuration. + * testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia + offloading testing if no such device is available. + * testsuite/libgomp.oacc-c/c.exp: Likewise. + * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. + +2015-07-08 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix + second call to f. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same. + +2015-07-07 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/66642 + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low + iteration count case. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New + function, factor out of ... + (main): ... here. Test low iteration count case. + +2015-07-06 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * libgomp.h (gomp_thread_pool): Comment last_team field. + +2015-07-02 Uros Bizjak <ubizjak@gmail.com> + + * testsuite/libgomp.c++/pr66702-1.C: Require + vect_simd_clones effective target. + * testsuite/libgomp.c++/pr66702-2.C: Ditto. + +2015-06-30 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not + already set. Use DEFAULT_CFLAGS in dg-runtest. + * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options + "-O2". + +2015-06-30 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not + already set. Use DEFAULT_CFLAGS in dg-runtest. + * testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp". + * testsuite/libgomp.c++/pr64824.C: Same. + * testsuite/libgomp.c++/pr64868.C: Same. + * testsuite/libgomp.c++/pr66199-1.C: Same. + * testsuite/libgomp.c++/pr66199-2.C: Same. + * testsuite/libgomp.c++/target-2.C: Same. + * testsuite/libgomp.c++/for-7.C: Use dg-additional-options for + -std=<standard> option. + * testsuite/libgomp.c++/udr-11.C: Same. + * testsuite/libgomp.c++/udr-12.C: Same. + * testsuite/libgomp.c++/udr-13.C: Same. + * testsuite/libgomp.c++/udr-14.C: Same. + * testsuite/libgomp.c++/udr-15.C: Same. + * testsuite/libgomp.c++/udr-16.C: Same. + * testsuite/libgomp.c++/udr-17.C: Same. + * testsuite/libgomp.c++/udr-18.C: Same. + * testsuite/libgomp.c++/udr-19.C: Same. + * testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2". + * testsuite/libgomp.c++/simd-1.C: Same. + * testsuite/libgomp.c++/simd-2.C: Same. + * testsuite/libgomp.c++/simd-3.C: Same. + * testsuite/libgomp.c++/simd-4.C: Same. + * testsuite/libgomp.c++/simd-5.C: Same. + * testsuite/libgomp.c++/simd-6.C: Same. + * testsuite/libgomp.c++/simd-7.C: Same. + * testsuite/libgomp.c++/simd-8.C: Same. + * testsuite/libgomp.c++/simd-9.C: Same. + * testsuite/libgomp.c++/simd10.C: Same. + * testsuite/libgomp.c++/simd11.C: Same. + * testsuite/libgomp.c++/simd12.C: Same. + * testsuite/libgomp.c++/simd13.C: Same. + +2015-06-30 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/66702 + * testsuite/libgomp.c++/pr66702-1.C: New test. + * testsuite/libgomp.c++/pr66702-2.C: New test. + +2015-06-30 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment. + +2015-06-30 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/66652 + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite + using restrict pointers. + (main): Add arguments to calls to f. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same. + +2015-06-23 Andreas Tobler <andreast@gcc.gnu.org> + + * configure.ac: Fix check for header <sys/sysctl.h>. + * configure: Regenerate. + * config.h.in: Likewise. + +2015-06-23 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use + abort. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same. + +2015-06-19 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for + acc_device_nvidia. + + PR libgomp/66518 + * testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + +2015-06-15 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2". Use + dg-additional-options for any remaining options. + * testsuite/libgomp.c/atomic-2.c: Same. + * testsuite/libgomp.c/atomic-4.c: Same. + * testsuite/libgomp.c/atomic-5.c: Same. + * testsuite/libgomp.c/atomic-6.c: Same. + * testsuite/libgomp.c/autopar-1.c: Same. + * testsuite/libgomp.c/copyin-1.c: Same. + * testsuite/libgomp.c/copyin-2.c: Same. + * testsuite/libgomp.c/copyin-3.c: Same. + * testsuite/libgomp.c/examples-4/e.53.5.c: Same. + * testsuite/libgomp.c/nestedfn-5.c: Same. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same. + * testsuite/libgomp.c/pr32362-1.c: Same. + * testsuite/libgomp.c/pr32362-2.c: Same. + * testsuite/libgomp.c/pr32362-3.c: Same. + * testsuite/libgomp.c/pr39591-1.c: Same. + * testsuite/libgomp.c/pr39591-2.c: Same. + * testsuite/libgomp.c/pr39591-3.c: Same. + * testsuite/libgomp.c/pr58392.c: Same. + * testsuite/libgomp.c/pr58756.c: Same. + * testsuite/libgomp.c/simd-1.c: Same. + * testsuite/libgomp.c/simd-10.c: Same. + * testsuite/libgomp.c/simd-11.c: Same. + * testsuite/libgomp.c/simd-12.c: Same. + * testsuite/libgomp.c/simd-13.c: Same. + * testsuite/libgomp.c/simd-14.c: Same. + * testsuite/libgomp.c/simd-15.c: Same. + * testsuite/libgomp.c/simd-2.c: Same. + * testsuite/libgomp.c/simd-3.c: Same. + * testsuite/libgomp.c/simd-4.c: Same. + * testsuite/libgomp.c/simd-5.c: Same. + * testsuite/libgomp.c/simd-6.c: Same. + * testsuite/libgomp.c/simd-7.c: Same. + * testsuite/libgomp.c/simd-8.c: Same. + * testsuite/libgomp.c/simd-9.c: Same. + +2015-06-15 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/pr35625.c: Fix typo. + +2015-06-15 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting + in dg-options. + * testsuite/libgomp.c/atomic-3.c: Same. + * testsuite/libgomp.c/debug-1.c: Same. + * testsuite/libgomp.c/nqueens-1.c: Same. + * testsuite/libgomp.c/pr26171.c: Same. + * testsuite/libgomp.c/pr48591.c: Same. + * testsuite/libgomp.c/pr64824.c: Same. + * testsuite/libgomp.c/pr64868.c: Same. + * testsuite/libgomp.c/pr66133.c: Same. + * testsuite/libgomp.c/pr66199-1.c: Same. + * testsuite/libgomp.c/pr66199-2.c: Same. + * testsuite/libgomp.c/target-8.c: Same. + +2015-06-15 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for + -std={gnu99,c99}. + * testsuite/libgomp.c/for-1.c: Same. + * testsuite/libgomp.c/for-2.c: Same. + * testsuite/libgomp.c/for-3.c: Same. + * testsuite/libgomp.c/pr35625.c: Same. + * testsuite/libgomp.c/pr39154.c: Same. + * testsuite/libgomp.c/simd-16.c: Same. + * testsuite/libgomp.c/simd-17.c: Same. + +2015-06-13 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test. + +2015-06-13 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment. + (N): Define. + (main): Use N instead of hardcoded constants. + +2015-06-05 Tom de Vries <tom@codesourcery.com> + + merge from gomp4 branch: + 2015-05-28 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65443 + * testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test. + * testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test. + * testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test. + +2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * testsuite/libgomp.graphite/bounds.c: Adjust for + cleanup-tree-dump removal. + * testsuite/libgomp.graphite/force-parallel-1.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-3.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-4.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-5.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-6.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-9.c: Likewise. + * testsuite/libgomp.graphite/pr41118.c: Likewise. + +2015-05-28 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function. + (futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0. + (futex_wake) [!__x86_64__]: Ditto. + +2015-05-28 Julian Brown <julian@codesourcery.com> + + * oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update + function comment. Only call gomp_fatal if new argument is true. + (acc_dev_num_out_of_range): New function. + (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call + acc_dev_num_out_of_range as appropriate. + (acc_get_num_devices, acc_set_device_type, acc_get_device_type) + (acc_get_device_num, acc_set_device_num): Update calls to + resolve_device. + * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test + output. + +2015-05-28 Julian Brown <julian@codesourcery.com> + + PR libgomp/65742 + * oacc-init.c (plugin/plugin-host.h): Include. + (acc_on_device): Check whether we're in an offloaded region for + host_nonshm + plugin. Don't use __builtin_acc_on_device. + * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set + nonshm_exec flag in thread-local data. + (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local + data for host_nonshm plugin. + (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data + for host_nonshm plugin. + * plugin/plugin-host.h: New. + +2015-05-27 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int. + +2015-05-27 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake): + Declare as int. + (FUTEX_PRIVATE_FLAG): Remove L suffix. + * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake): + Declare as int. + +2015-05-27 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function. + +2015-05-27 Chung-Lin Tang <cltang@codesourcery.com> + + * target.c (gomp_map_pointer): New function abstracting out + GOMP_MAP_POINTER handling. + (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use + gomp_map_pointer(). + +2015-05-19 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/66199 + * testsuite/libgomp.c/pr66199-1.c: New test. + * testsuite/libgomp.c/pr66199-2.c: New test. + * testsuite/libgomp.c++/pr66199-1.C: New test. + * testsuite/libgomp.c++/pr66199-2.C: New test. + * testsuite/libgomp.fortran/pr66199-1.f90: New test. + * testsuite/libgomp.fortran/pr66199-2.f90: New test. + +2015-05-19 Julian Brown <julian@codesourcery.com> + + * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero + on cuInit failure. + +2015-05-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/66133 + * testsuite/libgomp.c/pr66133.c: New test. + +2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com> + + * Makefile.in: Regenerated with automake-1.11.6. + * aclocal.m4: Likewise. + * config.h.in: Likewise. + * configure: Likewise. + * testsuite/Makefile.in: Likewise. + +2015-05-08 Jason Merrill <jason@redhat.com> + + * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use + _Complex. + + * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax. + +2015-05-06 Julian Brown <julian@codesourcery.com> + + * oacc-init.c (acc_device_lock): Add explanatory comment. + (resolve_device): Add comment about locking requirement. + (acc_init_1, acc_shutdown_1): Likewise. Add locking around + gomp_init_device and gomp_fini_device calls. + (acc_get_num_devices, acc_set_device_type, acc_get_device_type) + (acc_get_device_num, acc_set_device_num): Add locking around + resolve_device and gomp_init_device calls. + +2015-05-06 Julian Brown <julian@codesourcery.com> + + * oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for + goacc_thread_lock on error paths. + * oacc-mem.c (lookup_host): Remove locking from function. Note + locking requirement for caller in function comment. + (lookup_dev): Likewise. + (acc_free, acc_deviceptr, acc_hostptr, acc_is_present) + (acc_map_data, acc_unmap_data, present_create_copy, delete_copyout) + (update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer): + Add locking. + +2015-05-05 Thomas Schwinge <thomas@codesourcery.com> + + PR testsuite/65205 + PR libgomp/65993 + * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output, + don't expect "0x" prefix for "%p" format specifier, don't expect + "(nil)" for NULL pointer. + * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More + accurately specify what we're looking for. + * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. + +2015-04-30 James Norris <jnorris@codesourcery.com> + + PR testsuite/65205 + * testsuite/lib/libgomp.exp + (check_effective_target_openacc_host_selected) + (check_effective_target_openacc_host_nonshm_selected): New + procedures. + * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of + dg-shouldfail. + * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise. + +2015-04-08 Julian Brown <julian@codesourcery.com> + + * libgomp.h (target_mem_desc: Remove mem_map field. + (acc_dispatch_t): Remove open_device_func, close_device_func, + get_device_num_func, set_device_num_func, target_data members. + Change create_thread_data_func argument to device number instead of + generic pointer. + * oacc-async.c (assert.h): Include. + (acc_async_test, acc_async_test_all, acc_wait, acc_wait_async) + (acc_wait_all, acc_wait_all_async): Use current host thread's + active device, not base_dev. + * oacc-cuda.c (acc_get_current_cuda_device) + (acc_get_current_cuda_context, acc_get_cuda_stream) + (acc_set_cuda_stream): Likewise. + * oacc-host.c (host_dispatch): Don't set open_device_func, + close_device_func, get_device_num_func or set_device_num_func. + * oacc-init.c (base_dev, init_key): Remove. + (cached_base_dev): New. + (name_of_acc_device_t): New. + (acc_init_1): Initialise default-numbered device, not zeroth. + (acc_shutdown_1): Close all devices of a given type. + (goacc_destroy_thread): Don't use base_dev. + (lazy_open, lazy_init, lazy_init_and_open): Remove. + (goacc_attach_host_thread_to_device): New. + (acc_init): Reimplement with goacc_attach_host_thread_to_device. + (acc_get_num_devices): Don't use base_dev. + (acc_set_device_type): Reimplement. + (acc_get_device_type): Don't use base_dev. + (acc_get_device_num): Tweak logic. + (acc_set_device_num): Likewise. + (acc_on_device): Use acc_get_device_type. + (goacc_runtime_initialize): Initialize cached_base_dev not base_dev. + (goacc_lazy_initialize): Reimplement with acc_init and + goacc_attach_host_thread_to_device. + * oacc-int.h (goacc_thread): Add base_dev field. + (base_dev): Remove extern declaration. + (goacc_attach_host_thread_to_device): Add prototype. + * oacc-mem.c (acc_malloc): Use current thread's device instead of + base_dev. + (acc_free): Likewise. + (acc_memcpy_to_device): Likewise. + (acc_memcpy_from_device): Likewise. + * oacc-parallel.c (select_acc_device): Remove. Replace calls with + goacc_lazy_initialize (throughout). + (GOACC_parallel): Use tgt_offset to locate target functions. + * target.c (gomp_map_vars): Don't set tgt->mem_map. + (gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map. + (gomp_load_plugin_for_device): Remove open_device, close_device, + get_device_num, set_device_num openacc hook initialisation. Don't set + openacc.target_data. + * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device) + (GOMP_OFFLOAD_openacc_close_device) + (GOMP_OFFLOAD_openacc_get_device_num) + (GOMP_OFFLOAD_openacc_set_device_num): Remove. + (GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument + to int. + * plugin/plugin-nvptx.c (ptx_inited): Remove. + (instantiated_devices, ptx_dev_lock): New. + (struct ptx_image_data): New. + (ptx_devices, ptx_images, ptx_image_lock): New. + (fini_streams_for_device): Reorder cuStreamDestroy call. + (nvptx_get_num_devices): Remove forward declaration. + (nvptx_init): Change return type to bool. + (nvptx_fini): Remove. + (nvptx_attach_host_thread_to_device): New. + (nvptx_open_device): Return struct ptx_device* instead of void*. + (nvptx_close_device): Change argument type to struct ptx_device*, + return type to void. + (nvptx_get_num_devices): Use instantiated_devices not ptx_inited. + (kernel_target_data, kernel_host_table): Remove static globals. + (GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove. + (GOMP_OFFLOAD_init_device): Reimplement. + (GOMP_OFFLOAD_fini_device): Likewise. + (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New. + (GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host) + (GOMP_OFFLOAD_host2dev): Use ORD argument. + (GOMP_OFFLOAD_openacc_open_device) + (GOMP_OFFLOAD_openacc_close_device) + (GOMP_OFFLOAD_openacc_set_device_num) + (GOMP_OFFLOAD_openacc_get_device_num): Remove. + (GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int + (device number). + + testsuite/ + * libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test. + +2015-04-06 Ilya Verbin <ilya.verbin@intel.com> + + * libgomp-plugin.h (struct mapping_table): Replace with addr_pair. + * libgomp.h (struct gomp_memory_mapping): Remove. + (struct target_mem_desc): Change type of mem_map from + gomp_memory_mapping * to splay_tree_s *. + (struct gomp_device_descr): Remove register_image_func, get_table_func. + Add load_image_func, unload_image_func. + Change type of mem_map from gomp_memory_mapping to splay_tree_s. + Remove offload_regions_registered. + (gomp_init_tables): Remove. + (gomp_free_memmap): Change type of argument from gomp_memory_mapping * + to splay_tree_s *. + * libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister. + * oacc-host.c (host_dispatch): Do not initialize register_image_func, + get_table_func, mem_map.is_initialized, mem_map.splay_tree.root, + offload_regions_registered. + Initialize load_image_func, unload_image_func, mem_map.root. + (goacc_host_init): Do not initialize host_dispatch.mem_map.lock. + * oacc-init.c (lazy_open): Don't call gomp_init_tables. + (acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's. + * oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of + gomp_memory_mapping *. Use dev's lock and splay_tree. + (lookup_dev): Use dev's lock. + (acc_deviceptr): Pass dev to lookup_host instead of mem_map. + (acc_is_present): Likewise. + (acc_map_data): Likewise. + (acc_unmap_data): Likewise. Use dev's lock. + (present_create_copy): Likewise. + (delete_copyout): Pass dev to lookup_host instead of mem_map. + (update_dev_host): Likewise. + (gomp_acc_remove_pointer): Likewise. Use dev's lock. + * oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree. + * plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove. + (GOMP_OFFLOAD_get_table): Remove + (GOMP_OFFLOAD_load_image): New function. + (GOMP_OFFLOAD_unload_image): New function. + * target.c (register_lock): New mutex for offload image registration. + (num_devices): Do not guard with PLUGIN_SUPPORT. + (gomp_realloc_unlock): New static function. + (gomp_map_vars_existing): Add device descriptor argument. Unlock mutex + before gomp_fatal. + (gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's. + Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal. + (gomp_copy_from_async): Use dev's lock and splay_tree instead of + mem_map's. + (gomp_unmap_vars): Likewise. + (gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and + splay_tree instead of mm's. Unlock mutex before gomp_fatal. + (gomp_offload_image_to_device): New static function. + (GOMP_offload_register): Add mutex lock. + Call gomp_offload_image_to_device for all initialized devices. + Replace gomp_realloc with gomp_realloc_unlock. + (GOMP_offload_unregister): New function. + (gomp_init_tables): Replace with gomp_init_device. Replace a call to + get_table_func from the plugin with calls to init_device_func and + gomp_offload_image_to_device. + (gomp_free_memmap): Change type of argument from gomp_memory_mapping * + to splay_tree_s *. + (GOMP_target): Do not call gomp_init_tables. Use dev's lock and + splay_tree instead of mem_map's. Unlock mutex before gomp_fatal. + (GOMP_target_data): Do not call gomp_init_tables. + (GOMP_target_update): Likewise. Remove argument from gomp_update. + (gomp_load_plugin_for_device): Replace register_image and get_table + with load_image and unload_image in DLSYM (). + (gomp_register_images_for_device): Remove function. + (gomp_target_init): Do not initialize current_device.mem_map.*, + current_device.offload_regions_registered. + Remove call to gomp_register_images_for_device. + Do not free offload_images and num_offload_images. + +2015-03-30 Jakub Jelinek <jakub@redhat.com> + + PR fortran/65597 + * testsuite/libgomp.fortran/pr65597.f90: New test. + +2015-03-27 Tom de Vries <tom@codesourcery.com> + + PR testsuite/65594 + * testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare. + (init, check): New function. + (foo): Change return type to void. + (main): Call init and check. + +2015-03-27 Tom de Vries <tom@codesourcery.com> + + PR testsuite/65594 + * testsuite/libgomp.graphite/force-parallel-6.c (M): Define. + (foo): Use M for non-inner loops to scale down test-case. + +2015-03-25 Kai Tietz <ktietz@redhat.com> + + PR libgomp/64972 + * oacc-parallel.c (GOACC_parallel): Use PRIu64 if available. + (GOACC_data_start): Likewise. + * target.c (gomp_map_vars): Likewise. + +2015-03-21 John David Anglin <danglin@gcc.gnu.org> + + * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on + hppa*-*-hpux*. + +2015-03-19 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/target-10.c: New test. + * testsuite/libgomp.c++/target-4.C: New test. + +2015-03-13 Ilya Verbin <ilya.verbin@intel.com> + + * testsuite/libgomp.fortran/declare-target-1.f90: New test. + * testsuite/libgomp.fortran/declare-target-2.f90: New file. + +2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * configure.tgt (*-*-rtems*): Use local-exec TLS model. + * configure.ac (*-*-rtems*): Assume Pthread is supported. + (pthread.h): Check for this header file. + * configure: Regenerate. + +2015-02-25 Tom de Vries <tom@codesourcery.com> + + * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA) + (check_reduction_op, check_reduction_macro, max, min): + Declare. + (test_reductions_int, test_reductions_minmax, test_reductions_bool): New + function. + (main): Use new functions. + +2015-02-18 Ilya Tocar <ilya.tocar@intel.com> + + * target.c (gomp_load_plugin_for_device): Use const char * instead of + char * for variables holding dlerror return values. + (DLSYM_OPT): Ditto. + +2015-02-17 Thomas Schwinge <thomas@codesourcery.com> + + * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo. + +2015-02-17 Thomas Schwinge <thomas@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid, + GOACC_ctaid, and GOACC_nctaid routines. + +2015-02-11 Jakub Jelinek <jakub@redhat.com> + + PR c/64824 + * testsuite/libgomp.c/atomic-18.c: New test. + * testsuite/libgomp.c++/atomic-16.C: New test. + +2015-02-04 Jakub Jelinek <jakub@redhat.com> + + PR c/64824 + PR c/64868 + * testsuite/libgomp.c/pr64824.c: New test. + * testsuite/libgomp.c/pr64868.c: New test. + * testsuite/libgomp.c++/pr64824.C: New test. + * testsuite/libgomp.c++/pr64868.C: New test. + +2015-02-01 David Edelsohn <dje.gcc@gmail.com> + + PR libgomp/64635 + * configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h. + Link with -lpthread. + * config/aix/plugin-suffix.h: Delete. + +2015-01-28 Jack Howarth <howarth.at.gcc@gmail.com> + + PR libgomp/64635 + * configure.tgt (*-*-aix*): Use config_path "aix posix". + (*-*-darwin*): Use config_path "bsd darwin posix". + (*-*-hpux*): Use config_path "hpux posix". + * target.c: Add include of plugin-suffix.h and use + SONAME_SUFFIX macro. + * config/aix/plugin-suffix.h: New file. + * config/darwin/plugin-suffix.h: New file. + * config/hpux/plugin-suffix.h: New file. + * config/posix/plugin-suffix.h: New file. + +2015-01-23 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/64734 + * libgomp.c/pr64734.c: New test. + +2015-01-23 Tom de Vries <tom@codesourcery.com> + + PR libgomp/64672 + * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test. + +2015-01-23 Tom de Vries <tom@codesourcery.com> + + PR libgomp/64707 + * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to + dg-options. + +2015-01-19 Thomas Schwinge <thomas@codesourcery.com> + + PR libgomp/64625 + * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data) + (GOACC_parallel, GOACC_update): Remove const_void *offload_table + formal parameter. Update all users. + * target.c (GOMP_target, GOMP_target_data, GOMP_target_update): + Document unused formal parameter. + +2015-01-16 Thomas Schwinge <thomas@codesourcery.com> + + * oacc-parallel.c: Don't include <alloca.h>. + (GOACC_parallel): Use gomp_alloca instead of alloca. + +2015-01-16 Gerald Pfeifer <gerald@pfeifer.com> + + * target.c (num_devices): Guard with PLUGIN_SUPPORT. + +2015-01-15 Thomas Schwinge <thomas@codesourcery.com> + James Norris <jnorris@codesourcery.com> + Tom de Vries <tom@codesourcery.com> + Julian Brown <julian@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + Nathan Sidwell <nathan@codesourcery.com> + Tobias Burnus <burnus@net-b.de> + + * Makefile.am (search_path): Add $(top_srcdir)/../include. + (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c, + oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c, + oacc-async.c, oacc-plugin.c, oacc-cuda.c. + [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90. + Include $(top_srcdir)/plugin/Makefrag.am. + (nodist_libsubinclude_HEADERS): Add openacc.h. + [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h, + openacc.f90, openacc.mod, openacc_kinds.mod. + (omp_lib.mod): Generalize into... + (%.mod): ... this new rule. + (openacc_kinds.mod, openacc.mod): New rules. + * plugin/configfrag.ac: New file. + * configure.ac: Move plugin/offloading support into it. Include + it. Instantiate testsuite/libgomp-test-support.pt.exp. + * plugin/Makefrag.am: New file. + * testsuite/Makefile.am (OFFLOAD_TARGETS) + (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't + export. + (libgomp-test-support.exp): New rule. + (all-local): Depend on it. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + * config.h.in: Likewise. + * configure: Likewise. + * configure.tgt: Harden shell syntax. + * env.c: Include "oacc-int.h". + (parse_acc_device_type): New function. + (gomp_debug_var, goacc_device_type, goacc_device_num): New + variables. + (initialize_env): Initialize those. Call + goacc_runtime_initialize. + * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions. + (gomp_fatal): Call gomp_vfatal. + * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>. + (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug) + (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once) + (splay_tree_node, splay_tree, splay_tree_key) + (struct target_mem_desc, struct splay_tree_key_s) + (struct gomp_memory_mapping, struct acc_dispatch_t) + (struct gomp_device_descr, gomp_acc_insert_pointer) + (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async) + (gomp_unmap_vars, gomp_init_device, gomp_init_tables) + (gomp_free_memmap, gomp_fini_device): New declarations. + (gomp_vdebug, gomp_debug): New macros. + Include "splay-tree.h". + * libgomp.map (OACC_2.0): New symbol version. Use for + acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type, + acc_set_device_type_h_, acc_get_device_type, + acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_, + acc_get_device_num, acc_get_device_num_h_, acc_async_test, + acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_, + acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_, + acc_wait_all, acc_wait_all_h_, acc_wait_all_async, + acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown, + acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc, + acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_, + acc_copyin_array_h_, acc_present_or_copyin, + acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_, + acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_, + acc_create_64_h_, acc_create_array_h_, acc_present_or_create, + acc_present_or_create_32_h_, acc_present_or_create_64_h_, + acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_, + acc_copyout_64_h_, acc_copyout_array_h_, acc_delete, + acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_, + acc_update_device, acc_update_device_32_h_, + acc_update_device_64_h_, acc_update_device_array_h_, + acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_, + acc_update_self_array_h_, acc_map_data, acc_unmap_data, + acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_, + acc_is_present_64_h_, acc_is_present_array_h_, + acc_memcpy_to_device, acc_memcpy_from_device, + acc_get_current_cuda_device, acc_get_current_cuda_context, + acc_get_cuda_stream, acc_set_cuda_stream. + (GOACC_2.0): New symbol version. Use for GOACC_data_end, + GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel, + GOACC_update, GOACC_wait, GOACC_get_thread_num, + GOACC_get_num_threads. + (GOMP_PLUGIN_1.0): New symbol version. Use for + GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared, + GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error, + GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars, + GOMP_PLUGIN_acc_thread. + * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG + environment variable. + * libgomp_g.h (GOACC_data_start, GOACC_data_end) + (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait) + (GOACC_get_num_threads, GOACC_get_thread_num): New declarations. + * splay-tree.h (splay_tree_lookup, splay_tree_insert) + (splay_tree_remove): New declarations. + (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert) + (splay_tree_remove, splay_tree_lookup): Move into... + * splay-tree.c: ... this new file. + * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>. + (splay_tree_node, splay_tree, splay_tree_key) + (struct target_mem_desc, struct splay_tree_key_s) + (struct gomp_device_descr): Don't declare. + (num_devices_openmp): New variable. + (gomp_get_num_devices ): Use it. + (gomp_init_targets_once): New function. + (gomp_get_num_devices ): Use it. + (get_kind, gomp_copy_from_async, gomp_free_memmap) + (gomp_fini_device, gomp_register_image_for_device): New functions. + (gomp_map_vars): Add devaddrs parameter. + (gomp_update): Add mm parameter. + (gomp_init_device): Move most of it into... + (gomp_init_tables): ... this new function. + (gomp_register_images_for_device): Remove function. + (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device): + Make them hidden instead of static. + (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars) + (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data) + (GOMP_target_end_data, GOMP_target_update) + (gomp_load_plugin_for_device, gomp_target_init): Update for + OpenACC changes. + * oacc-async.c: New file. + * oacc-cuda.c: Likewise. + * oacc-host.c: Likewise. + * oacc-init.c: Likewise. + * oacc-int.h: Likewise. + * oacc-mem.c: Likewise. + * oacc-parallel.c: Likewise. + * oacc-plugin.c: Likewise. + * oacc-plugin.h: Likewise. + * oacc-ptx.h: Likewise. + * openacc.f90: Likewise. + * openacc.h: Likewise. + * openacc_lib.h: Likewise. + * plugin/plugin-host.c: Likewise. + * plugin/plugin-nvptx.c: Likewise. + * libgomp-plugin.c: Likewise. + * libgomp-plugin.h: Likewise. + * libgomp_target.h: Remove file after merging content into the + former file. Update all users. + * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp. + (offload_targets_s, offload_targets_s_openacc): New variables. + (check_effective_target_openacc_nvidia_accel_present) + (check_effective_target_openacc_nvidia_accel_selected): New + procedures. + (libgomp_init): Update for OpenACC changes. + * testsuite/libgomp-test-support.exp.in: New file. + * testsuite/libgomp.oacc-c++/c++.exp: Likewise. + * testsuite/libgomp.oacc-c/c.exp: Likewise. + * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. + * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: + Likewise. + * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise. + * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise. + * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise. + * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise. + * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise. + * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise. + * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise. + * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. + * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise. + * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise. + * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise. + * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise. + * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise. + * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise. + * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise. + * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise. + * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise. + * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise. + * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise. + * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise. + +2015-01-10 Thomas Schwinge <thomas@codesourcery.com> + Julian Brown <julian@codesourcery.com> + David Malcolm <dmalcolm@redhat.com> + + * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library" + to "GNU Offloading and Multi Processing Runtime Library". Change + all users. + * configure: Regenerate. + * libgomp.texi: Update. + +2015-01-08 Thomas Schwinge <thomas@codesourcery.com> + + * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add + "$tgt_dir/lib32". + * configure: Regenerate. + + * testsuite/lib/libgomp.exp (libgomp_init): Correctly match + "intelmic" in $offload_targets. + +2015-01-05 Jakub Jelinek <jakub@redhat.com> + + Update copyright years. + + * libgomp.texi: Bump @copying's copyright year. + +2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * testsuite/lib/libgomp.exp: Load target-utils.exp. + Move load of target-supportes.exp earlier. + +2014-12-10 Ilya Verbin <ilya.verbin@intel.com> + + * testsuite/libgomp.c/target-9.c: New test. + +2014-12-09 Varvara Rainchik <varvara.rainchik@intel.com> + + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac: Add GCC_CHECK_EMUTLS. + * libgomp.h: Add check for USE_EMUTLS: this case + is equal to HAVE_TLS. + * team.c: Likewise. + +2014-12-03 Uros Bizjak <ubizjak@gmail.com> + + * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic. + +2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com> + Ilya Verbin <ilya.verbin@intel.com> + + * testsuite/libgomp.c/target-critical-1.c: New test. + +2014-11-26 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20 + to dg-options unless expensive testing is on. + (TESTITERS): Define to N if not defined. + (main): Use TESTITERS instead of N. + * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from + dg-additional-options depending on whether expensive testing is on. + * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod): + Decrease N to 100000 and CHUNKSZ to 10000. + +2014-11-24 Jakub Jelinek <jakub@redhat.com> + + PR fortran/63938 + * testsuite/libgomp.fortran/pr63938-1.f90: New test. + * testsuite/libgomp.fortran/pr63938-2.f90: New test. + +2014-11-21 Steve Ellcey <sellcey@imgtec.com> + + * config/linux/mips/futex.h (SYS_futex): Define if not already done. + +2014-11-21 H.J. Lu <hongjiu.lu@intel.com> + + PR bootstrap/63784 + * configure: Regenerated. + +2014-11-19 Uros Bizjak <ubizjak@gmail.com> + + * testsuite/libgomp.c/examples-4/e.53.5.c: Require + vect_simd_clones effective target. + * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto. + +2014-11-14 Jakub Jelinek <jakub@redhat.com> + + * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead + of 32 as block_size. + * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8 + instead of 32 as block_size. + +2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com> + Ilya Verbin <ilya.verbin@intel.com> + + * Makefile.in: Regenerate. + * configure: Regenerate. + * configure.ac: Set up offload_additional_options, + offload_additional_lib_paths and offload_targets. + * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS, + OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS. + * testsuite/Makefile.in: Regenerate. + * testsuite/lib/libgomp.exp (libgomp_init): Append + offload_additional_lib_paths to LD_LIBRARY_PATH. Append + offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic + build directory to LD_LIBRARY_PATH for intelmic offload targets. + +2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com> + Ilya Verbin <ilya.verbin@intel.com> + Kirill Yukhin <kirill.yukhin@intel.com> + Ilya Tocar <ilya.tocar@intel.com> + + * testsuite/lib/libgomp.exp + (check_effective_target_offload_device): New. + * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories. + * testsuite/libgomp.c++/examples-4/e.51.5.C: New test. + * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto. + * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto. + * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto. + * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto. + * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto. + * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto. + * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto. + * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto. + * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto. + * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto. + * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto. + * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto. + * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto. + * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto. + * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto. + * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto. + * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto. + * testsuite/libgomp.c/target-7.c: Fix test. + * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test. + * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto. + * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto. + +2014-11-13 Jakub Jelinek <jakub@redhat.com> + Ilya Verbin <ilya.verbin@intel.com> + Thomas Schwinge <thomas@codesourcery.com> + Andrey Turetskiy <andrey.turetskiy@intel.com> + + * libgomp.map (GOMP_4.0.1): New symbol version. + Add GOMP_offload_register. + * libgomp_target.h: New file. + * splay-tree.h: New file. + * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h. + (gomp_target_init): New forward declaration. + (gomp_is_initialized): New static variable. + (splay_tree_node, splay_tree, splay_tree_key): New typedefs. + (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr): + New structures. + (offload_images, num_offload_images, devices, num_devices): New static + variables. + (splay_compare): New static function. + (struct gomp_device_descr): New structure. + (gomp_get_num_devices): Call gomp_target_init. + (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt) + (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions. + (GOMP_offload_register): New function. + (GOMP_target): Arrange for host callback to be performed in a separate + initial thread and contention group, inheriting ICVs from + gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars. + Add device initialization and lookup for target function in splay tree. + (GOMP_target_data): Add device initialization and call gomp_map_vars. + (GOMP_target_end_data): Call gomp_unmap_vars. + (GOMP_target_update): Add device initialization and call gomp_update. + (gomp_load_plugin_for_device, gomp_register_images_for_device) + (gomp_target_init): New static functions. + +2014-11-13 Bernd Schmidt <bernds@codesourcery.com> + Thomas Schwinge <thomas@codesourcery.com> + Ilya Verbin <ilya.verbin@intel.com> + Andrey Turetskiy <andrey.turetskiy@intel.com> + + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac: Check for libdl, required for plugin support. + (PLUGIN_SUPPORT): Define if plugins are supported. + (enable_offload_targets): Support Intel MIC targets. + (OFFLOAD_TARGETS): List of target names suitable for offloading. + +2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR target/63610 + * configure: Regenerate. + +2014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * config/posix/lock.c (_XOPEN_SOURCE) Define as 600. + +2014-10-06 Marek Polacek <polacek@redhat.com> + + * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>. + * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>. + * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h> + * testsuite/libgomp.c/thread-limit-2.c: Likewise. + +2014-10-06 Marek Polacek <polacek@redhat.com> + + * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations. + * testsuite/libgomp.c/nqueens-1.c: Likewise. + * testsuite/libgomp.c/pr26943-3.c: Likewise. + * testsuite/libgomp.c/pr26943-4.c: Likewise. + * testsuite/libgomp.c/pr36802-2.c: Likewise. + * testsuite/libgomp.c/pr36802-3.c: Likewise. + * testsuite/libgomp.c/thread-limit-1.c: Likewise. + * testsuite/libgomp.c/thread-limit-2.c: Likewise. + * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>. + * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int. + * testsuite/libgomp.c/omp-parallel-for.c: Likewise. + * testsuite/libgomp.c/omp-parallel-if.c: Likewise. + * testsuite/libgomp.c/omp-single-1.c: Likewise. + * testsuite/libgomp.c/omp-single-2.c: Likewise. + * testsuite/libgomp.c/omp_matvec.c: Likewise. + * testsuite/libgomp.c/omp_workshare3.c: Likewise. + * testsuite/libgomp.c/omp_workshare4.c: Likewise. + * testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit + declarations. + +2014-10-03 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/61200 + * testsuite/libgomp.c/pr61200.c: New test. + +2014-09-18 Jakub Jelinek <jakub@redhat.com> + + PR c++/63248 + * testsuite/libgomp.c++/pr63248.C: New test. + +2014-08-04 Jakub Jelinek <jakub@redhat.com> + + * task.c (GOMP_taskgroup_end): If taskgroup->num_children + is not zero, but taskgroup->children is NULL and there are + any task->children, schedule those instead of waiting. + * testsuite/libgomp.c/depend-6.c: New test. + * testsuite/libgomp.c/depend-7.c: New test. + * testsuite/libgomp.c/depend-8.c: New test. + * testsuite/libgomp.c/depend-9.c: New test. + * testsuite/libgomp.c/depend-10.c: New test. + +2014-08-01 Jakub Jelinek <jakub@redhat.com> + + * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. + (struct gomp_taskwait): New type. + (struct gomp_task): Add taskwait and parent_depends_on, remove + in_taskwait and taskwait_sem fields. + (gomp_finish_task): Don't destroy taskwait_sem. + * task.c (gomp_init_task): Don't init in_taskwait, instead init + taskwait and parent_depends_on. + (GOMP_task): For if (0) tasks with depend clause that depend on + earlier tasks don't defer them, instead call + gomp_task_maybe_wait_for_dependencies to wait for the dependencies. + Initialize redundant_out field, for redundant out entries just + move them at the end of linked list instead of removing them + completely, and set redundant_out flag instead of redundant. + (gomp_task_run_pre): Update last_parent_depends_on if scheduling + that task. + (gomp_task_run_post_handle_dependers): If parent is in + gomp_task_maybe_wait_for_dependencies and newly runnable task + is not parent_depends_on, queue it in parent->children linked + list after all runnable tasks with parent_depends_on set. + Adjust for addition of taskwait indirection. + (gomp_task_run_post_remove_parent): If parent is in + gomp_task_maybe_wait_for_dependencies and task to be removed + is parent_depends_on, decrement n_depend and if needed awake + parent. Adjust for addition of taskwait indirection. + (GOMP_taskwait): Adjust for addition of taskwait indirection. + (gomp_task_maybe_wait_for_dependencies): New function. + * testsuite/libgomp.c/depend-5.c: New test. + +2014-07-13 Tobias Burnus <burnus@net-b.de> + + * testsuite/libgomp.fortran/pr34020.f90: Make compile + with TS 18508/Fortran 2015. + +2014-07-06 Marek Polacek <polacek@redhat.com> + + PR c/6940 + * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings. + +2014-07-03 Jakub Jelinek <jakub@redhat.com> + + * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source + matches regex $lang_source_re, add $lang_include_flags to options. + * testsuite/libgomp.c/c.exp: Unset lang_include_flags. + * testsuite/libgomp.c++/c++.exp: Likewise. + * testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re + and lang_include_flags instead of adding -fintrinsic-modules-path= to + ALWAYS_CFLAGS. + * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags. + +2014-07-03 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.fortran/fortran.exp: Explain + gfortran-dg-runtest usage. + +2014-06-25 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.fortran/simd5.f90: New test. + * testsuite/libgomp.fortran/simd6.f90: New test. + * testsuite/libgomp.fortran/simd7.f90: New test. + +2014-06-24 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/for-2.c: Define SC to static for + #pragma omp for simd testing. + * testsuite/libgomp.c/for-2.h (SC): Define if not defined. + (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use + SC macro. + * testsuite/libgomp.c/simd-14.c: New test. + * testsuite/libgomp.c/simd-15.c: New test. + * testsuite/libgomp.c/simd-16.c: New test. + * testsuite/libgomp.c/simd-17.c: New test. + * testsuite/libgomp.c++/for-10.C: Define SC to static for + #pragma omp for simd testing. + * testsuite/libgomp.c++/simd10.C: New test. + * testsuite/libgomp.c++/simd11.C: New test. + * testsuite/libgomp.c++/simd12.C: New test. + * testsuite/libgomp.c++/simd13.C: New test. + + * testsuite/libgomp.fortran/aligned1.f03: New test. + * testsuite/libgomp.fortran/nestedfn5.f90: New test. + * testsuite/libgomp.fortran/target7.f90: Surround loop spawning + tasks with !$omp parallel !$omp single. + * testsuite/libgomp.fortran/target8.f90: New test. + * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust + not to use trim in the combiner, instead call elemental function. + (fn): New elemental function. + * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init): + Make elemental. + * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out, + omp_in): Likewise. + * testsuite/libgomp.fortran/udr12.f90: New test. + * testsuite/libgomp.fortran/udr13.f90: New test. + * testsuite/libgomp.fortran/udr14.f90: New test. + * testsuite/libgomp.fortran/udr15.f90: New test. + +2014-06-18 Jakub Jelinek <jakub@redhat.com> + + * omp_lib.f90.in (openmp_version): Set to 201307. + * omp_lib.h.in (openmp_version): Likewise. + * testsuite/libgomp.c/target-8.c: New test. + * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch + and inbranch clauses. + * testsuite/libgomp.fortran/depend-3.f90: New test. + * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new + openmp_version. + * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. + * testsuite/libgomp.fortran/target1.f90: New test. + * testsuite/libgomp.fortran/target2.f90: New test. + * testsuite/libgomp.fortran/target3.f90: New test. + * testsuite/libgomp.fortran/target4.f90: New test. + * testsuite/libgomp.fortran/target5.f90: New test. + * testsuite/libgomp.fortran/target6.f90: New test. + * testsuite/libgomp.fortran/target7.f90: New test. + +2014-06-10 Jakub Jelinek <jakub@redhat.com> + + PR fortran/60928 + * testsuite/libgomp.fortran/allocatable9.f90: New test. + * testsuite/libgomp.fortran/allocatable10.f90: New test. + * testsuite/libgomp.fortran/allocatable11.f90: New test. + * testsuite/libgomp.fortran/allocatable12.f90: New test. + * testsuite/libgomp.fortran/alloc-comp-1.f90: New test. + * testsuite/libgomp.fortran/alloc-comp-2.f90: New test. + * testsuite/libgomp.fortran/alloc-comp-3.f90: New test. + * testsuite/libgomp.fortran/associate1.f90: New test. + * testsuite/libgomp.fortran/associate2.f90: New test. + * testsuite/libgomp.fortran/procptr1.f90: New test. + +2014-06-06 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.fortran/simd1.f90: New test. + * testsuite/libgomp.fortran/udr1.f90: New test. + * testsuite/libgomp.fortran/udr2.f90: New test. + * testsuite/libgomp.fortran/udr3.f90: New test. + * testsuite/libgomp.fortran/udr4.f90: New test. + * testsuite/libgomp.fortran/udr5.f90: New test. + * testsuite/libgomp.fortran/udr6.f90: New test. + * testsuite/libgomp.fortran/udr7.f90: New test. + * testsuite/libgomp.fortran/udr8.f90: New test. + * testsuite/libgomp.fortran/udr9.f90: New test. + * testsuite/libgomp.fortran/udr10.f90: New test. + * testsuite/libgomp.fortran/udr11.f90: New test. + +2014-05-27 Uros Bizjak <ubizjak@gmail.com> + + * testsuite/libgomp.fortran/declare-simd-1.f90: Require + vect_simd_clones effective target. + * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto. + +2014-05-21 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/61252 + * testsuite/libgomp.c++/simd-9.C: New test. + +2014-05-18 Uros Bizjak <ubizjak@gmail.com> + + * libgomp.texi (Runitme Library Routines): Remove multiple @menu. + (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node + texts according to their @menu entry positions. + +2014-05-11 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.fortran/cancel-do-1.f90: New test. + * testsuite/libgomp.fortran/cancel-do-2.f90: New test. + * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test. + * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test. + * testsuite/libgomp.fortran/cancel-sections-1.f90: New test. + * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test. + * testsuite/libgomp.fortran/declare-simd-1.f90: New test. + * testsuite/libgomp.fortran/declare-simd-2.f90: New test. + * testsuite/libgomp.fortran/declare-simd-3.f90: New test. + * testsuite/libgomp.fortran/depend-1.f90: New test. + * testsuite/libgomp.fortran/depend-2.f90: New test. + * testsuite/libgomp.fortran/omp_atomic5.f90: New test. + * testsuite/libgomp.fortran/simd1.f90: New test. + * testsuite/libgomp.fortran/simd2.f90: New test. + * testsuite/libgomp.fortran/simd3.f90: New test. + * testsuite/libgomp.fortran/simd4.f90: New test. + * testsuite/libgomp.fortran/taskgroup1.f90: New test. + +2014-05-02 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/simd-10.c: New test. + * testsuite/libgomp.c/simd-11.c: New test. + * testsuite/libgomp.c/simd-12.c: New test. + * testsuite/libgomp.c/simd-13.c: New test. + +2014-04-24 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and + atomic type clauses in any order and optional comma in between. + * testsuite/libgomp.c++/atomic-15.C: Likewise. + * testsuite/libgomp.c/atomic-17.c: Likewise. + + * testsuite/libgomp.c/simd-7.c: New test. + * testsuite/libgomp.c/simd-8.c: New test. + * testsuite/libgomp.c/simd-9.c: New test. + * testsuite/libgomp.c/loop-16.c: New test. + +2014-04-02 Richard Henderson <rth@redhat.com> + + * config/linux/futex.h (futex_wait): Get error value from errno. + (futex_wake): Likewise. + +2014-03-25 Jakub Jelinek <jakub@redhat.com> + + PR c++/60331 + * testsuite/libgomp.c++/udr-11.C: New test. + * testsuite/libgomp.c++/udr-12.C: New test. + * testsuite/libgomp.c++/udr-13.C: New test. + * testsuite/libgomp.c++/udr-14.C: New test. + * testsuite/libgomp.c++/udr-15.C: New test. + * testsuite/libgomp.c++/udr-16.C: New test. + * testsuite/libgomp.c++/udr-17.C: New test. + * testsuite/libgomp.c++/udr-18.C: New test. + * testsuite/libgomp.c++/udr-19.C: New test. + +2014-01-02 Richard Sandiford <rdsandiford@googlemail.com> + + Update copyright years + +2014-01-02 Richard Sandiford <rdsandiford@googlemail.com> + + * hashtab.h: Use the standard form for the copyright notice. + +2014-01-02 Tobias Burnus <burnus@net-b.de> + + * libgomp.texi: Bump @copying's copyright year. + +2013-12-17 Andreas Tobler <andreast@gcc.gnu.org> + + * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace + alloca () with __builtin_alloca (). + * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage. + * testsuite/libgomp.c/lock-3.c: Likewise. + * testsuite/libgomp.c/pr48591.c: Likewise. + +2013-12-17 Jakub Jelinek <jakub@redhat.com> + + PR testsuite/59534 + * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited + comparisons. + +2013-12-16 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/58756 + * testsuite/libgomp.c/pr58756.c: New test. + +2013-12-12 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/59467 + * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to + !$omp parallel. + +2013-11-07 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to + ALWAYS_CFLAGS. + * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp. + * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise. + * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise. + * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS): + Likewise. + + * libgomp_g.h: Include <stddef.h> for size_t. + + * libgomp.spec.in: Update comment about libgomp's dependencies. + * configure.ac: Likewise. + * configure: Regenerate. + +2013-10-16 Tobias Burnus <burnus@net-b.de> + + * libgomp.texi: (Runtime Library Routines): Update references for + OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device, + omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind, + omp_get_team_num, omp_is_initial_device, omp_set_default_device. + (Environment Variables): Update references for OpenMP 4.0. Add + OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES. + Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical + order. + +2013-10-14 Jakub Jelinek <jakub@redhat.com> + + * env.c (parse_bind_var): Initialize value to avoid + (false positive) warning. + +2013-10-12 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/58691 + * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute + to check variable. + (gomp_init_num_threads): Move i variable declaration into + #ifdef CPU_ALLOC_SIZE block. + * config/linux/affinity.c (gomp_affinity_init_level): Test + gomp_places_list_len == 0 rather than gomp_places_list == 0 + when checking for topology reading error. + * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false. + * env.c (parse_affinity): Add ignore argument, if true, don't populate + gomp_places_list, only parse env var and always return false. + (parse_places_var): Likewise. Don't check gomp_global_icv.bind_var. + (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env + vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified + and either of these variables were parsed correctly into a places + list. + +2013-10-11 Thomas Schwinge <thomas@codesourcery.com> + Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead + of 5 loopfn matches. + * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-3.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-4.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-5.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-6.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-9.c: Likewise. + +2013-10-11 Thomas Schwinge <thomas@codesourcery.com> + + * Makefile.am (omp_lib.mod): Streamline rule. + * Makefile.in: Regenerate. + + * libgomp.texi (Runtime Library Routines): C linkage, don't throw + exceptions. + + * testsuite/libgomp.c/lib-1.c (main): Add missing error check. + * testsuite/libgomp.fortran/lib1.f90: Likewise. + * testsuite/libgomp.fortran/lib2.f: Likewise. + * testsuite/libgomp.fortran/lib3.f: Likewise. + + * configure.ac: Typo fix. + * configure: Regenerate. + + * testsuite/libgomp.fortran/openmp_version-1.f: New file. + * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. + + * omp.h.in: Don't touch the user's namespace. + +2013-10-11 Jakub Jelinek <jakub@redhat.com> + Tobias Burnus <burnus@net-b.de> + Richard Henderson <rth@redhat.com> + + * target.c: New file. + * Makefile.am (libgomp_la_SOURCES): Add target.c. + * Makefile.in: Regenerated. + * libgomp_g.h (GOMP_task): Add depend argument. + (GOMP_barrier_cancel, GOMP_loop_end_cancel, + GOMP_sections_end_cancel, GOMP_target, GOMP_target_data, + GOMP_target_end_data, GOMP_target_update, GOMP_teams, + GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic, + GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime, + GOMP_parallel, GOMP_cancel, GOMP_cancellation_point, + GOMP_taskgroup_start, GOMP_taskgroup_end, + GOMP_parallel_sections): New prototypes. + * fortran.c (omp_is_initial_device): Add ialias_redirect. + (omp_is_initial_device_): New function. + (ULP, STR1, STR2, ialias_redirect): Removed. + (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_, + omp_set_default_device_8_, omp_get_default_device_, + omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New + functions. + * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel, + GOMP_sections_end_cancel, GOMP_target, GOMP_target_data, + GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export + @@GOMP_4.0. + (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation, + omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_, + omp_set_default_device, omp_set_default_device_, + omp_set_default_device_8_, omp_get_default_device, + omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_, + omp_get_num_teams, omp_get_num_teams_, omp_get_team_num, + omp_get_team_num_): Export @@OMP_4.0. + * team.c (struct gomp_thread_start_data): Add place field. + (gomp_thread_start): Clear thr->thread_pool and + thr->task before returning. Use gomp_team_barrier_wait_final + instead of gomp_team_barrier_wait. Initialize thr->place. + (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled, + team_cancelled and task_queued_count fields. + (gomp_free_pool_helper): Clear thr->thread_pool and thr->task + before calling pthread_exit. + (gomp_free_thread): No longer static. Use + gomp_managed_threads_lock instead of gomp_remaining_threads_lock. + (gomp_team_start): Add flags argument. Set + thr->thread_pool->threads_busy to nthreads immediately after creating + new pool. Use gomp_managed_threads_lock instead of + gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity. + (gomp_team_end): Use gomp_managed_threads_lock instead of + gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead + of gomp_team_barrier_wait. If team->team_cancelled, call + gomp_fini_worshare on ws chain starting at team->work_shares_to_free + rather than thr->ts.work_share. + (initialize_team): Don't call gomp_sem_init here. + * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start + caller. + (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions. + * env.c (gomp_global_icv): Add default_device_var, target_data and + bind_var initializers. + (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove. + (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list, + gomp_places_list_len): New variables. + (parse_bind_var, parse_one_place, parse_places_var): New functions. + (parse_affinity): Rewritten to construct OMP_PLACES list with unit + sized places. + (gomp_cancel_var): New global variable. + (parse_int): New function. + (handle_omp_display_env): New function. + (initialize_env): Use it. Initialize default_device_var. + Parse OMP_CANCELLATION env var. Use parse_bind_var to parse + OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for + OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has + been successfully parsed (and call gomp_init_affinity in that case). + (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, + omp_get_default_device, omp_get_num_devices, omp_get_num_teams, + omp_get_team_num, omp_is_initial_device): New functions. + * libgomp.h: Include stdlib.h. + (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call): + Define. + (struct target_mem_desc): Forward declare. + (struct gomp_task_icv): Add default_device_var, target_data, bind_var + and thread_limit_var fields. + (gomp_get_num_devices): New prototype. + (gomp_cancel_var): New extern decl. + (struct gomp_team): Add work_shares_to_free, work_share_cancelled, + team_cancelled and task_queued_count fields. Add comments about + task_{,queued_,running_}count. + (gomp_cancel_kind): New enum. + (gomp_work_share_end_cancel): New prototype. + (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup, + copy_ctors_done, dependers, depend_hash, depend_count, num_dependees + and depend fields. + (struct gomp_taskgroup): New type. + (struct gomp_task_depend_entry, + struct gomp_dependers_vec): New types. + (gomp_finish_task): Free depend_hash if non-NULL. + (struct gomp_team_state): Add place_partition_off + and place_partition_len fields. + (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list, + gomp_places_list_len): New extern decls. + (struct gomp_thread): Add place field. + (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove. + (gomp_init_thread_affinity): Add place argument. + (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, + gomp_affinity_remove_cpu, gomp_affinity_copy_place, + gomp_affinity_same_place, gomp_affinity_finalize_place_list, + gomp_affinity_init_level, gomp_affinity_print_place): New + prototypes. + (gomp_team_start): Add flags argument. + (gomp_thread_limit_var, gomp_remaining_threads_count, + gomp_remaining_threads_lock): Remove. + (gomp_managed_threads_lock): New variable. + (struct gomp_thread_pool): Add threads_busy field. + (gomp_free_thread): New prototype. + * task.c: Include hashtab.h. + (hash_entry_type): New typedef. + (htab_alloc, htab_free, htab_hash, htab_eq): New inlines. + (gomp_init_task): Clear dependers, depend_hash, depend_count, + copy_ctors_done and taskgroup fields. + (GOMP_task): Add depend argument, handle depend clauses. If + gomp_team_barrier_cancelled or if it's taskgroup has been + cancelled, don't queue or start new tasks. Set copy_ctors_done + field if needed. Initialize taskgroup field. If copy_ctors_done + and already cancelled, don't discard the task. If taskgroup is + non-NULL, enqueue the task into taskgroup queue. Increment + num_children field in taskgroup. Increment task_queued_count. + (gomp_task_run_pre, gomp_task_run_post_remove_parent, + gomp_task_run_post_remove_taskgroup): New inline functions. + (gomp_task_run_post_handle_depend_hash, + gomp_task_run_post_handle_dependers, + gomp_task_run_post_handle_depend): New functions. + (GOMP_taskwait): Use them. If more than one new tasks + have been queued, wake other threads if needed. + (gomp_barrier_handle_tasks): Likewise. If + gomp_team_barrier_cancelled, don't start any new tasks, just free + all tasks. + (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions. + * omp_lib.f90.in + (omp_proc_bind_kind, omp_proc_bind_false, + omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close, + omp_proc_bind_spread): New params. + (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, + omp_get_default_device, omp_get_num_devices, omp_get_num_teams, + omp_get_team_num, omp_is_initial_device): New interfaces. + (omp_get_dynamic, omp_get_nested, omp_in_parallel, + omp_get_max_threads, omp_get_num_procs, omp_get_num_threads, + omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels, + omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num, + omp_get_team_size, omp_get_active_level, omp_in_final): Remove + useless use omp_lib_kinds. + * omp.h.in (omp_proc_bind_t): New typedef. + (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, + omp_get_default_device, omp_get_num_devices, omp_get_num_teams, + omp_get_team_num, omp_is_initial_device): New prototypes. + * loop.c (gomp_parallel_loop_start): Add flags argument, pass it + through to gomp_team_start. + (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start, + GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start): + Adjust gomp_parallel_loop_start callers. + (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic, + GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime, + GOMP_loop_end_cancel): New functions. + (GOMP_parallel_end): Add ialias_redirect. + * hashtab.h: New file. + * libgomp.texi (Environment Variables): Minor cleanup, + update section refs to OpenMP 4.0rc2. + (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these + environment variables. + * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set + team->work_shares_to_free to thr->ts.work_share before calling + free_work_share. + (gomp_work_share_end_cancel): New function. + * config/linux/proc.c: Include errno.h. + (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables. + (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of + sizeof (cpu_set_t) to determine number of iterations. Fix up check + extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if + gomp_cpuset_size is sizeof (cpu_set_t). + (gomp_init_num_threads): Initialize gomp_cpuset_size, + gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead + of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t) + to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't + contain any logical CPUs. + (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp + is NULL. Use gomp_cpusetp instead of &cpuset and pass + gomp_get_cpuset_size instead of sizeof (cpu_set_t) to + pthread_getaffinity_np. Check gomp_places_list instead of + gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller. + * config/linux/bar.c (gomp_barrier_wait_end, + gomp_barrier_wait_last): Use BAR_* defines. + (gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED + from state where needed. Set work_share_cancelled to 0 on last + thread. + (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end, + gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New + functions. + * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden. + Add cpusetsize argument. + (gomp_cpuset_size, gomp_cpusetp): Declare. + * config/linux/affinity.c: Include errno.h, stdio.h and string.h. + (affinity_counter): Remove. + (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define + if CPU_ALLOC_SIZE isn't defined. + (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try + silently create OMP_PLACES=threads, if it is non-NULL afterwards, + bind current thread to the first place. + (gomp_init_thread_affinity): Rewritten. Add place argument, just + pthread_setaffinity_np to gomp_places_list[place]. + (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, + gomp_affinity_remove_cpu, gomp_affinity_copy_place, + gomp_affinity_same_place, gomp_affinity_finalize_place_list, + gomp_affinity_init_level, gomp_affinity_print_place): New functions. + * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST, + BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define. + (gomp_barrier_t): Add awaited_final field. + (gomp_barrier_init): Initialize awaited_final field. + (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel, + gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New + prototypes. + (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_* + defines. + (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start, + gomp_team_barrier_cancelled): New inline functions. + (gomp_barrier_last_thread, + gomp_team_barrier_set_task_pending, + gomp_team_barrier_clear_task_pending, + gomp_team_barrier_set_waiting_for_tasks, + gomp_team_barrier_waiting_for_tasks, + gomp_team_barrier_done): Use BAR_* defines. + * config/posix/bar.c (gomp_barrier_init): Clear cancellable field. + (gomp_barrier_wait_end): Use BAR_* defines. + (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state. + Set work_share_cancelled to 0 on last thread, use __atomic_load_n. + Use BAR_* defines. + (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel, + gomp_team_barrier_cancel): New functions. + * config/posix/affinity.c (gomp_init_thread_affinity): Add place + argument. + (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus, + gomp_affinity_remove_cpu, gomp_affinity_copy_place, + gomp_affinity_same_place, gomp_affinity_finalize_place_list, + gomp_affinity_init_level, gomp_affinity_print_place): New stubs. + * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST, + BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define. + (gomp_barrier_t): Add cancellable field. + (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end, + gomp_team_barrier_cancel): New prototypes. + (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. + (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final, + gomp_team_barrier_cancelled): New inline functions. + (gomp_barrier_wait_start, gomp_barrier_last_thread, + gomp_team_barrier_set_task_pending, + gomp_team_barrier_clear_task_pending, + gomp_team_barrier_set_waiting_for_tasks, + gomp_team_barrier_waiting_for_tasks, + gomp_team_barrier_done): Use BAR_* defines. + * barrier.c (GOMP_barrier_cancel): New function. + * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false, + omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close, + omp_proc_bind_spread): New params. + (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device, + omp_get_default_device, omp_get_num_devices, omp_get_num_teams, + omp_get_team_num, omp_is_initial_device): New externals. + * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point): + New functions. + (gomp_resolve_num_threads): Adjust for thread_limit now being in + icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as + infinity. If not nested, just return minimum of max_num_threads + and icv->thread_limit_var and if thr->thread_pool, set threads_busy + to the returned value. Otherwise, don't update atomically + gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy. + (GOMP_parallel_end): Adjust for thread_limit now being in + icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as + infinity. Adjust threads_busy in the pool rather than + gomp_remaining_threads_count. Remember team->nthreads and call + gomp_team_end before adjusting threads_busy, if not nested + afterwards, just set it to 1 non-atomically. Add ialias. + (GOMP_parallel_start): Adjust gomp_team_start caller. + * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid. + * testsuite/libgomp.c/affinity-1.c: New test. + * testsuite/libgomp.c/atomic-15.c: New test. + * testsuite/libgomp.c/atomic-16.c: New test. + * testsuite/libgomp.c/atomic-17.c: New test. + * testsuite/libgomp.c/cancel-for-1.c: New test. + * testsuite/libgomp.c/cancel-for-2.c: New test. + * testsuite/libgomp.c/cancel-parallel-1.c: New test. + * testsuite/libgomp.c/cancel-parallel-2.c: New test. + * testsuite/libgomp.c/cancel-parallel-3.c: New test. + * testsuite/libgomp.c/cancel-sections-1.c: New test. + * testsuite/libgomp.c/cancel-taskgroup-1.c: New test. + * testsuite/libgomp.c/cancel-taskgroup-2.c: New test. + * testsuite/libgomp.c/depend-1.c: New test. + * testsuite/libgomp.c/depend-2.c: New test. + * testsuite/libgomp.c/depend-3.c: New test. + * testsuite/libgomp.c/depend-4.c: New test. + * testsuite/libgomp.c/for-1.c: New test. + * testsuite/libgomp.c/for-1.h: New file. + * testsuite/libgomp.c/for-2.c: New test. + * testsuite/libgomp.c/for-2.h: New file. + * testsuite/libgomp.c/for-3.c: New test. + * testsuite/libgomp.c/pr58392.c: New test. + * testsuite/libgomp.c/simd-1.c: New test. + * testsuite/libgomp.c/simd-2.c: New test. + * testsuite/libgomp.c/simd-3.c: New test. + * testsuite/libgomp.c/simd-4.c: New test. + * testsuite/libgomp.c/simd-5.c: New test. + * testsuite/libgomp.c/simd-6.c: New test. + * testsuite/libgomp.c/target-1.c: New test. + * testsuite/libgomp.c/target-2.c: New test. + * testsuite/libgomp.c/target-3.c: New test. + * testsuite/libgomp.c/target-4.c: New test. + * testsuite/libgomp.c/target-5.c: New test. + * testsuite/libgomp.c/target-6.c: New test. + * testsuite/libgomp.c/target-7.c: New test. + * testsuite/libgomp.c/taskgroup-1.c: New test. + * testsuite/libgomp.c/thread-limit-1.c: New test. + * testsuite/libgomp.c/thread-limit-2.c: New test. + * testsuite/libgomp.c/thread-limit-3.c: New test. + * testsuite/libgomp.c/udr-1.c: New test. + * testsuite/libgomp.c/udr-2.c: New test. + * testsuite/libgomp.c/udr-3.c: New test. + * testsuite/libgomp.c++/affinity-1.C: New test. + * testsuite/libgomp.c++/atomic-10.C: New test. + * testsuite/libgomp.c++/atomic-11.C: New test. + * testsuite/libgomp.c++/atomic-12.C: New test. + * testsuite/libgomp.c++/atomic-13.C: New test. + * testsuite/libgomp.c++/atomic-14.C: New test. + * testsuite/libgomp.c++/atomic-15.C: New test. + * testsuite/libgomp.c++/cancel-for-1.C: New test. + * testsuite/libgomp.c++/cancel-for-2.C: New test. + * testsuite/libgomp.c++/cancel-parallel-1.C: New test. + * testsuite/libgomp.c++/cancel-parallel-2.C: New test. + * testsuite/libgomp.c++/cancel-parallel-3.C: New test. + * testsuite/libgomp.c++/cancel-sections-1.C: New test. + * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test. + * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test. + * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test. + * testsuite/libgomp.c++/cancel-test.h: New file. + * testsuite/libgomp.c++/for-9.C: New test. + * testsuite/libgomp.c++/for-10.C: New test. + * testsuite/libgomp.c++/for-11.C: New test. + * testsuite/libgomp.c++/simd-1.C: New test. + * testsuite/libgomp.c++/simd-2.C: New test. + * testsuite/libgomp.c++/simd-3.C: New test. + * testsuite/libgomp.c++/simd-4.C: New test. + * testsuite/libgomp.c++/simd-5.C: New test. + * testsuite/libgomp.c++/simd-6.C: New test. + * testsuite/libgomp.c++/simd-7.C: New test. + * testsuite/libgomp.c++/simd-8.C: New test. + * testsuite/libgomp.c++/target-1.C: New test. + * testsuite/libgomp.c++/target-2.C: New test. + * testsuite/libgomp.c++/target-2-aux.cc: New file. + * testsuite/libgomp.c++/target-3.C: New test. + * testsuite/libgomp.c++/taskgroup-1.C: New test. + * testsuite/libgomp.c++/udr-1.C: New test. + * testsuite/libgomp.c++/udr-2.C: New test. + * testsuite/libgomp.c++/udr-3.C: New test. + * testsuite/libgomp.c++/udr-4.C: New test. + * testsuite/libgomp.c++/udr-5.C: New test. + * testsuite/libgomp.c++/udr-6.C: New test. + * testsuite/libgomp.c++/udr-7.C: New test. + * testsuite/libgomp.c++/udr-8.C: New test. + * testsuite/libgomp.c++/udr-9.C: New test. + +2013-09-20 Jakub Jelinek <jakub@redhat.com> + + PR testsuite/57605 + * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to + ALWAYS_CFLAGS. + +2013-09-20 Alan Modra <amodra@gmail.com> + + * configure: Regenerate. + +2013-09-19 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/sections-2.c: New test. + +2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com> + + * testsuite/libgomp.fortran/strassen.f90: + Add dg-skip-if aarch64_tiny. + +2013-06-20 Iain Sandoe <iain@codesourcery.com> + Cesar Philippidis <cesar@codesourcery.com> + + * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order. + Do not load_gcc_lib gcc-dg.exp and add a comment as to why. + * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp. + * testsuite/libgomp.fortran/fortran.exp: Likewise. + * testsuite/libgomp.graphite/graphite.exp: Likewise. + * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp. + Use dg-runtest rather than gfortran-dg-runtest. + +2013-06-10 Thomas Schwinge <thomas@codesourcery.com> + + * testsuite/libgomp.c/icv-2.c: Extend current handling of + Linux-based x86 systems to cover all GNU systems. + * testsuite/libgomp.c/lock-3.c: Likewise. + * testsuite/libgomp.c/pr48591.c: Likewise. + +2013-06-06 Thomas Schwinge <thomas@codesourcery.com> + + * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for + GNU/Hurd, as done for Linux-based systems. + + * config/posix/ptrlock.h: Fix comment. + +2013-05-27 Tobias Burnus <burnus@net-b.de> + + PR fortran/57423 + * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested, + omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock, + omp_unset_lock, omp_destroy_lock, omp_init_nest_lock, + omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock, + omp_destroy_nest_lock): Correct arguments to match the one in + the OpenMP spec. + * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock + omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock, + omp_unset_nest_lock, omp_set_dynamic, omp_set_nested, + omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto. + +2013-05-16 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/loop-13.c: New test. + * testsuite/libgomp.c/loop-14.c: New test. + * testsuite/libgomp.c/loop-15.c: New test. + * testsuite/libgomp.c++/loop-13.C: New test. + * testsuite/libgomp.c++/loop-14.C: New test. + * testsuite/libgomp.c++/loop-15.C: New test. + +2013-02-06 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/56217 + * testsuite/libgomp.c++/pr56217.C: New test. + +2013-02-01 Alan Modra <amodra@gmail.com> + + * task.c (GOMP_task, GOMP_taskwait): Comment. + +2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org> + Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> + + PR libgomp/55561 + * config/linux/wait.h (do_spin): Use atomic load for addr. + * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic + for intptr and ptrlock. + * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load + for ptrlock. + +2013-01-22 Alan Modra <amodra@gmail.com> + + PR libgomp/51376 + PR libgomp/56073 + * task.c (GOMP_task): Revert 2011-12-09 change. + (GOMP_taskwait): Likewise. Instead use atomic load with acquire + barrier to read task->children.. + (gomp_barrier_handle_tasks): ..and matching atomic store with + release barrier here when setting parent->children to NULL. + +2013-01-16 Jakub Jelinek <jakub@redhat.com> + Tobias Burnus <burnus@net-b.de> + + PR driver/55884 + * testsuite/libgomp.fortran/fortran.exp: Use + -fintrinsic-modules-path= instead of + -fintrinsic-modules-path. + +2013-01-14 Richard Sandiford <rdsandiford@googlemail.com> + + Update copyright years. + +2012-12-19 Tobias Burnus <burnus@net-b.de> + + * testsuite/libgomp.fortran/fortran.exp: Set + -fintrinsic-modules-path. + +2012-12-19 Tobias Burnus <burnus@net-b.de> + + * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved + from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90. + +2012-11-21 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/55411 + * team.c (gomp_free_thread): Decrease gomp_managed_threads + if pool had any threads_used. + +2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu> + + * testsuite/libgomp.c++/pr24455.C: Use + -Wl,-undefined,dynamic_lookup on darwin. + +2012-11-07 David Edelsohn <dje.gcc@gmail.com> + + * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX. + +2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr> + + * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops. + +2012-10-23 Ian Bolton <ian.bolton@arm.com> + Jim MacArthur <jim.macarthur@arm.com> + Marcus Shawcroft <marcus.shawcroft@arm.com> + Nigel Stephens <nigel.stephens@arm.com> + Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> + Richard Earnshaw <rearnsha@arm.com> + Sofiane Naci <sofiane.naci@arm.com> + Stephen Thomas <stephen.thomas@arm.com> + Tejas Belagod <tejas.belagod@arm.com> + Yufeng Zhang <yufeng.zhang@arm.com> + + * configure.tgt: Add AArch64. + +2012-10-04 Jason Merrill <jason@redhat.com> + + * testsuite/libgomp.c++/tls-init1.C: New. + +2012-09-14 David Edelsohn <dje.gcc@gmail.com> + + * configure: Regenerated. + +2012-08-29 Chung-Lin Tang <cltang@codesourcery.com> + + * config/linux/mips/futex.h (sys_futex0): Change to static + function with noinline, nomips16 attributes under MIPS16. Adjust + asm statement to place 'li v0,SYS_futex' immediately before + syscall insn. + +2012-07-04 Sandra Loosemore <sandra@codesourcery.com> + + * libgomp.texi (Library Index): Renamed from "Index" to prevent + conflict with index.html on case-insensitive file systems. + +2012-07-03 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause. + * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto. + +2012-07-02 Richard Guenther <rguenther@suse.de> + Michael Matz <matz@suse.de> + Tobias Grosser <tobias@grosser.es> + Sebastian Pop <sebpop@gmail.com> + + * testsuite/libgomp.graphite/force-parallel-4.c: Adjust. + * testsuite/libgomp.graphite/force-parallel-5.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. + +2012-06-28 Andreas Schwab <schwab@linux-m68k.org> + + * libgomp.texi: Include gpl_v3.texi instead of gpl.texi. + +2012-06-22 Richard Guenther <rguenther@suse.de> + + Merge from graphite branch + 2012-01-13 Tobias Grosser <tobias@grosser.es> + + * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. + * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. + +2012-06-07 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/53580 + * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier, + use GOMP_barrier () call instead. + * testsuite/libgomp.c/pr26943-3.c: Likewise. + * testsuite/libgomp.c/pr26943-4.c: Likewise. + * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier, + call GOMP_barrier instead. + * testsuite/libgomp.fortran/vla5.f90: Likewise. + +2012-06-06 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/52993 + * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last + argument to memset call. + +2012-05-16 H.J. Lu <hongjiu.lu@intel.com> + + * configure: Regenerated. + +2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org> + + * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret. + +2012-03-31 H.J. Lu <hongjiu.lu@intel.com> + + PR bootstrap/52812 + * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64. + +2012-03-22 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/52547 + * testsuite/libgomp.c/pr52547.c: New test. + +2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> + + * testsuite/lib/libgomp.exp: load fortran-modules.exp + +2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * configure.tgt (mips-sgi-irix6*): Remove. + +2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * configure.tgt (alpha*-dec-osf*): Remove. + + * config/osf/sem.h: Remove. + * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally. + +2012-02-29 Eric Botcazou <ebotcazou@adacore.com> + + * config/linux/sparc/futex.h (cpu_relax): Read from CC register. + +2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR libstdc++/52188 + * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming. + Remove ENABLE_SYMVERS_SOL2. + * configure: Regenerate. + * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable. + (PREPROCESS): New variable. + (libgomp.ver): New target. + [LIBGOMP_BUILD_VERSIONED_SHLIB && + LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove + LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling. + Use libgomp.ver. + [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun. + * Makefile.in: Regenerate. + +2012-02-14 Walter Lee <walt@tilera.com> + + * configure.tgt: Handle tilegx and tilepro. + * config/linux/tile/futex.h: New file. + +2012-02-08 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/46886 + * testsuite/libgomp.c/pr46886.c: New testcase. + +2012-01-25 Matthias Klose <doko@ubuntu.com> + + * config/linux/arm: Remove empty directory. + * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*. + +2011-12-09 Alan Modra <amodra@gmail.com> + + PR libgomp/51376 + * task.c (GOMP_taskwait): Don't access task->children outside of + task_lock mutex region. + (GOMP_task): Likewise. + +2011-12-06 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/51132 + * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays + to file scope. + * testsuite/libgomp.graphite/force-parallel-3.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-6.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-7.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-8.c: Likewise. + * testsuite/libgomp.graphite/force-parallel-9.c: Likewise. + +2011-12-02 Alan Modra <amodra@gmail.com> + + * config/linux/affinity.c: Use atomic rather than sync builtin. + * config/linux/lock.c: Likewise. + * config/linux/ptrlock.h: Likewise. + * config/linux/ptrlock.c: Likewise. + * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here.. + * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here. + * config/linux/futex.h (atomic_write_barrier): Delete unused function. + * config/linux/alpha/futex.h (atomic_write_barrier): Likewise. + * config/linux/ia64/futex.h (atomic_write_barrier): Likewise. + * config/linux/mips/futex.h (atomic_write_barrier): Likewise. + * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise. + * config/linux/s390/futex.h (atomic_write_barrier): Likewise. + * config/linux/sparc/futex.h (atomic_write_barrier): Likewise. + * config/linux/x86/futex.h (atomic_write_barrier): Likewise. + +2011-11-30 Alan Modra <amodra@gmail.com> + + PR libgomp/51298 + * config/linux/bar.h: Use atomic rather than sync builtins. + * config/linux/bar.c: Likewise. Add missing acquire + synchronisation on generation field. + * task.c (gomp_barrier_handle_tasks): Regain lock so as to not + double unlock. + +2011-11-30 Alan Modra <amodra@gmail.com> + + * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence. + * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence. + * config/linux/mutex.h: Use atomic rather than sync builtins. + * config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state. + * config/linux/omp-lock.h: Comment fix. + * config/linux/arm/mutex.h: Delete. + * config/linux/powerpc/mutex.h: Delete. + * config/linux/ia64/mutex.h: Delete. + * config/linux/mips/mutex.h: Delete. + +2011-11-30 Alan Modra <amodra@gmail.com> + + PR libgomp/51249 + * config/linux/sem.h: Rewrite. + * config/linux/sem.c: Rewrite. + +2011-11-28 Richard Henderson <rth@redhat.com> + + * libgomp.h (enum memmodel): New. + +2011-11-21 Andreas Tobler <andreast@fgznet.ch> + + * configure: Regenerate. + +2011-10-10 Matthias Klose <doko@ubuntu.com> + + * config/posix95: Remove empty directory. + +2011-08-26 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.fortran/threadprivate4.f90: New test. + +2011-08-19 Jakub Jelinek <jakub@redhat.com> + + PR fortran/49792 + * testsuite/libgomp.fortran/pr49792-1.f90: New test. + * testsuite/libgomp.fortran/pr49792-2.f90: New test. + +2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * config/posix95/lock.c, posix95/omp-lock.h: Remove. + +2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR libgomp/49965 + * testsuite/libgomp.c++/task-8.C: Replaced err by errval. + +2011-08-03 Uros Bizjak <ubizjak@gmail.com> + + * config/linux/proc.h: New. + * config/linux/proc.c: Include "proc.h". Do not include <sched.h>. + (gomp_cpuset_popcount): Rename from cpuset_popcount. No more static. + (gomp_init_num_threads): Update call to cpuset_popcount. + (get_num_procs): Ditto. + * config/linux/affinity.c (gomp_init_affinity): Call + gomp_cpuset_popcount. + +2011-08-02 Jakub Jelinek <jakub@redhat.com> + + PR fortran/42041 + PR fortran/46752 + * omp.h.in (omp_in_final): New prototype. + * omp_lib.f90.in (omp_in_final): New interface. + (omp_integer_kind, omp_logical_kind): Remove + and replace all its uses in the module with 4. + (openmp_version): Change to 201107. + * omp_lib.h.in (omp_sched_static, omp_sched_dynamic, + omp_sched_guided, omp_sched_auto): Use omp_sched_kind + kind for the parameters. + (omp_in_final): New external. + (openmp_version): Change to 201107. + * task.c (omp_in_final): New function. + (gomp_init_task): Initialize final_task. + (GOMP_task): Remove unused attribute from flags. Handle final + tasks. + (GOMP_taskyield): New function. + (omp_in_final): Return true if if (false) or final (true) task + or descendant of final (true). + * fortran.c (omp_in_final_): New function. + * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_. + (GOMP_3.0): Export GOMP_taskyield. + * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New + variables. + (parse_unsigned_long_list): New function. + (initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean + with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity + even if parse_affinity returned false. + * config/linux/affinity.c (gomp_init_affinity): Handle + gomp_cpu_affinity_len == 0. + * libgomp_g.h (GOMP_taskyield): New prototype. + * libgomp.h (struct gomp_task): Add final_task field. + (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs. + * team.c (gomp_team_start): Override new task's nthreads_var icv + if list form OMP_NUM_THREADS has been used and it has value for + the new nesting level. + + * testsuite/libgomp.c/atomic-11.c: New test. + * testsuite/libgomp.c/atomic-12.c: New test. + * testsuite/libgomp.c/atomic-13.c: New test. + * testsuite/libgomp.c/atomic-14.c: New test. + * testsuite/libgomp.c/reduction-6.c: New test. + * testsuite/libgomp.c/task-5.c: New test. + * testsuite/libgomp.c++/atomic-2.C: New test. + * testsuite/libgomp.c++/atomic-3.C: New test. + * testsuite/libgomp.c++/atomic-4.C: New test. + * testsuite/libgomp.c++/atomic-5.C: New test. + * testsuite/libgomp.c++/atomic-6.C: New test. + * testsuite/libgomp.c++/atomic-7.C: New test. + * testsuite/libgomp.c++/atomic-8.C: New test. + * testsuite/libgomp.c++/atomic-9.C: New test. + * testsuite/libgomp.c++/task-8.C: New test. + * testsuite/libgomp.c++/reduction-4.C: New test. + * testsuite/libgomp.fortran/allocatable7.f90: New test. + * testsuite/libgomp.fortran/allocatable8.f90: New test. + * testsuite/libgomp.fortran/crayptr3.f90: New test. + * testsuite/libgomp.fortran/omp_atomic3.f90: New test. + * testsuite/libgomp.fortran/omp_atomic4.f90: New test. + * testsuite/libgomp.fortran/pointer1.f90: New test. + * testsuite/libgomp.fortran/pointer2.f90: New test. + * testsuite/libgomp.fortran/task4.f90: New test. + +2011-08-02 Tobias Burnus <burnus@net-b.de> + + * libgomp.texi: Update OpenMP spec references to 3.1. + (omp_in_final,OMP_PROC_BIND): New sections. + (OMP_NUM_THREADS): Document that the value can be now a list. + (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref. + +2011-08-02 H.J. Lu <hongjiu.lu@intel.com> + + * config/linux/x86/futex.h: Check __x86_64__ instead of + __LP64__. + +2011-07-29 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/49897 + PR middle-end/49898 + * testsuite/libgomp.c/pr49897-1.c: New test. + * testsuite/libgomp.c/pr49897-2.c: New test. + * testsuite/libgomp.c/pr49898-1.c: New test. + * testsuite/libgomp.c/pr49898-2.c: New test. + +2011-07-28 H.J. Lu <hongjiu.lu@intel.com> + + * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486 + for ia32 instead of ilp32. + + * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32. + * testsuite/libgomp.c/atomic-6.c: Likewise. + +2011-07-23 Sebastian Pop <sebastian.pop@amd.com> + + * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail. + * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern. + +2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR libgomp/45351 + * config/osf/sem.h: New file. + * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path. + +2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR target/49541 + * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to + ldflags. + +2011-07-15 Jakub Jelinek <jakub@redhat.com> + + * config/linux/wait.h (do_spin): New inline, largely copied + from do_wait, just don't do futex_wait here, instead return true if + it should be done. + (do_wait): Implement using do_spin. + * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument + to prototype. + (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of + __sync_bool_compare_and_swap, pass the oldval to + gomp_mutex_lock_slow. + * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument. + If all mutex contenders are just spinning and not sleeping, don't + change state to 2 unnecessarily. Optimize the loop when state has + already become 2 to use just one atomic operation per loop instead + of two. + * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument + to prototype. + (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of + __sync_bool_compare_and_swap, pass the oldval to + gomp_mutex_lock_slow. + +2011-06-22 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/49490 + * iter.c (gomp_iter_static_next): For chunk size 0 + only use n ceil/ nthreads size for the first + n % nthreads threads in the team instead of + all threads except for the last few ones which + get less work or none at all. + * iter_ull.c (gomp_iter_ull_static_next): Likewise. + * env.c (parse_schedule): If OMP_SCHEDULE doesn't have + chunk argument, set run_sched_modifier to 0 for static + resp. 1 for other kinds. If chunk argument is 0 + and not static, set value to 1. + +2011-05-19 Jakub Jelinek <jakub@redhat.com> + + PR c++/49043 + * testsuite/libgomp.c++/pr49043.C: New test. + + PR c++/48869 + * testsuite/libgomp.c++/pr48869.C: New test. + +2011-05-06 Jakub Jelinek <jakub@redhat.com> + + PR fortran/48894 + * fortran.c: Include limits.h. + (TO_INT): Define. + (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of + *set. + (omp_set_num_threads_8_, omp_set_schedule_8_, + omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_, + omp_get_team_size_8_): Use TO_INT macro. + * testsuite/libgomp.fortran/pr48894.f90: New test. + +2011-04-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/48591 + * testsuite/libgomp.c/pr48591.c: New test. + +2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR bootstrap/48135 + * acinclude.m4 (enable_symvers): Handle --disable-symvers. + * configure: Regenerate. + 2011-02-27 Jakub Jelinek <jakub@redhat.com> PR fortran/47886 @@ -98,7 +6016,7 @@ Tobias Burnus <burnus@net-b.de> PR fortran/32049 - * configure.ac: + * configure.ac: * configure: Regenerate. 2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com> @@ -377,7 +6295,6 @@ PR fortran/41102 omp_lib.h.in: Fix -std=f95 errors. - 2009-08-14 David Edelsohn <edelsohn@gnu.org> * testsuite/libgomp.graphite: Move from gcc.dg/graphite. @@ -862,7 +6779,7 @@ (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New functions. (gomp_team_start): Create new pool if current thread doesn't have - one. Use pool fields instead of global gomp_* variables. + one. Use pool fields instead of global gomp_* variables. Initialize thread_pool field for new threads. Clear single_count. Change last argument from ws to team, don't create new team, set ts.work_share to &team->work_shares[0] and clear @@ -1094,7 +7011,7 @@ inlines. * config/posix/bar.c (gomp_barrier_init): Clear generation field. (gomp_barrier_wait_end): Change second argument to - gomp_barrier_state_t. + gomp_barrier_state_t. (gomp_team_barrier_wait, gomp_team_barrier_wait_end, gomp_team_barrier_wake): New functions. * config/linux/mutex.c: Include wait.h instead of libgomp.h and @@ -2930,3 +8847,9 @@ 2005-05-03 Richard Henderson <rth@redhat.com> Initial implementation and checkin. + +Copyright (C) 2005-2017 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved.