2020-11-14 Jakub Jelinek * testsuite/libgomp.c-c++-common/allocate-1.c (struct S): New type. (foo): Add tests for non-VLA private and firstprivate clauses on omp task. (bar): Likewise. Remove taking of address from private/firstprivate variables. * testsuite/libgomp.c++/allocate-1.C (struct S): New type. (foo): Add p, q, px and s arguments. Add tests for array reductions and for non-VLA private and firstprivate clauses on omp task. (bar): Removed. (main): Adjust foo caller. Don't call bar. 2020-11-13 Gergö Barany Thomas Schwinge * testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c: New. * testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Adjust. * testsuite/libgomp.oacc-fortran/pr94358-1.f90: Likewise. 2020-11-13 Gergö Barany Thomas Schwinge PR fortran/94358 * testsuite/libgomp.oacc-fortran/pr94358-1.f90: New. 2020-11-13 Jakub Jelinek * testsuite/libgomp.c-c++-common/allocate-1.c (foo): Add tests for array reductions. (main): Adjust foo callers. 2020-11-12 Jakub Jelinek * libgomp.map (GOMP_alloc, GOMP_free): Export at GOMP_5.0.1. * omp.h.in (omp_alloc): Add malloc and alloc_size attributes. * libgomp_g.h (GOMP_alloc, GOMP_free): Declare. * allocator.c (omp_aligned_alloc): New for now static function, add alignment argument and handle it. (omp_alloc): Reimplement using omp_aligned_alloc. (GOMP_alloc, GOMP_free): New functions. (omp_free): Add ialias. * testsuite/libgomp.c-c++-common/allocate-1.c: New test. * testsuite/libgomp.c++/allocate-1.C: New test. 2020-11-12 Thomas Schwinge PR fortran/97782 * testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90: Adjust. 2020-11-10 Chung-Lin Tang * libgomp.h (enum gomp_map_vars_kind): Adjust enum values to be bit-flag usable. * oacc-mem.c (acc_map_data): Adjust gomp_map_vars argument flags to 'GOMP_MAP_VARS_OPENACC | GOMP_MAP_VARS_ENTER_DATA'. (goacc_enter_datum): Likewise for call to gomp_map_vars_async. (goacc_enter_data_internal): Likewise. * target.c (gomp_map_vars_internal): Change checks of GOMP_MAP_VARS_ENTER_DATA to use bit-and (&). Adjust use of gomp_attach_pointer for OpenMP cases. (gomp_exit_data): Add handling of GOMP_MAP_DETACH. (GOMP_target_enter_exit_data): Add handling of GOMP_MAP_ATTACH. * testsuite/libgomp.c-c++-common/ptr-attach-1.c: New testcase. 2020-11-05 Ulrich Drepper Kwok Cheung Yeung * Makefile.am (%.mod): Add -cpp and -fopenmp to compile flags. * Makefile.in: Regenerate. * fortran.c: Wrap uses of omp_set_nested and omp_get_nested with pragmas to ignore -Wdeprecated-declarations warnings. * icv.c: Likewise. * omp.h.in (__GOMP_DEPRECATED_5_0): Define. Mark omp_lock_hint_* enum values, omp_lock_hint_t, omp_set_nested, and omp_get_nested with __GOMP_DEPRECATED_5_0. * omp_lib.f90.in: Mark omp_get_nested and omp_set_nested as deprecated. * testsuite/libgomp.c++/affinity-1.C: Add -Wno-deprecated-declarations to test options. * testsuite/libgomp.c/affinity-1.c: Likewise. * testsuite/libgomp.c/affinity-2.c: Likewise. * testsuite/libgomp.c/appendix-a/a.15.1.c: Likewise. * testsuite/libgomp.c/lib-1.c: Likewise. * testsuite/libgomp.c/nested-1.c: Likewise. * testsuite/libgomp.c/nested-2.c: Likewise. * testsuite/libgomp.c/nested-3.c: Likewise. * testsuite/libgomp.c/pr32362-1.c: Likewise. * testsuite/libgomp.c/pr32362-2.c: Likewise. * testsuite/libgomp.c/pr32362-3.c: Likewise. * testsuite/libgomp.c/pr35549.c: Likewise. * testsuite/libgomp.c/pr42942.c: Likewise. * testsuite/libgomp.c/pr61200.c: Likewise. * testsuite/libgomp.c/sort-1.c: Likewise. * testsuite/libgomp.c/target-5.c: Likewise. * testsuite/libgomp.c/target-6.c: Likewise. * testsuite/libgomp.c/teams-1.c: Likewise. * testsuite/libgomp.c/thread-limit-1.c: Likewise. * testsuite/libgomp.c/thread-limit-2.c: Likewise. * testsuite/libgomp.c/thread-limit-4.c: Likewise. * testsuite/libgomp.fortran/affinity1.f90: Likewise. * testsuite/libgomp.fortran/lib1.f90: Likewise. * testsuite/libgomp.fortran/lib2.f: Likewise. * testsuite/libgomp.fortran/nested1.f90: Likewise. * testsuite/libgomp.fortran/teams1.f90: Likewise. 2020-11-02 Thomas Schwinge PR target/85486 * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: Simplify and enhance. * testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85486.c: Likewise. 2020-11-02 Thomas Schwinge PR testsuite/80219 PR testsuite/85303 * testsuite/lib/libgomp.exp (libgomp_init): Set 'gcc_warning_prefix', 'gcc_error_prefix'. 2020-10-30 Jakub Jelinek * target.c (gomp_map_vars_internal): Use FIELD_TGT_EMPTY macro even in field_tgt_clear initializer. 2020-10-28 Jakub Jelinek * testsuite/libgomp.c/target-42.c: New test. 2020-10-28 Jakub Jelinek Tom de Vries PR testsuite/81690 * testsuite/libgomp.c/usleep.h: New file. * testsuite/libgomp.c/target-32.c: Include usleep.h. (main): Use tgt_usleep instead of usleep. * testsuite/libgomp.c/thread-limit-2.c: Include usleep.h. (main): Use tgt_usleep instead of usleep. 2020-10-28 Jakub Jelinek PR lto/96680 * testsuite/libgomp.c/declare-variant-1.c: New test. 2020-10-22 Jakub Jelinek * testsuite/libgomp.c/target-41.c: New test. 2020-10-22 Jakub Jelinek * icv.c (omp_get_initial_device): Remove including corresponding ialias. * icv-device.c (omp_get_initial_device): New function. Return gomp_get_num_devices (). Add ialias. * target.c (resolve_device): Don't fail with OMP_TARGET_OFFLOAD=mandatory if device_id is equal to gomp_get_num_devices (). (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, omp_pause_resource): Use gomp_get_num_devices () instead of GOMP_DEVICE_HOST_FALLBACK on the first use in the functions, in uses dominated by the gomp_get_num_devices call use num_devices_openmp instead. * libgomp.texi (omp_get_initial_device): Document. * config/gcn/icv-device.c (omp_get_initial_device): New function. Add ialias. * config/nvptx/icv-device.c (omp_get_initial_device): Likewise. * testsuite/libgomp.c/target-40.c: New test. 2020-10-21 Jakub Jelinek * env.c (parse_target_offload): Change new_offload var type to int, preinitialize to -1, remove found var and test new_offload != -1 instead of found. 2020-10-20 Jakub Jelinek * target.c (gomp_target_init): Inside of the function, use automatic variables corresponding to num_devices, num_devices_openmp and devices global variables and update the globals only at the end of the function. 2020-10-20 Kwok Cheung Yeung * env.c (gomp_target_offload_var): New. (parse_target_offload): New. (handle_omp_display_env): Print value of OMP_TARGET_OFFLOAD. (initialize_env): Parse OMP_TARGET_OFFLOAD. * libgomp.h (gomp_target_offload_t): New. (gomp_target_offload_var): New. * libgomp.texi (OMP_TARGET_OFFLOAD): New section. * target.c (resolve_device): Generate error if device not found and offloading is mandatory. (gomp_target_fallback): Generate error if offloading is mandatory. (GOMP_target): Add argument in call to gomp_target_fallback. (GOMP_target_ext): Likewise. (gomp_target_data_fallback): Generate error if offloading is mandatory. (GOMP_target_data): Add argument in call to gomp_target_data_fallback. (GOMP_target_data_ext): Likewise. (gomp_target_task_fn): Add argument in call to gomp_target_fallback. (gomp_target_init): Return early if offloading is disabled. 2020-10-15 Kwok Cheung Yeung * libgomp.texi (omp_get_max_active_levels): Modify description. (omp_get_supported_active_levels): Make descriptions consistent. 2020-10-14 Jakub Jelinek * libgomp.texi (omp_get_supported_active_levels): Fix a typo. 2020-10-13 Kwok Cheung Yeung * env.c (gomp_max_active_levels_var): Initialize to gomp_supported_active_levels. (initialize_env): Limit gomp_max_active_levels_var to be at most equal to gomp_supported_active_levels. * fortran.c (omp_get_supported_active_levels): Add ialias_redirect. (omp_get_supported_active_levels_): New. * icv.c (omp_set_max_active_levels): Limit gomp_max_active_levels_var to at most equal to gomp_supported_active_levels. (omp_get_supported_active_levels): New. * libgomp.h (gomp_supported_active_levels): New. * libgomp.map (OMP_5.0.1): Add omp_get_supported_active_levels and omp_get_supported_active_levels_. * libgomp.texi (omp_get_supported_active_levels): New. (omp_set_max_active_levels): Update. Add reference to omp_get_supported_active_levels. * omp.h.in (omp_get_supported_active_levels): New. * omp_lib.f90.in (omp_get_supported_active_levels): New. * omp_lib.h.in (omp_get_supported_active_levels): New. * testsuite/libgomp.c/lib-2.c (main): Check omp_get_max_active_levels against omp_get_supported_active_levels. * testsuite/libgomp.fortran/lib4.f90 (lib4): Likewise. 2020-10-11 Clement Chigot * config/t-aix: Delete and recreate libgomp before creating FAT library. 2020-10-08 Tom de Vries PR libgomp/81802 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_run): Report launch dimensions. 2020-10-06 Tom de Vries * testsuite/libgomp.oacc-fortran/declare-5.f90: Add xfail for PR92790. 2020-10-06 Tom de Vries PR middle-end/90861 * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Remove xfail. 2020-10-05 Tom de Vries PR fortran/95654 * testsuite/libgomp.fortran/pr95654.f90: New test. 2020-10-02 Tobias Burnus * Makefile.in: Regenerate with automake 1.15.1. * aclocal.m4: Likewise. * configure: Likewise. * testsuite/Makefile.in: Likewise. 2020-09-30 Andrew Stubbs * parallel.c (gomp_resolve_num_threads): Ignore nest_var on nvptx and amdgcn targets. 2020-09-30 Tobias Burnus * testsuite/libgomp.fortran/declare-target-3.f90: New test. 2020-09-29 Andrew Stubbs * config/gcn/bar.c (gomp_barrier_wait_end): Skip the barrier if the total number of threads is one. (gomp_team_barrier_wake): Likewise. (gomp_team_barrier_wait_end): Likewise. (gomp_team_barrier_wait_cancel_end): Likewise. * config/nvptx/bar.c (gomp_barrier_wait_end): Likewise. (gomp_team_barrier_wake): Likewise. (gomp_team_barrier_wait_end): Likewise. (gomp_team_barrier_wait_cancel_end): Likewise. * testsuite/libgomp.c-c++-common/nested-parallel-unbalanced.c: New test. 2020-09-28 Tobias Burnus PR middle-end/96390 * testsuite/libgomp.c++/pr96390.C: New test. * testsuite/libgomp.c-c++-common/pr96390.c: New test. 2020-09-27 Clement Chigot * config/t-aix: Use $(AR) without -X32_64. 2020-09-25 Jakub Jelinek * testsuite/libgomp.c/loop-25.c: New test. 2020-09-22 Tobias Burnus PR fortran/95654 * testsuite/libgomp.fortran/pr66199-5.f90: Make stop codes unique. 2020-09-22 Tom de Vries * plugin/plugin-nvptx.c (link_ptx): Print elog if cuLinkComplete call fails. 2020-09-16 Nathan Sidwell * testsuite/libgomp.c++/udr-3.C: Add missing ctor. 2020-09-15 Tobias Burnus PR fortran/96668 * target.c (gomp_map_vars_internal): Initialize has_nullptr. 2020-09-15 Tobias Burnus PR fortran/96668 * libgomp.h (struct target_var_desc): Add has_null_ptr_assoc member. * target.c (gomp_map_vars_existing): Add always_to_flag flag. (gomp_map_vars_existing): Update call to it. (gomp_map_fields_existing): Likewise (gomp_map_vars_internal): Update PSET handling such that if a nullptr is now allocated or if GOMP_MAP_POINTER is used PSET is updated and pointer remapped. (GOMP_target_enter_exit_data): Hanlde GOMP_MAP_ALWAYS_POINTER like GOMP_MAP_POINTER. * testsuite/libgomp.fortran/map-alloc-ptr-1.f90: New test. * testsuite/libgomp.fortran/map-alloc-ptr-2.f90: New test. 2020-09-14 Tom de Vries * config/nvptx/atomic.c: New file. Add __sync_val_compare_and_swap_16. * testsuite/libgomp.c-c++-common/reduction-16.c: Add -latomic for target offload_target_nvptx. 2020-09-08 Julian Brown * testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c: Remove iteration-ordering assumptions. 2020-09-08 Julian Brown * testsuite/libgomp.oacc-fortran/collapse-1.f90: Fix race condition. * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise. 2020-08-20 Chung-Lin Tang * plugin/plugin-nvptx.c (nvptx_free): Change "GOMP_PLUGIN_acc_thread () == NULL" test into check of CUDA_ERROR_NOT_PERMITTED status for cuMemGetAddressRange. Adjust comments. 2020-08-20 Tobias Burnus * testsuite/libgomp.fortran/lastprivate-conditional-10.f90: New test. 2020-08-13 Kwok Cheung Yeung * testsuite/libgomp.c-c++-common/reduction-16.c: New. 2020-08-13 Jakub Jelinek * testsuite/libgomp.c/loop-22.c (main): Add some further tests. * testsuite/libgomp.c/loop-23.c (main): Likewise. * testsuite/libgomp.c/loop-24.c: New test. 2020-08-08 Jakub Jelinek Tobias Burnus PR fortran/93553 * testsuite/libgomp.fortran/pr93553.f90: New test. 2020-08-05 Jakub Jelinek * testsuite/libgomp.c/loop-22.c: New test. * testsuite/libgomp.c/loop-23.c: New test. 2020-08-05 Jakub Jelinek PR middle-end/96459 * testsuite/libgomp.c/teams-3.c: New test. * testsuite/libgomp.c-c++-common/for-2.h (OMPTEAMS): Define to nothing if not defined yet. (N(test)): Use it before all N(f*) calls. * testsuite/libgomp.c-c++-common/for-14.c (DO_PRAGMA, OMPTEAMS): Define. (main): Don't call all test_* functions from within #pragma omp teams reduction(|:err), call them directly. 2020-08-04 Tom de Vries PR target/96428 * testsuite/libgomp.oacc-fortran/pr96628-part1.f90: New test. * testsuite/libgomp.oacc-fortran/pr96628-part2.f90: New test. 2020-08-03 Julian Brown Thomas Schwinge * testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90: Don't run for shared-memory devices. Extend with further checking. 2020-08-03 Martin Jambor * plugin/Makefrag.am: Remove configuration of HSA plugin. * aclocal.m4: Regenerated. * Makefile.in: Regenerated. * config.h.in: Regenerated. * configure: Regenerated. * plugin/configfrag.ac: Likewise. * plugin/hsa_ext_finalize.h: Removed. * plugin/plugin-hsa.c: Likewise. * testsuite/Makefile.in: Regenerated. * testsuite/lib/libgomp.exp (offload_target_to_openacc_device_type): Remove hsa case. (check_effective_target_hsa_offloading_selected_nocache): Removed (check_effective_target_hsa_offloading_selected): Likewise. (libgomp_init): Do not add -Wno-hsa to additional_flags. * testsuite/libgomp.hsa.c/alloca-1.c: Removed test. * testsuite/libgomp.hsa.c/bitfield-1.c: Likewise. * testsuite/libgomp.hsa.c/bits-insns.c: Likewise. * testsuite/libgomp.hsa.c/builtins-1.c: Likewise. * testsuite/libgomp.hsa.c/c.exp: Likewise. * testsuite/libgomp.hsa.c/complex-1.c: Likewise. * testsuite/libgomp.hsa.c/complex-align-2.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/pr82416.c: Likewise. * testsuite/libgomp.hsa.c/rotate-1.c: Likewise. * testsuite/libgomp.hsa.c/staticvar.c: Likewise. * testsuite/libgomp.hsa.c/switch-1.c: Likewise. * testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise. * testsuite/libgomp.hsa.c/switch-sbr-2.c: Likewise. * testsuite/libgomp.hsa.c/tiling-1.c: Likewise. * testsuite/libgomp.hsa.c/tiling-2.c: Likewise. 2020-07-27 Julian Brown Thomas Schwinge * libgomp.h (struct target_var_desc): Rename do_detach field to is_attach. * oacc-mem.c (goacc_exit_datum_1): Add assert. Don't set finalize for GOMP_MAP_FORCE_DETACH. Update checking to use is_attach field. (goacc_enter_data_internal): Don't affect reference counts for attach mappings. (goacc_exit_data_internal): Don't affect reference counts for detach mappings. * target.c (gomp_map_vars_existing): Don't affect reference counts for attach mappings. (gomp_map_vars_internal): Set renamed is_attach flag unconditionally to mark attach mappings. (gomp_unmap_vars_internal): Use is_attach flag to prevent affecting reference count for attach mappings. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-2.c: New test. * testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: Mark test as shouldfail. * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Adjust to fail gracefully in no-finalize mode. * testsuite/libgomp.oacc-c-c++-common/mdc-refcount-3.c: New file. 2020-07-24 Thomas Schwinge * testsuite/libgomp.oacc-c++/c++.exp: Unset 'offload_target' after use. * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. 2020-07-23 Julian Brown Thomas Schwinge * target.c (gomp_unmap_vars_internal): Remove unnecessary forcing of finalization for detach operation. * testsuite/libgomp.oacc-c-c++-common/structured-detach-underflow.c: New test. 2020-07-23 Tobias Burnus * configure.ac: Add OMP_DEPEND_KIND and OMP_INT128_SIZE. * libgomp_f.h.in (omp_check_defines): Check whether sizeof of determined Fortran kind and C typedef match. * omp_lib.f90.in: Add omp_depened_kind. * omp_lib.h.in: Likewise; fix omp_alloctrait_key_kind. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2020-07-22 Tobias Burnus * testsuite/libgomp.c-c++-common/critical-hint-1.c: New; moved from gcc/testsuite/c-c++-common/gomp/. * testsuite/libgomp.c-c++-common/critical-hint-2.c: Likewise. * testsuite/libgomp.fortran/critical-hint-1.f90: New; moved from gcc/testsuite/gfortran.dg/gomp/. * testsuite/libgomp.fortran/critical-hint-2.f90: Likewise. 2020-07-22 Tobias Burnus * omp_lib.f90.in: Add omp_sync_hint_* and omp_sync_hint_kind. * omp_lib.h.in: Likewise. 2020-07-18 H.J. Lu PR target/95620 * testsuite/libgomp.c/pr95620.c: New test. 2020-07-16 Julian Brown Thomas Schwinge * testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90: New test. * testsuite/libgomp.oacc-fortran/attach-descriptor-2.f90: New test. 2020-07-15 Tobias Burnus * testsuite/libgomp.fortran/alloc-1.F90: Use c_size_t to avoid conversion on 32bit systems from 32bit to 64bit due to -fdefault-integer-8. 2020-07-15 Tobias Burnus * testsuite/libgomp.fortran/struct-elem-map-1.f90: Remove unused variables; add character(kind=4) tests; update TODO comment. 2020-07-15 Tobias Burnus * allocator.c: Add ialias for omp_init_allocator and omp_destroy_allocator. * configure.ac: Set INTPTR_T_KIND. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * fortran.c (omp_init_allocator_, omp_destroy_allocator_, omp_set_default_allocator_, omp_get_default_allocator_): New functions and ialias_redirect. * icv.c: Add ialias for omp_set_default_allocator and omp_get_default_allocator. * libgomp.map (OMP_5.0.1): Add omp_init_allocator_, omp_destroy_allocator_, omp_set_default_allocator_ and omp_get_default_allocator_. * omp_lib.f90.in: Add allocator traits parameters, declare allocator routines and add related kind parameters. * omp_lib.h.in: Likewise. * testsuite/libgomp.c-c++-common/alloc-2.c: Fix sizeof. * testsuite/libgomp.fortran/alloc-1.F90: New test. * testsuite/libgomp.fortran/alloc-2.F90: New test. * testsuite/libgomp.fortran/alloc-3.F: New test. * testsuite/libgomp.fortran/alloc-4.f90: New test. * testsuite/libgomp.fortran/alloc-5.f90: New test. 2020-07-14 Tom de Vries Cesar Philippidis Thomas Schwinge Kwok Cheung Yeung * oacc-init.c (acc_init_state_lock, acc_init_state, acc_init_thread): New variable. (acc_init_1): Set acc_init_thread to pthread_self (). Set acc_init_state to initializing at the start, and to initialized at the end. (self_initializing_p): New function. (acc_get_device_type): Return acc_device_none if called by thread that is currently executing acc_init_1. * libgomp.texi (acc_get_device_type): Update documentation. (Implementation Status and Implementation-Defined Behavior): Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-2.c: New. 2020-07-14 David Edelsohn * config/t-aix: Set BITS from compiler cpp macro. 2020-07-14 Tobias Burnus * testsuite/libgomp.fortran/struct-elem-map-1.f90: New test. 2020-07-14 Tobias Burnus PR fortran/67311 * testsuite/libgomp.fortran/target-map-1.f90: New test. 2020-07-14 Jakub Jelinek * testsuite/libgomp.c/loop-21.c: New test. 2020-07-13 Julian Brown Thomas Schwinge * testsuite/libgomp.oacc-fortran/dynamic-pointer-1.f90: New test. 2020-07-10 Julian Brown Thomas Schwinge * libgomp.h (struct splay_tree_key_s): Change virtual_refcount to dynamic_refcount. (struct gomp_device_descr): Remove GOMP_MAP_VARS_OPENACC_ENTER_DATA. * oacc-mem.c (acc_map_data): Substitute virtual_refcount for dynamic_refcount. (acc_unmap_data): Update comment. (goacc_map_var_existing, goacc_enter_datum): Adjust for dynamic_refcount semantics. (goacc_exit_datum_1, goacc_exit_datum): Re-add some error checking. Adjust for dynamic_refcount semantics. (goacc_enter_data_internal): Implement "present" case of dynamic memory-map handling here. Update "non-present" case for dynamic_refcount semantics. (goacc_exit_data_internal): Use goacc_exit_datum_1. * target.c (gomp_map_vars_internal): Remove GOMP_MAP_VARS_OPENACC_ENTER_DATA handling. Update for dynamic_refcount handling. (gomp_unmap_vars_internal): Remove virtual_refcount handling. (gomp_load_image_to_device): Substitute dynamic_refcount for virtual_refcount. * testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: Remove XFAILs. * testsuite/libgomp.oacc-c-c++-common/refcounting-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/refcounting-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/struct-3-1-1.c: New test. * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Remove XFAILs and trace output. * testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: Remove trace output. * testsuite/libgomp.oacc-fortran/dynamic-incr-structural-1.f90: New test. * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-4.c: Remove stale comment. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-1.f90: Remove XFAILs. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-2.F90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-1.f90: Adjust XFAIL. 2020-07-10 Julian Brown Thomas Schwinge * oacc-mem.c (goacc_map_var_existing): New function. (goacc_enter_datum): Use above function. (goacc_exit_datum_1): New function. (goacc_exit_datum): Use above function. 2020-07-09 Julian Brown Thomas Schwinge PR middle-end/95270 * testsuite/libgomp.oacc-c-c++-common/pr95270-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr95270-2.c: New test. 2020-07-09 Julian Brown * oacc-mem.c (find_group_last): Group data-movement clauses (GOMP_MAP_TO_PSET, GOMP_MAP_TO, etc.) together with a subsequent GOMP_MAP_ATTACH. Allow standalone GOMP_MAP_ATTACH also. 2020-07-09 Jakub Jelinek * testsuite/libgomp.c/loop-19.c: New test. * testsuite/libgomp.c/loop-20.c: New test. 2020-07-09 Jakub Jelinek * omp.h.in (omp_alloctrait_value_t): Change omp_atv_default from 2 to -1. Add omp_atv_serialized and define omp_atv_sequential using it. Remove __omp_alloctrait_value_max__. * allocator.c (omp_init_allocator): Handle omp_atv_default for omp_atk_alignment and omp_atk_pool_size. 2020-07-03 Thomas Schwinge * oacc-mem.c (goacc_exit_data_internal): Revert always-copyfrom behavior for 'GOMP_MAP_FORCE_FROM'. * testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: Adjust XFAIL. 2020-07-03 Thomas Schwinge * oacc-mem.c (goacc_exit_data_internal): Remove 'GOMP_MAP_ALWAYS_FROM' handling. 2020-06-30 Thomas Schwinge * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Replace fragile 'scan-assembler' with 'scan-offload-rtl'. * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr85381.c: Likewise. 2020-06-30 Thomas Schwinge * target.c (gomp_map_vars_existing): Assert 'kind != GOMP_MAP_ATTACH'. (gomp_map_vars_internal): Clean up. 2020-06-27 Jakub Jelinek * testsuite/libgomp.c/loop-17.c: New test. * testsuite/libgomp.c/loop-18.c: New test. 2020-06-26 Marek Polacek * testsuite/libgomp.c++/atomic-3.C: Use -std=gnu++14. 2020-06-23 Alexandre Oliva * testsuite/lib/libgomp.exp: Load gcc lib scanoffload.exp. * testsuite/lib/libgomp-dg.exp: Drop now-obsolete -save-temps. 2020-06-22 David Edelsohn * Makefile.am: Use -include. * Makefile.in: Regenerate. 2020-06-21 David Edelsohn * Makefile.am (tmake_file): Build and install AIX-style FAT libraries. * Makefile.in: Regenerate * configure.ac (tmake_file): Substitute. * configure: Regenerate. * configure.tgt (powerpc-ibm-aix*): Define tmake_file. * config/t-aix: New file. 2020-06-17 Thomas Schwinge PR lto/94848 * testsuite/libgomp.fortran/use_device_ptr-optional-3.f90: Add 'dg-do run'. 2020-06-17 Andrew Stubbs * plugin/plugin-gcn.c (init_environment_variables): Use ".so.1" variant for HSA_RUNTIME_LIB name. (find_executable_symbol_1): Delete. (find_executable_symbol): Delete. (init_kernel_properties): Add ".kd" suffix to symbol names. (find_load_offset): Delete. (create_and_finalize_hsa_program): Remove relocation handling. 2020-06-16 Tobias Burnus * testsuite/libgomp.oacc-fortran/routine-10.f90: New test. 2020-06-08 Tobias Burnus PR lto/94848 PR middle-end/95551 * testsuite/libgomp.fortran/target-var.f90: New test. 2020-06-05 Thomas Schwinge Julian Brown * oacc-mem.c (goacc_exit_data_internal) : Explain special handling. 2020-06-05 Thomas Schwinge Julian Brown * oacc-mem.c (goacc_exit_data_internal) : Simplify. 2020-06-05 Julian Brown * testsuite/libgomp.oacc-c-c++-common/struct-copyout-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/struct-copyout-2.c: New test. 2020-06-04 Thomas Schwinge * oacc-mem.c (goacc_exit_data_internal) : Evaluate 'copyfrom' individually for each entry. * testsuite/libgomp.oacc-c-c++-common/struct-1.c: Update. 2020-06-04 Thomas Schwinge * oacc-mem.c (goacc_exit_data_internal) : Evaluate 'finalize' individually for each entry. * testsuite/libgomp.oacc-c-c++-common/struct-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/struct-refcount-1.c: Remove file. 2020-06-04 Thomas Schwinge * testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c: Fix 'sizeof' usage. * testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c: Likewise. 2020-06-04 Thomas Schwinge Julian Brown * oacc-mem.c (goacc_exit_datum): Repair 'is_tgt_unmapped' checking. (acc_unmap_data, goacc_exit_data_internal): Restore 'is_tgt_unmapped' checking. * testsuite/libgomp.oacc-c-c++-common/struct-refcount-1.c: New file. * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: Adjust. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-1.f90: Likewise. 2020-06-04 Thomas Schwinge Julian Brown * oacc-mem.c (acc_unmap_data): Don't open-code 'gomp_remove_var'. 2020-06-04 Thomas Schwinge PR libgomp/92854 * oacc-mem.c (acc_unmap_data): Remove 'tgt' reference counting. 2020-06-04 Thomas Schwinge PR libgomp/92854 * testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: Extend some more. 2020-06-04 Thomas Schwinge Julian Brown * oacc-mem.c (goacc_enter_datum): Use 'tgt' returned from 'gomp_map_vars'. (acc_map_data): Clean up accordingly. 2020-06-04 Thomas Schwinge * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: XFAIL behavior of over-eager 'finalize' clause. * testsuite/libgomp.oacc-fortran/deep-copy-6-no_finalize.F90: New file. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-1-2.F90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-2-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-3-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/mdc-refcount-1-4-2.f90: Likewise. 2020-06-04 Thomas Schwinge * oacc-mem.c (goacc_exit_data_internal): Unlock on error path. 2020-06-04 Julian Brown * oacc-mem.c (acc_attach_async): Add missing gomp_mutex_unlock on error path. (goacc_detach_internal): Likewise. 2020-06-04 Thomas Schwinge * testsuite/libgomp.oacc-fortran/error_stop-1.f: Initialize before the checkpoint. * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise. * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise. 2020-06-02 Jakub Jelinek * allocator.c (omp_free): Fix up build if HAVE_SYNC_BUILTINS is not defined. 2020-05-30 Jakub Jelinek * testsuite/libgomp.c-c++-common/alloc-4.c: New test. 2020-05-30 Jakub Jelinek * allocator.c (omp_alloc): For size == 0, return NULL early. 2020-05-29 H.J. Lu PR bootstrap/95413 * configure: Regenerated. 2020-05-23 Thomas Koenig PR libfortran/95191 * testsuite/libgomp.fortran/async_io_9.f90: New test. 2020-05-19 Jakub Jelinek * omp.h.in (omp_uintptr_t): New typedef. (__GOMP_UINTPTR_T_ENUM): Define. (omp_memspace_handle_t, omp_allocator_handle_t, omp_alloctrait_key_t, omp_alloctrait_value_t, omp_alloctrait_t): New typedefs. (__GOMP_DEFAULT_NULL_ALLOCATOR): Define. (omp_init_allocator, omp_destroy_allocator, omp_set_default_allocator, omp_get_default_allocator, omp_alloc, omp_free): Declare. * libgomp.h (struct gomp_team_state): Add def_allocator field. (gomp_def_allocator): Declare. * libgomp.map (OMP_5.0.1): Export omp_set_default_allocator, omp_get_default_allocator, omp_init_allocator, omp_destroy_allocator, omp_alloc and omp_free. * team.c (gomp_team_start): Copy over ts.def_allocator. * env.c (gomp_def_allocator): New variable. (parse_wait_policy): Adjust function comment. (parse_allocator): New function. (handle_omp_display_env): Print OMP_ALLOCATOR. (initialize_env): Call parse_allocator. * Makefile.am (libgomp_la_SOURCES): Add allocator.c. * allocator.c: New file. * icv.c (omp_set_default_allocator, omp_get_default_allocator): New functions. * testsuite/libgomp.c-c++-common/alloc-1.c: New test. * testsuite/libgomp.c-c++-common/alloc-2.c: New test. * testsuite/libgomp.c-c++-common/alloc-3.c: New test. * Makefile.in: Regenerated. 2020-05-15 H.J. Lu PR bootstrap/95147 * configure: Regenerated. 2020-05-14 Thomas Koenig PR libfortran/95119 * testsuite/libgomp.fortran/close_errors_1.f90: New test. 2020-05-14 H.J. Lu * configure: Regenerated. 2020-05-14 Jakub Jelinek * testsuite/libgomp.c-c++-common/target-40.c: New test. 2020-05-13 Tobias Burnus PR fortran/94690 * testsuite/libgomp.fortran/pr66199-3.f90: New. * testsuite/libgomp.fortran/pr66199-4.f90: New. * testsuite/libgomp.fortran/pr66199-5.f90: New. * testsuite/libgomp.fortran/pr66199-6.f90: New. * testsuite/libgomp.fortran/pr66199-7.f90: New. * testsuite/libgomp.fortran/pr66199-8.f90: New. * testsuite/libgomp.fortran/pr66199-9.f90: New. 2020-05-12 Jakub Jelinek * testsuite/libgomp.c/target-39.c: New test. 2020-04-29 Thomas Schwinge * config/accel/openacc.f90 (acc_device_current): Set to '-1'. * openacc.f90 (acc_device_current): Likewise. * openacc.h (acc_device_current): Likewise. * openacc_lib.h (acc_device_current): Likewise. PR target/94282 * testsuite/libgomp.c-c++-common/function-not-offloaded.c: Remove 'dg-allow-blank-lines-in-output'. * oacc-init.c (get_openacc_name): Handle 'gcn'. * testsuite/lib/libgomp.exp (offload_target_to_openacc_device_type) [amdgcn*]: Return 'radeon'. Adjust all users. (check_effective_target_openacc_amdgcn_accel_present): Rename to... (check_effective_target_openacc_radeon_accel_present): ... this. Adjust all users. (check_effective_target_openacc_amdgcn_accel_selected): Rename to... (check_effective_target_openacc_radeon_accel_selected): ... this. Adjust all users. * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Add 'dg-do run'. 2020-04-23 Andrew Stubbs PR other/94629 * plugin/plugin-gcn.c (init_hsa_context): Check return value from hsa_iterate_agents. (GOMP_OFFLOAD_init_device): Check return values from both calls to hsa_agent_iterate_regions. 2020-04-20 Thomas Schwinge PR middle-end/94635 * testsuite/libgomp.fortran/target-enter-data-2.F90: Add 'dg-do run'. 2020-04-20 Tobias Burnus PR middle-end/94120 * testsuite/libgomp.oacc-c++/declare-pr94120.C: Fix 'declare copy(out)' test case. 2020-04-17 Tobias Burnus PR middle-end/94635 * testsuite/libgomp.fortran/target-enter-data-2.F90: New. 2020-04-13 Thomas Schwinge PR libgomp/92843 * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-1-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-1-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-1.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-1.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-2-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-2-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-2.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-2.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-3-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-3-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-3.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-3.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-4-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-4-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-4.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-4.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-5-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-5-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-5.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-5.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-6-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-6-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-6.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-6.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-7-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-7-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-7.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-7.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-8-lib.c: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-8-lib.c: ... this. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-8.c:: Rename to... * testsuite/libgomp.oacc-c-c++-common/structured-dynamic-lifetimes-8.c: ... this. 2020-04-10 Julian Brown Thomas Schwinge PR libgomp/92843 * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-1-lib.c: New file. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-2-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-3-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-4-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-5-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-6-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-6.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-7-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-7.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-8-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/static-dynamic-lifetimes-8.c: Likewise. 2020-04-10 Thomas Schwinge * testsuite/libgomp.fortran/target-enter-data-1.f90: Add 'dg-do run'. 2020-04-08 Tobias Burnus PR middle-end/94120 * libgomp.oacc-c++/declare-pr94120.C: New. 2020-04-06 Maciej W. Rozycki * configure.ac: Add testsuite/libgomp-site-extra.exp to output files. * configure: Regenerate. * testsuite/libgomp-site-extra.exp.in: New file. * testsuite/libgomp-test-support.exp.in (GCC_UNDER_TEST): Remove variable. * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): New variable. * testsuite/Makefile.in: Regenerate. 2020-04-03 Thomas Schwinge PR tree-optimization/89713 PR c/94392 * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Again expect 'bar.sync'. * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Likewise. 2020-03-31 Tobias Burnus * target.c (GOMP_target_enter_exit_data): Handle PSET/MAP_POINTER. * testsuite/libgomp.fortran/target-enter-data-1.f90: New. 2020-03-24 Tobias Burnus PR libgomp/81689 * testsuite/libgomp.c/target-link-1.c: Remove xfail. 2020-03-20 Tobias Burnus PR libgomp/94251 * target.c (gomp_load_image_to_device): Fix link variable handling. 2020-03-19 Jakub Jelinek PR c++/93931 * testsuite/libgomp.c++/pr93931.C: New test. 2020-03-19 Tobias Burnus * testsuite/libgomp.c-c++-common/function-not-offloaded.c: Add dg-allow-blank-lines-in-output. 2020-03-18 Julian Brown Tobias Burnus * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Really make it work concurrently. 2020-03-18 Tobias Burnus * testsuite/libgomp.oacc-c++/firstprivate-mappings-1.C: Add #define DO_LONG_DOUBLE; set to 1, except for nvidia + gcn. * libgomp.oacc-c-c++-common/firstprivate-mappings-1.c: Likewise. 2020-03-14 Jakub Jelinek PR middle-end/93566 * testsuite/libgomp.c/pr93566.c: New test. 2020-02-21 Frederik Harwath * testsuite/libgomp.oacc-fortran/acc_get_property.f90: Adapt to changes from 2020-02-19, i.e. use integer(c_size_t) instead of integer(acc_device_property) for the type of the return value of acc_get_property. 2020-02-19 Tobias Burnus * .gitattributes: New; whitespace handling for Fortran's openacc_lib.h. * config/accel/openacc.f90 (openacc_kinds): Add acc_device_current. (openacc_internal, acc_on_device_h): Fix argument name; minor cleanup. * libgomp.texi (Enabling OpenACC): No longer mark as experimental. (acc_set_device_num): Fix Fortran argument name, use same name for C. (acc_get_property): Update Fortran interface to post-OpenACC 3.0 corrections; add note about the previous interface and named constant. (OpenACC library and environment variables): Fix two typos. * openacc.f90: Use for all procedures the argument names from the spec as for …_h they are user visible. (openacc_kinds): Rename acc_device_property to acc_device_property_kinds and change value to int32 ; and update users. Re-add acc_device_property for for backward compatibility. (acc_get_property_string_h): Clean up as acc_device_property_kind changed. (acc_get_property_h): Likewise and return c_size_t instead of acc_device_property. (openacc): Also export acc_device_property_kinds. (acc_async_test_h, acc_async_test_all_h, acc_on_device_h, acc_is_present_32_h, acc_is_present_64_h): Simplify logical-return-value handling; check against /= 0 instead of == 1 to match C. * openacc_lib.h: Use for all procedures the argument names from the spec as for …_h they are user visible. Place !GCC$ into the first column to be active also for fixed-form souce form. (acc_device_current, acc_device_property_kind, acc_device_property, acc_property_memory, acc_property_free_memory, acc_property_name, acc_property_vendor, acc_property_driver): New named constants. (acc_get_property, acc_get_property_string): New generic interface. 2020-02-13 Frederik Harwath PR libgomp/93481 * plugin/plugin-nvptx.c: Remove GOMP_OFFLOAD_async_run stub. * target.c (gomp_load_plugin_for_device): Make "async_run" loading optional. (gomp_target_task_fn): Assert "devicep->async_run_func". (clear_unsupported_flags): New function to remove unsupported flags (right now only GOMP_TARGET_FLAG_NOWAIT) that can be be ignored. (GOMP_target_ext): Apply clear_unsupported_flags to flags. * testsuite/libgomp.c/target-33.c: Remove xfail for offload_target_nvptx. * testsuite/libgomp.c/target-34.c: Likewise. 2020-02-10 Frederik Harwath * testsuite/libgomp.c/target-33.c: Add xfail for execution on offload_target_nvptx, cf. https://gcc.gnu.org/PR81688. * testsuite/libgomp.c/target-34.c: Likewise. * testsuite/libgomp.c/target-link-1.c: Add xfail for offload_target_nvptx, cf. https://gcc.gnu.org/PR81689. 2020-02-09 Jakub Jelinek * testsuite/libgomp.c/target-38.c: New test. 2020-02-06 Jakub Jelinek PR libgomp/93515 * testsuite/libgomp.c-c++-common/pr93515.c: New test. 2020-02-05 Tobias Burnus * testsuite/lib/libgomp.exp (check_effective_target_offload_target_nvptx): Pass flags as 'options' and not as 'source' argument to libgomp_target_compile. 2020-02-03 Andrew Stubbs * plugin/plugin-gcn.c (EF_AMDGPU_MACH_AMDGCN_GFX801): Remove. (gcn_gfx801_s): Remove. (isa_hsa_name): Remove gfx801. (isa_gcc_name): Remove gfx801/carizzo. (isa_code): Remove gfx801. 2020-02-03 Julian Brown Tobias Burnus * libgomp.texi (OpenACC Runtime Library Routines): Document *_async and *_finalize variants; document acc_attach and acc_detach; update references from OpenACC 2.0 to 2.6. * openacc.f90 (openacc_version): Update to 201711. * openacc_lib.h (openacc_version): Update to 201711. * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Update expected openacc_version to 201711. * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise. 2020-01-31 Kwok Cheung Yeung * plugin/plugin-gcn.c (struct hsa_kernel_description): Add sgpr_count and vgpr_count fields. (struct kernel_info): Add a field for a hsa_kernel_description. (run_kernel): Reduce the number of threads/workers if the requested number would require too many VGPRs. (init_basic_kernel_info): Initialize description field with the hsa_kernel_description entry for the kernel. 2020-01-29 Tobias Burnus PR bootstrap/93409 * plugin/configfrag.ac (enable_offload_targets): Skip HSA and GCN plugin besides -m32 also for -mx32. * configure: Regenerate. 2020-01-29 Frederik Harwath * oacc-init.c (name_of_acc_device_t): Handle acc_device_radeon. 2020-01-29 Frederik Harwath * plugin-gcn.c (struct agent_info): Add fields "name" and "vendor_name" ... (GOMP_OFFLOAD_init_device): ... and init from here. (struct hsa_context_info): Add field "driver_version_s" ... (init_hsa_contest): ... and init from here. (GOMP_OFFLOAD_openacc_get_property): Replace stub with a proper implementation. * testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: Enable test execution for amdgcn and host offloading targets. * testsuite/libgomp.oacc-fortran/acc_get_property.f90: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c (expect_device_properties): Split function into ... (expect_device_string_properties): ... this new function ... (expect_device_memory): ... and this new function. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-gcn.c: Add test. 2020-01-28 Julian Brown * testsuite/libgomp.oacc-fortran/deep-copy-2.f90: Remove test from here. * testsuite/libgomp.oacc-fortran/deep-copy-3.f90: Don't use mixed component/non-component variable refs in a single directive. * testsuite/libgomp.oacc-fortran/classtypes-1.f95: Likewise. 2020-01-24 Maciej W. Rozycki * configure.ac: Handle `--with-toolexeclibdir='. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. 2020-01-24 Frederik Harwath * testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c (expect_device_properties): Remove "expected_free_mem" argument, change "expected_total_mem" argument type to size_t; change types of acc_get_property results to size_t, adapt format strings. * testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: Use %zu instead of %zd to print size_t values. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: Adapt and rename to ... * testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: ... this. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: Adapt and rename to ... * testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: ... this. 2020-01-23 Andrew Stubbs * plugin/plugin-gcn.c (parse_target_attributes): Use correct mask for the device id. 2020-01-20 Andrew Stubbs * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Skip test on gcn. * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c (main): Adjust test dimensions for amdgcn. * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c (main): Adjust gang/worker/vector expectations dynamically. * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c (acc_gang): Recognise acc_device_radeon. (acc_worker): Likewise. (acc_vector): Likewise. (main): Set expectations for amdgcn. * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c (main): Adjust gang/worker/vector expectations dynamically. * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c (main): Likewise. * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Set expectations for amdgcn. 2020-01-17 Andrew Stubbs * config/accel/openacc.f90 (openacc_kinds): Rename acc_device_gcn to acc_device_radeon. (openacc): Likewise. * openacc.f90 (openacc_kinds): Likewise. (openacc): Likewise. * openacc.h (acc_device_t): Likewise. * openacc_lib.h: Likewise. * testsuite/lib/libgomp.exp (check_effective_target_openacc_amdgcn_accel_present): Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c (cb_compute_construct_end): Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c (cb_enqueue_launch_start): Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c (cb_enter_data_end): Likewise. (cb_exit_data_start): Likewise. (cb_exit_data_end): Likewise. (cb_compute_construct_end): Likewise. (cb_enqueue_launch_start): Likewise. (cb_enqueue_launch_end): Likewise. * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c (main): Likewise. 2020-01-10 Thomas Schwinge * libgomp-plugin.h (enum goacc_property): New. Adjust all users to use this instead of 'enum gomp_device_property'. (GOMP_OFFLOAD_get_property): Rename to... (GOMP_OFFLOAD_openacc_get_property): ... this. Adjust all users. * libgomp.h (struct gomp_device_descr): Move 'GOMP_OFFLOAD_openacc_get_property'... (struct acc_dispatch_t): ... here. Adjust all users. * plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): Remove. * target.c (gomp_map_vars_internal) : Clean up/elaborate code paths. 2020-01-10 Jakub Jelinek PR libgomp/93219 * libgomp.h (gomp_print_string): Change return type from void to int. * affinity-fmt.c (gomp_print_string): Likewise. Return true if not all characters have been written. 2020-01-08 Tobias Burnus * libgomp.texi: Fix typos, use https. 2020-01-03 Tobias Burnus * testsuite/libgomp.fortran/optional-map.f90: Add test for unallocated/disassociated actual arguments to nonallocatable/nonpointer dummy arguments; those are/shall be regarded as absent arguments. * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto. * testsuite/libgomp.fortran/use_device_ptr-optional-3.f90: New. 2020-01-01 Jakub Jelinek Update copyright years. * libgomp.texi: Bump @copying's copyright year. 2019-12-31 Ayush Mittal PR libgomp/93065 * oacc-init.c (goacc_runtime_deinitialize): New function. 2019-12-28 Jakub Jelinek PR bootstrap/93074 * plugin/cuda/cuda.h (cuDeviceGetName, cuDriverGetVersion): Declare. (cuDeviceTotalMem, cuMemGetInfo): Likewise. Define to *_v2. 2019-12-22 Maciej W. Rozycki Frederik Harwath Thomas Schwinge * libgomp.h (gomp_device_descr): Add `get_property_func' member. * libgomp-plugin.h (gomp_device_property_value): New union. (gomp_device_property_value): New prototype. * openacc.h (acc_device_t): Add `acc_device_current' enumeration constant. (acc_device_property_t): New enum. (acc_get_property, acc_get_property_string): New prototypes. * oacc-init.c (acc_get_device_type): Also assert that result is not `acc_device_current'. (get_property_any, acc_get_property, acc_get_property_string): New functions. * openacc.f90 (openacc_kinds): Add `acc_device_current' and `acc_property_memory', `acc_property_free_memory', `acc_property_name', `acc_property_vendor' and `acc_property_driver' constants. Add `acc_device_property' data type. (openacc_internal): Add `acc_get_property' and `acc_get_property_string' interfaces. Add `acc_get_property_h', `acc_get_property_string_h', `acc_get_property_l' and `acc_get_property_string_l'. * oacc-host.c (host_get_property): New function. (host_dispatch): Wire it. * target.c (gomp_load_plugin_for_device): Handle `get_property'. * libgomp.map (OACC_2.6): Add `acc_get_property', `acc_get_property_h_', `acc_get_property_string' and `acc_get_property_string_h_' symbols. * libgomp.texi (OpenACC Runtime Library Routines): Add `acc_get_property'. (acc_get_property): New node. * plugin/plugin-gcn.c (GOMP_OFFLOAD_get_property): New function (stub). * plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): New function. * plugin/plugin-nvptx.c (CUDA_CALLS): Add `cuDeviceGetName', `cuDeviceTotalMem', `cuDriverGetVersion' and `cuMemGetInfo' calls. (GOMP_OFFLOAD_get_property): New function. (struct ptx_device): Add new field "name". (cuda_driver_version_s): Add new static variable ... (nvptx_init): ... and init from here. * testsuite/libgomp.oacc-c-c++-common/acc_get_property.c: New test. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c: New file with test helper functions. * testsuite/libgomp.oacc-fortran/acc_get_property.f90: New test. 2019-12-22 Maciej W. Rozycki * testsuite/libgomp-test-support.exp.in (GCC_UNDER_TEST): New variable. 2019-12-21 Thomas Schwinge * target.c (gomp_map_vars_internal): Restore 'omp declare target link' handling. 2019-12-19 Julian Brown * testsuite/libgomp.oacc-fortran/class-ptr-param.f95: New test. * testsuite/libgomp.oacc-fortran/classtypes-1.f95: New test. * testsuite/libgomp.oacc-fortran/classtypes-2.f95: New test. 2019-12-19 Julian Brown Cesar Philippidis * testsuite/libgomp.oacc-fortran/deep-copy-1.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-2.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-3.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-4.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-5.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-6.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-7.f90: New test. * testsuite/libgomp.oacc-fortran/deep-copy-8.f90: New test. * testsuite/libgomp.oacc-fortran/derived-type-1.f90: New test. * testsuite/libgomp.oacc-fortran/derivedtype-1.f95: New test. * testsuite/libgomp.oacc-fortran/derivedtype-2.f95: New test. * testsuite/libgomp.oacc-fortran/multidim-slice.f95: New test. * testsuite/libgomp.oacc-fortran/update-2.f90: New test. 2019-12-19 Julian Brown * testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-10.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-11.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-14.c: New test. * testsuite/libgomp.oacc-c++/deep-copy-12.C: New test. * testsuite/libgomp.oacc-c++/deep-copy-13.C: New test. 2019-12-19 Julian Brown * libgomp.h (struct target_var_desc): Add do_detach flag. * oacc-init.c (acc_shutdown_1): Free aux block if present. * oacc-mem.c (find_group_last): Add SIZES parameter. Support struct components. Tidy up and add some new checks. (goacc_enter_data_internal): Update call to find_group_last. (goacc_exit_data_internal): Support detach operations and GOMP_MAP_STRUCT. (GOACC_enter_exit_data): Handle initial GOMP_MAP_STRUCT or GOMP_MAP_FORCE_PRESENT in finalization detection code. Handle attach/detach in enter/exit data detection code. * target.c (gomp_map_vars_existing): Initialise do_detach field of tgt_var_desc. (gomp_map_vars_internal): Support attach. (gomp_unmap_vars_internal): Support detach. 2019-12-19 Julian Brown Thomas Schwinge * libgomp.h (struct splay_tree_aux): Add attach_count field. (gomp_attach_pointer, gomp_detach_pointer): Add prototypes. * libgomp.map (OACC_2.6): New section. Add acc_attach, acc_attach_async, acc_detach, acc_detach_async, acc_detach_finalize, acc_detach_finalize_async. * oacc-mem.c (acc_attach_async, acc_attach, goacc_detach_internal, acc_detach, acc_detach_async, acc_detach_finalize, acc_detach_finalize_async): New functions. * openacc.h (acc_attach, acc_attach_async, acc_detach, (acc_detach_async, acc_detach_finalize, acc_detach_finalize_async): Add prototypes. * target.c (gomp_attach_pointer, gomp_detach_pointer): New functions. (gomp_remove_var_internal): Free attachment counts if present. * testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c: New test. 2019-12-19 Julian Brown Cesar Philippidis * libgomp.h (gomp_map_val): Add prototype. * oacc-parallel.c (GOACC_parallel_keyed): Use gomp_map_val instead of open-coding device-address calculation. * target.c (gomp_map_val): Make global. Use OFFSET_POINTER in non-present case. 2019-12-19 Julian Brown * libgomp.h (struct splay_tree_key_s): Substitute dynamic_refcount field for virtual_refcount. (enum gomp_map_vars_kind): Add GOMP_MAP_VARS_OPENACC_ENTER_DATA. (gomp_free_memmap): Remove prototype. * oacc-init.c (acc_shutdown_1): Iteratively call gomp_remove_var instead of calling gomp_free_memmap. * oacc-mem.c (acc_map_data): Use virtual_refcount instead of dynamic_refcount. (acc_unmap_data): Open code instead of forcing target_mem_desc's to_free field to NULL then calling gomp_unmap_vars. Handle REFCOUNT_INFINITY on target blocks. (goacc_enter_data): Rename to... (goacc_enter_datum): ...this. Remove MAPNUM parameter and special handling for mapping groups. Use virtual_refcount instead of dynamic_refcount. Use GOMP_MAP_VARS_OPENACC_ENTER_DATA for map_map_vars_async call. Re-do lookup for target pointer return value. (acc_create, acc_create_async, acc_copyin, acc_copyin_async): Call renamed goacc_enter_datum function. (goacc_exit_data): Rename to... (goacc_exit_datum): ...this. Update for virtual_refcount semantics. (acc_delete, acc_delete_async, acc_delete_finalize, acc_delete_finalize_async, acc_copyout, acc_copyout_async, acc_copyout_finalize, acc_copyout_finalize_async): Call renamed goacc_exit_datum function. (gomp_acc_remove_pointer, find_pointer): Remove functions. (find_group_last, goacc_enter_data_internal, goacc_exit_data_internal): New functions. (GOACC_enter_exit_data): Use goacc_enter_data_internal and goacc_exit_data_internal helper functions. * target.c (gomp_map_vars_internal): Handle GOMP_MAP_VARS_OPENACC_ENTER_DATA. Update for virtual_refcount semantics. (gomp_unmap_vars_internal): Update for virtual_refcount semantics. (gomp_load_image_to_device, omp_target_associate_ptr): Zero-initialise virtual_refcount field instead of dynamic_refcount. (gomp_free_memmap): Remove function. * testsuite/libgomp.oacc-c-c++-common/unmap-infinity-1.c: New test. * testsuite/libgomp.c-c++-common/unmap-infinity-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: Add XFAIL. 2019-12-19 Julian Brown Thomas Schwinge * libgomp.h (struct splay_tree_aux): New. (struct splay_tree_key_s): Replace link_key field with aux pointer. * target.c (gomp_map_vars_internal): Adjust for link_key being moved to aux struct. (gomp_remove_var_internal): Free aux block if present. (gomp_load_image_to_device): Zero-initialise aux field instead of link_key field. (omp_target_associate_pointer): Zero-initialise aux field. 2019-12-18 Jakub Jelinek PR middle-end/86416 * testsuite/libgomp.c/pr86416-1.c (main): Use L suffixes rather than q or none. * testsuite/libgomp.c/pr86416-2.c (main): Use Q suffixes rather than L or none. 2019-12-19 Julian Brown Maciej W. Rozycki Tobias Burnus Thomas Schwinge * target.c (gomp_map_vars_async): Support GOMP_MAP_NO_ALLOC. * testsuite/libgomp.oacc-c-c++-common/no_create-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/no_create-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/no_create-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/no_create-4.c: New test. * testsuite/libgomp.oacc-c-c++-common/no_create-5.c: New test. * testsuite/libgomp.oacc-fortran/no_create-1.f90: New test. * testsuite/libgomp.oacc-fortran/no_create-2.f90: New test. * testsuite/libgomp.oacc-fortran/no_create-3.F90: New test. 2019-12-18 Thomas Schwinge * oacc-mem.c (goacc_enter_data): Refactor, so that it can be called... (goacc_insert_pointer): ... from here, "present" case. (goacc_insert_pointer): Inline function into... (GOACC_enter_exit_data): ... here, and simplify. * oacc-mem.c (goacc_enter_data): Refactor, so that it can be called... (goacc_insert_pointer): ... from here, "not present" case. * oacc-mem.c (goacc_remove_pointer): Refactor interface. Adjust all users. * oacc-mem.c (GOACC_enter_exit_data): Refactor code to call 'goacc_enter_data', 'goacc_exit_data'. * oacc-mem.c (delete_copyout): Refactor into... (goacc_exit_data): ... this. Adjust all users. * oacc-mem.c (present_create_copy): Refactor into... (goacc_enter_data): ... this. Adjust all users. * target.c (gomp_unmap_vars_internal): Add a safeguard to 'gomp_remove_var'. * target.c (gomp_to_device_kind_p): Handle 'GOMP_MAP_FORCE_FROM' like 'GOMP_MAP_FROM'. PR libgomp/92726 PR libgomp/92970 PR libgomp/92984 * oacc-mem.c (delete_copyout): No-op behavior if 'lookup_host' fails. (GOACC_enter_exit_data): Simplify accordingly. * testsuite/libgomp.oacc-c-c++-common/pr92970-1.c: New file, subsuming... * testsuite/libgomp.oacc-c-c++-common/lib-17.c: ... this file... * testsuite/libgomp.oacc-c-c++-common/lib-18.c: ..., and this file. * testsuite/libgomp.oacc-c-c++-common/pr92984-1.c: New file, subsuming... * testsuite/libgomp.oacc-c-c++-common/lib-21.c: ... this file... * testsuite/libgomp.oacc-c-c++-common/lib-29.c: ..., and this file. * testsuite/libgomp.oacc-c-c++-common/pr92726-1.c: New file, subsuming... * testsuite/libgomp.oacc-c-c++-common/lib-28.c: ... this file. * oacc-mem.c (GOACC_enter_exit_data): Simplify 'exit data' 'finalize' handling. PR libgomp/92848 * oacc-mem.c (acc_map_data, present_create_copy) (goacc_insert_pointer): Use 'GOMP_MAP_VARS_ENTER_DATA'. (acc_unmap_data, delete_copyout, goacc_remove_pointer): Adjust. * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Remove. * testsuite/libgomp.oacc-c-c++-common/pr92848-1-d-a.c: New file * testsuite/libgomp.oacc-c-c++-common/pr92848-1-d-p.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr92848-1-r-a.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr92848-1-r-p.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-p.c: Remove "XFAIL"s. * target.c (gomp_unmap_tgt): Make it 'static'. * libgomp.h (gomp_unmap_tgt): Remove. 2019-12-18 Tobias Burnus PR middle-end/86416 * testsuite/libgomp.c/pr86416-1.c: New. * testsuite/libgomp.c/pr86416-2.c: New. 2019-12-17 Tobias Burnus * config/accel/openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark all symbols as public except for the 'use …, only' imported symbol, which is private. (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark all symbols from module openacc_kinds as PUBLIC * openacc.f90: Add comment with crossref to that file and openmp_lib.h; fix comment typo. * openacc_lib.h (acc_device_gcn): Add this PARAMETER. 2019-12-13 Julian Brown PR libgomp/92881 * libgomp.h (gomp_remove_var_async): Add prototype. * oacc-mem.c (delete_copyout): Call gomp_remove_var_async instead of gomp_remove_var. * target.c (gomp_unref_tgt): Change return type to bool, indicating whether target_mem_desc was unmapped. (gomp_unref_tgt_void): New. (gomp_remove_var): Reimplement in terms of... (gomp_remove_var_internal): ...this new helper function. (gomp_remove_var_async): New, implemented using above helper function. (gomp_unmap_vars_internal): Use gomp_unref_tgt_void instead of gomp_unref_tgt. 2019-12-13 Andrew Stubbs * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Handle gcn. * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Disable on GCN. * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Likewise. 2019-12-13 Tobias Burnus * openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark all symbols as public except for the 'use …, only' imported symbol, which is private. (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark all symbols from module openacc_kinds as PUBLIC; add missing PUBLIC attributes for acc_copyout_finalize and acc_delete_finalize. 2019-12-11 Jakub Jelinek PR fortran/92899 * testsuite/libgomp.fortran/atomic1.f90: New test. 2019-12-11 Thomas Schwinge PR libgomp/92843 * oacc-mem.c (present_create_copy, delete_copyout): Fix dynamic reference counting for structured 'REFCOUNT_INFINITY'. Add some assertions. (goacc_insert_pointer, goacc_remove_pointer): Adjust accordingly. * testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Fix OpenACC. * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise. * oacc-parallel.c (find_pointer, GOACC_enter_exit_data): Move... * oacc-mem.c: ... here. (gomp_acc_insert_pointer, gomp_acc_remove_pointer): Rename to 'goacc_insert_pointer', 'goacc_remove_pointer', and make 'static'. * libgomp.h (gomp_acc_insert_pointer, gomp_acc_remove_pointer): Remove. * libgomp_g.h: Update. * oacc-parallel.c (GOACC_wait, goacc_wait): Move... * oacc-async.c: ... here. * oacc-int.h (goacc_wait): Declare. * libgomp_g.h: Update PR libgomp/92854 * testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-3.c: Likewise. 2019-12-11 Thomas Schwinge Julian Brown * target.c (gomp_load_image_to_device, omp_target_associate_ptr): Initialize 'dynamic_refcount' whenever we initialize 'refcount'. 2019-12-11 Tobias Burnus * omp_lib.h.in: Fix spelling of function declaration omp_get_cancell(l)ation. * libgomp.texi (acc_is_present, acc_async_test, acc_async_test_all): Fix typos. * env.c: Fix comment typos. * oacc-host.c: Likewise. * ordered.c: Likewise. * task.c: Likewise. * team.c: Likewise. * config/gcn/task.c: Likewise. * config/gcn/team.c: Likewise. * config/nvptx/task.c: Likewise. * config/nvptx/team.c: Likewise. * plugin/plugin-gcn.c: Likewise. * testsuite/libgomp.fortran/jacobi.f: Likewise. * testsuite/libgomp.hsa.c/tiling-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: Likewise. 2019-12-11 Tobias Burnus * testsuite/libgomp.oacc-fortran/optional-cache.f95: Add 'dg-do run'. * testsuite/libgomp.oacc-fortran/optional-reduction.f90: Remove unnecessary 'dg-additional-options "-w"'. 2019-12-09 Thomas Schwinge Julian Brown PR libgomp/92116 PR libgomp/92877 * oacc-mem.c (lookup_dev): Reimplement. Adjust all users. * libgomp.h (struct acc_dispatch_t): Remove 'data_environ' member. Adjust all users. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4-2.c: Remove XFAIL. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/pr92877-1.c: New file. 2019-12-09 Thomas Schwinge PR libgomp/92503 * oacc-mem.c (acc_free): Error out instead of 'acc_unmap_data'. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-3-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_free-pr92503-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Adjust. * 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/lib-13.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise. PR libgomp/92840 * oacc-mem.c (acc_map_data): Clarify reference counting behavior. (acc_unmap_data): Add error case for 'REFCOUNT_INFINITY'. * testsuite/libgomp.oacc-c-c++-common/acc_unmap_data-pr92840-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/acc_unmap_data-pr92840-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_unmap_data-pr92840-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Adjust. * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Adjust. PR libgomp/92511 * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: Remove this file... * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: ..., and this file... * testsuite/libgomp.oacc-c-c++-common/lib-22.c: ..., and this file... * testsuite/libgomp.oacc-c-c++-common/lib-30.c: ..., and this file... * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-p.c: ... with their content moved into, and extended in this new file. * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-d-a.c: New file. * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-d-p.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-a.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/map-data-1.c: New file. PR libgomp/92854 * testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New file. * target.c (gomp_exit_data): Use 'gomp_remove_var'. 2019-12-09 Tobias Burnus * testsuite/libgomp.fortran/use_device_addr-3.f90: Make 'stop' codes unique. * testsuite/libgomp.fortran/use_device_addr-4.f90: Ditto. * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/declare-5.f90: Ditto. * testsuite/libgomp.oacc-fortran/optional-data-copyin-by-value.f90: Ditto. * testsuite/libgomp.oacc-fortran/optional-firstprivate.f90: Ditto. * testsuite/libgomp.oacc-fortran/optional-update-host.f90: Ditto. 2019-12-06 Kwok Cheung Yeung * config/accel/proc.c (omp_get_num_procs): Apply ialias macro. 2019-12-06 Tobias Burnus Kwok Cheung Yeung * oacc-mem.c (update_dev_host, gomp_acc_insert_pointer): Just return if input it a NULL pointer. * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Remove; dependent on diagnostic of NULL pointer. * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Ditto. * testsuite/libgomp.fortran/optional-map.f90: New. * testsuite/libgomp.fortran/use_device_addr-1.f90 (test_dummy_opt_callee_1_absent): New. (test_dummy_opt_call_1): Call it. * testsuite/libgomp.fortran/use_device_addr-2.f90: Likewise. * testsuite/libgomp.fortran/use_device_addr-3.f90: Likewise. * testsuite/libgomp.fortran/use_device_addr-4.f90: Likewise. * testsuite/libgomp.oacc-fortran/optional-cache.f95: New. * testsuite/libgomp.oacc-fortran/optional-data-copyin-by-value.f90: New. * testsuite/libgomp.oacc-fortran/optional-data-copyin.f90: New. * testsuite/libgomp.oacc-fortran/optional-data-copyout.f90: New. * testsuite/libgomp.oacc-fortran/optional-data-enter-exit.f90: New. * testsuite/libgomp.oacc-fortran/optional-declare.f90: New. * testsuite/libgomp.oacc-fortran/optional-firstprivate.f90: New. * testsuite/libgomp.oacc-fortran/optional-host_data.f90: New. * testsuite/libgomp.oacc-fortran/optional-nested-calls.f90: New. * testsuite/libgomp.oacc-fortran/optional-private.f90: New. * testsuite/libgomp.oacc-fortran/optional-reduction.f90: New. * testsuite/libgomp.oacc-fortran/optional-update-device.f90: New. * testsuite/libgomp.oacc-fortran/optional-update-host.f90: New. 2019-12-05 Tobias Burnus * testsuite/libgomp.oacc-fortran/error_stop-1.f: Also don't expect dg-output of 'Error termination.' for GCN. * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise. * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise. 2019-12-04 Jakub Jelinek PR fortran/92756 * testsuite/libgomp.fortran/teams1.f90: New test. * testsuite/libgomp.fortran/teams2.f90: New test. 2019-12-03 Frederik Harwath * oacc-init.c (acc_known_device_type): Add function. (unknown_device_type_error): Add function. (name_of_acc_device_t): Change to call unknown_device_type_error on unknown type. (resolve_device): Use acc_known_device_type. (acc_init): Fail if acc_device_t argument is not valid. (acc_shutdown): Likewise. (acc_get_num_devices): Likewise. (acc_set_device_type): Likewise. (acc_get_device_num): Likewise. (acc_set_device_num): Likewise. (acc_on_device): Add comment that argument validity is not checked. 2019-12-03 Andrew Stubbs * testsuite/lib/libgomp.exp (offload_target_to_openacc_device_type): Recognize amdgcn. (check_effective_target_openacc_amdgcn_accel_present): New proc. (check_effective_target_openacc_amdgcn_accel_selected): New proc. * testsuite/libgomp.oacc-c++/c++.exp: Add support for amdgcn. * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. 2019-12-03 Szabolcs Nagy PR libgomp/91938 * configure.tgt: Avoid IE tls on *-*-musl*. 2019-11-29 Tobias Burnus * testsuite/libgomp.oacc-fortran/declare-5.f90: Extend by adding a common-block test case. 2019-11-29 Jakub Jelinek PR c++/60228 * testsuite/libgomp.c++/udr-20.C: New test. * testsuite/libgomp.c++/udr-21.C: New test. 2019-11-27 Thomas Schwinge * testsuite/lib/libgomp.exp (check_effective_target_offload_target_nvptx): New proc. * testsuite/libgomp.fortran/target-print-1.f90: Use it with 'dg-skip-if'. * testsuite/libgomp.oacc-fortran/print-1.f90: Likewise. * testsuite/libgomp.fortran/target-print-1-nvptx.f90: New file. * testsuite/libgomp.oacc-fortran/print-1-nvptx.f90: Likewise. 2019-11-21 Rainer Orth * testsuite/libgomp.c/pr39591-1.c: Rename err to e. * testsuite/libgomp.c/pr39591-2.c: Likewise. * testsuite/libgomp.c/pr39591-3.c: Likewise. * testsuite/libgomp.c/private-1.c: Likewise. * testsuite/libgomp.c/task-1.c: Likewise. * testsuite/libgomp.c/task-5.c: Renamed err to serr. 2019-11-20 Julian Brown * plugin/plugin-gcn.c (wait_for_queue_nonfull): Don't lock/unlock aq->mutex here. (queue_push_launch): Lock aq->mutex before calling wait_for_queue_nonfull. (queue_push_callback): Likewise. (queue_push_asyncwait): Likewise. (queue_push_placeholder): Likewise. 2019-11-20 Julian Brown * plugin/plugin-gcn.c (hsa_memory_copy_wrapper): New. (copy_data, GOMP_OFFLOAD_host2dev): Use above function. (GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_dev2dev): Check hsa_memory_copy return code. 2019-11-20 Julian Brown PR libgomp/92511 * oacc-mem.c (present_create_copy): Fix device pointer return value in case of "present" subarray. Use tgt->tgt_start instead of tgt->to_free in non-present/create case. (delete_copyout): Change error condition to fail only on copies outside of mapped block. Adjust error message accordingly. * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Adjust expected error message. * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Allow test to pass now. * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. 2019-11-20 Maciej W. Rozycki * testsuite/lib/libgomp.exp (libgomp_init): Add flags to find libatomic in build-tree testing. 2019-11-18 Maciej W. Rozycki * testsuite/Makefile.in: Regenerate. 2019-11-15 Andrew Stubbs * testsuite/libgomp.c/target-print-1.c: New file. * testsuite/libgomp.fortran/target-print-1.f90: New file. * testsuite/libgomp.oacc-c/print-1.c: New file. * testsuite/libgomp.oacc-fortran/print-1.f90: New file. 2019-11-13 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries * plugin/Makefrag.am: Add amdgcn plugin support. * plugin/configfrag.ac: Likewise. * plugin/plugin-gcn.c: New file. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2019-11-13 Andrew Stubbs * config/gcn/team.c (gomp_gcn_enter_kernel): Set up the team arena and use team_malloc variants. (gomp_gcn_exit_kernel): Use team_free. * libgomp.h (TEAM_ARENA_SIZE): Define. (TEAM_ARENA_START): Define. (TEAM_ARENA_FREE): Define. (TEAM_ARENA_END): Define. (team_malloc): New function. (team_malloc_cleared): New function. (team_free): New function. * team.c (gomp_new_team): Initialize and use team_malloc. (free_team): Use team_free. (gomp_free_thread): Use team_free. (gomp_pause_host): Use team_free. * work.c (gomp_init_work_share): Use team_malloc. (gomp_fini_work_share): Use team_free. 2019-11-13 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries * Makefile.am (libgomp_la_SOURCES): Add oacc-target.c. * Makefile.in: Regenerate. * config.h.in (PLUGIN_GCN): Add new undef. * config/accel/openacc.f90 (acc_device_gcn): New parameter. * config/gcn/affinity-fmt.c: New file. * config/gcn/bar.c: New file. * config/gcn/bar.h: New file. * config/gcn/doacross.h: New file. * config/gcn/icv-device.c: New file. * config/gcn/oacc-target.c: New file. * config/gcn/simple-bar.h: New file. * config/gcn/target.c: New file. * config/gcn/task.c: New file. * config/gcn/team.c: New file. * config/gcn/time.c: New file. * configure.ac: Add amdgcn*-*-*. * configure: Regenerate. * configure.tgt: Add amdgcn*-*-*. * libgomp-plugin.h (offload_target_type): Add OFFLOAD_TARGET_TYPE_GCN. * libgomp.h (gcn_thrs): Add amdgcn variant. (set_gcn_thrs): Likewise. (gomp_thread): Likewise. * oacc-int.h (goacc_thread): Likewise. * oacc-target.c: New file. * openacc.f90 (acc_device_gcn): New parameter. * openacc.h (acc_device_t): Add acc_device_gcn. * team.c (gomp_free_pool_helper): Add amdgcn support. 2019-11-13 Andrew Stubbs Julian Brown * libgomp-plugin.h (GOMP_OFFLOAD_openacc_async_construct): Add int parameter. * oacc-async.c (lookup_goacc_asyncqueue): Pass device number to the queue constructor. * oacc-host.c (host_openacc_async_construct): Add device parameter. * plugin/plugin-nvptx.c (GOMP_OFFLOAD_openacc_async_construct): Add device parameter. 2019-11-13 Andrew Stubbs * configure.tgt (nvptx*-*-*): Add "accel" directory. * config/nvptx/libgomp-plugin.c: Move ... * config/accel/libgomp-plugin.c: ... to here. * config/nvptx/lock.c: Move ... * config/accel/lock.c: ... to here. * config/nvptx/mutex.c: Move ... * config/accel/mutex.c: ... to here. * config/nvptx/mutex.h: Move ... * config/accel/mutex.h: ... to here. * config/nvptx/oacc-async.c: Move ... * config/accel/oacc-async.c: ... to here. * config/nvptx/oacc-cuda.c: Move ... * config/accel/oacc-cuda.c: ... to here. * config/nvptx/oacc-host.c: Move ... * config/accel/oacc-host.c: ... to here. * config/nvptx/oacc-init.c: Move ... * config/accel/oacc-init.c: ... to here. * config/nvptx/oacc-mem.c: Move ... * config/accel/oacc-mem.c: ... to here. * config/nvptx/oacc-plugin.c: Move ... * config/accel/oacc-plugin.c: ... to here. * config/nvptx/omp-lock.h: Move ... * config/accel/omp-lock.h: ... to here. * config/nvptx/openacc.f90: Move ... * config/accel/openacc.f90: ... to here. * config/nvptx/pool.h: Move ... * config/accel/pool.h: ... to here. * config/nvptx/proc.c: Move ... * config/accel/proc.c: ... to here. * config/nvptx/ptrlock.c: Move ... * config/accel/ptrlock.c: ... to here. * config/nvptx/ptrlock.h: Move ... * config/accel/ptrlock.h: ... to here. * config/nvptx/sem.c: Move ... * config/accel/sem.c: ... to here. * config/nvptx/sem.h: Move ... * config/accel/sem.h: ... to here. * config/nvptx/thread-stacksize.h: Move ... * config/accel/thread-stacksize.h: ... to here. 2019-11-12 Maciej W. Rozycki Tobias Burnus Frederik Harwath Thomas Schwinge libgomp/ * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New test. * testsuite/libgomp.oacc-fortran/parallel-dims-aux.c: New test. * testsuite/libgomp.oacc-fortran/parallel-dims.f89: New test. 2019-11-11 Tobias Burnus Kwok Cheung Yeung * testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: Extend. * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: New. 2019-11-11 Thomas Schwinge * testsuite/libgomp.fortran/target9.f90: Specify 'dg-do run'. * testsuite/libgomp.fortran/use_device_addr-3.f90: Specify 'dg-do run'. * testsuite/libgomp.fortran/use_device_addr-4.f90: Likewise. * testsuite/libgomp.fortran/use_device_ptr-1.f90: Likewise. 2019-11-06 Thomas Schwinge * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: Add expected warnings about missing reduction clauses. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: Likewise. 2019-11-04 Tobias Burnus * testsuite/libgomp.fortran/pr66199-1.f90: Remove 'dg-do run' (implies torture test) as 'dg-options "O2"' is used. * testsuite/libgomp.fortran/pr66199-2.f90: Ditto. * testsuite/libgomp.fortran/taskloop2.f90: Ditto. * testsuite/libgomp.fortran/taskloop3.f90: Ditto. * testsuite/libgomp.fortran/taskloop4.f90: Ditto. 2019-11-04 Tobias Burnus PR fortran/92305 * testsuite/libgomp.fortran/allocatable2.f90: Use unique numbers with 'stop'. * testsuite/libgomp.fortran/use_device_addr-1.f90: Ditto. * testsuite/libgomp.fortran/use_device_addr-2.f90: Ditto. * testsuite/libgomp.fortran/use_device_ptr-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/lib-15.f90: Ditto. * testsuite/libgomp.oacc-fortran/pset-1.f90: Ditto. 2019-11-01 Tobias Burnus * testsuite/libgomp.fortran/use_device_addr-1.f90 (test_nullptr_1, test_dummy_opt_nullptr_callee_1): Add present but unallocated test. * testsuite/libgomp.fortran/use_device_addr-2.f90: Likewise. * testsuite/libgomp.fortran/use_device_addr-3.f90: New. * testsuite/libgomp.fortran/use_device_addr-4.f90: New. * testsuite/testsuite/libgomp.fortran/use_device_ptr-1.f90: New. 2019-10-30 Tobias Burnus * testsuite/libgomp.fortran/target9.f90: New. 2019-10-30 Tobias Burnus * testsuite/libgomp.fortran/aligned1.f03: Replace 'STOP' by 'stop'. * testsuite/libgomp.fortran/alloc-comp-1.f90: Ditto. * testsuite/libgomp.fortran/alloc-comp-2.f90: Ditto. * testsuite/libgomp.fortran/alloc-comp-3.f90: Ditto. * testsuite/libgomp.fortran/allocatable1.f90: Ditto. * testsuite/libgomp.fortran/allocatable10.f90: Ditto. * testsuite/libgomp.fortran/allocatable11.f90: Ditto. * testsuite/libgomp.fortran/allocatable12.f90: Ditto. * testsuite/libgomp.fortran/allocatable2.f90: Ditto. * testsuite/libgomp.fortran/allocatable3.f90: Ditto. * testsuite/libgomp.fortran/allocatable4.f90: Ditto. * testsuite/libgomp.fortran/allocatable5.f90: Ditto. * testsuite/libgomp.fortran/allocatable6.f90: Ditto. * testsuite/libgomp.fortran/allocatable7.f90: Ditto. * testsuite/libgomp.fortran/allocatable8.f90: Ditto. * testsuite/libgomp.fortran/allocatable9.f90: Ditto. * testsuite/libgomp.fortran/associate1.f90: Ditto. * testsuite/libgomp.fortran/associate2.f90: Ditto. * testsuite/libgomp.fortran/associate3.f90: Ditto. * testsuite/libgomp.fortran/async_io_4.f90: Ditto. * testsuite/libgomp.fortran/async_io_5.f90: Ditto. * testsuite/libgomp.fortran/async_io_6.f90: Ditto. * testsuite/libgomp.fortran/async_io_7.f90: Ditto. * testsuite/libgomp.fortran/cancel-do-1.f90: Ditto. * testsuite/libgomp.fortran/cancel-do-2.f90: Ditto. * testsuite/libgomp.fortran/cancel-parallel-1.f90: Ditto. * testsuite/libgomp.fortran/cancel-sections-1.f90: Ditto. * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Ditto. * testsuite/libgomp.fortran/character1.f90: Ditto. * testsuite/libgomp.fortran/character2.f90: Ditto. * testsuite/libgomp.fortran/collapse1.f90: Ditto. * testsuite/libgomp.fortran/collapse2.f90: Ditto. * testsuite/libgomp.fortran/collapse3.f90: Ditto. * testsuite/libgomp.fortran/collapse4.f90: Ditto. * testsuite/libgomp.fortran/crayptr1.f90: Ditto. * testsuite/libgomp.fortran/crayptr2.f90: Ditto. * testsuite/libgomp.fortran/crayptr3.f90: Ditto. * testsuite/libgomp.fortran/declare-simd-1.f90: Ditto. * testsuite/libgomp.fortran/declare-simd-3.f90: Ditto. * testsuite/libgomp.fortran/declare-target-2.f90: Ditto. * testsuite/libgomp.fortran/depend-1.f90: Ditto. * testsuite/libgomp.fortran/depend-2.f90: Ditto. * testsuite/libgomp.fortran/depend-3.f90: Ditto. * testsuite/libgomp.fortran/do1.f90: Ditto. * testsuite/libgomp.fortran/do2.f90: Ditto. * testsuite/libgomp.fortran/do_concurrent_5.f90: Ditto. * testsuite/libgomp.fortran/doacross1.f90: Ditto. * testsuite/libgomp.fortran/doacross2.f90: Ditto. * testsuite/libgomp.fortran/doacross3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/async_target-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/device-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/device-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/device-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-6.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-7.f90: Ditto. * testsuite/libgomp.fortran/examples-4/simd-8.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_update-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/target_update-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Ditto. * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/teams-2.f90: Ditto. * testsuite/libgomp.fortran/examples-4/teams-3.f90: Ditto. * testsuite/libgomp.fortran/examples-4/teams-4.f90: Ditto. * testsuite/libgomp.fortran/examples-4/teams-5.f90: Ditto. * testsuite/libgomp.fortran/examples-4/teams-6.f90: Ditto. * testsuite/libgomp.fortran/lastprivate1.f90: Ditto. * testsuite/libgomp.fortran/lastprivate2.f90: Ditto. * testsuite/libgomp.fortran/lib1.f90: Ditto. * testsuite/libgomp.fortran/lib4.f90: Ditto. * testsuite/libgomp.fortran/lock-1.f90: Ditto. * testsuite/libgomp.fortran/lock-2.f90: Ditto. * testsuite/libgomp.fortran/nested1.f90: Ditto. * testsuite/libgomp.fortran/nestedfn1.f90: Ditto. * testsuite/libgomp.fortran/nestedfn2.f90: Ditto. * testsuite/libgomp.fortran/nestedfn3.f90: Ditto. * testsuite/libgomp.fortran/nestedfn4.f90: Ditto. * testsuite/libgomp.fortran/nestedfn5.f90: Ditto. * testsuite/libgomp.fortran/omp_atomic1.f90: Ditto. * testsuite/libgomp.fortran/omp_atomic2.f90: Ditto. * testsuite/libgomp.fortran/omp_atomic3.f90: Ditto. * testsuite/libgomp.fortran/omp_atomic4.f90: Ditto. * testsuite/libgomp.fortran/omp_atomic5.f90: Ditto. * testsuite/libgomp.fortran/omp_cond1.f: Ditto. * testsuite/libgomp.fortran/omp_cond2.f: Ditto. * testsuite/libgomp.fortran/omp_cond3.F90: Ditto. * testsuite/libgomp.fortran/omp_cond4.F90: Ditto. * testsuite/libgomp.fortran/omp_parse1.f90: Ditto. * testsuite/libgomp.fortran/omp_parse2.f90: Ditto. * testsuite/libgomp.fortran/omp_parse3.f90: Ditto. * testsuite/libgomp.fortran/omp_parse4.f90: Ditto. * testsuite/libgomp.fortran/openmp_version-1.f: Ditto. * testsuite/libgomp.fortran/openmp_version-2.f90: Ditto. * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Ditto. * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Ditto. * testsuite/libgomp.fortran/pointer1.f90: Ditto. * testsuite/libgomp.fortran/pointer2.f90: Ditto. * testsuite/libgomp.fortran/pr25219.f90: Ditto. * testsuite/libgomp.fortran/pr27395-1.f90: Ditto. * testsuite/libgomp.fortran/pr27395-2.f90: Ditto. * testsuite/libgomp.fortran/pr27416-1.f90: Ditto. * testsuite/libgomp.fortran/pr27916-1.f90: Ditto. * testsuite/libgomp.fortran/pr27916-2.f90: Ditto. * testsuite/libgomp.fortran/pr28390.f: Ditto. * testsuite/libgomp.fortran/pr29629.f90: Ditto. * testsuite/libgomp.fortran/pr32550.f90: Ditto. * testsuite/libgomp.fortran/pr33880.f90: Ditto. * testsuite/libgomp.fortran/pr34020.f90: Ditto. * testsuite/libgomp.fortran/pr35130.f90: Ditto. * testsuite/libgomp.fortran/pr42162.f90: Ditto. * testsuite/libgomp.fortran/pr46753.f90: Ditto. * testsuite/libgomp.fortran/pr48894.f90: Ditto. * testsuite/libgomp.fortran/pr49792-1.f90: Ditto. * testsuite/libgomp.fortran/pr49792-2.f90: Ditto. * testsuite/libgomp.fortran/pr63938-1.f90: Ditto. * testsuite/libgomp.fortran/pr63938-2.f90: Ditto. * testsuite/libgomp.fortran/pr65597.f90: Ditto. * testsuite/libgomp.fortran/pr66199-1.f90: Ditto. * testsuite/libgomp.fortran/pr71014.f90: Ditto. * testsuite/libgomp.fortran/pr81304.f90: Ditto. * testsuite/libgomp.fortran/pr81841.f90: Ditto. * testsuite/libgomp.fortran/pr84418-1.f90: Ditto. * testsuite/libgomp.fortran/pr84418-2.f90: Ditto. * testsuite/libgomp.fortran/procptr1.f90: Ditto. * testsuite/libgomp.fortran/recursion1.f90: Ditto. * testsuite/libgomp.fortran/reduction1.f90: Ditto. * testsuite/libgomp.fortran/reduction2.f90: Ditto. * testsuite/libgomp.fortran/reduction3.f90: Ditto. * testsuite/libgomp.fortran/reduction4.f90: Ditto. * testsuite/libgomp.fortran/reduction5.f90: Ditto. * testsuite/libgomp.fortran/reduction6.f90: Ditto. * testsuite/libgomp.fortran/reference1.f90: Ditto. * testsuite/libgomp.fortran/reference2.f90: Ditto. * testsuite/libgomp.fortran/retval1.f90: Ditto. * testsuite/libgomp.fortran/retval2.f90: Ditto. * testsuite/libgomp.fortran/sharing1.f90: Ditto. * testsuite/libgomp.fortran/sharing2.f90: Ditto. * testsuite/libgomp.fortran/simd1.f90: Ditto. * testsuite/libgomp.fortran/simd2.f90: Ditto. * testsuite/libgomp.fortran/simd3.f90: Ditto. * testsuite/libgomp.fortran/simd4.f90: Ditto. * testsuite/libgomp.fortran/simd5.f90: Ditto. * testsuite/libgomp.fortran/simd6.f90: Ditto. * testsuite/libgomp.fortran/simd7.f90: Ditto. * testsuite/libgomp.fortran/stack.f90: Ditto. * testsuite/libgomp.fortran/strassen.f90: Ditto. * testsuite/libgomp.fortran/tabs1.f90: Ditto. * testsuite/libgomp.fortran/tabs2.f: Ditto. * testsuite/libgomp.fortran/target1.f90: Ditto. * testsuite/libgomp.fortran/target2.f90: Ditto. * testsuite/libgomp.fortran/target3.f90: Ditto. * testsuite/libgomp.fortran/target4.f90: Ditto. * testsuite/libgomp.fortran/target5.f90: Ditto. * testsuite/libgomp.fortran/target6.f90: Ditto. * testsuite/libgomp.fortran/target7.f90: Ditto. * testsuite/libgomp.fortran/target8.f90: Ditto. * testsuite/libgomp.fortran/task1.f90: Ditto. * testsuite/libgomp.fortran/task2.f90: Ditto. * testsuite/libgomp.fortran/task3.f90: Ditto. * testsuite/libgomp.fortran/task4.f90: Ditto. * testsuite/libgomp.fortran/taskgroup1.f90: Ditto. * testsuite/libgomp.fortran/taskloop1.f90: Ditto. * testsuite/libgomp.fortran/taskloop2.f90: Ditto. * testsuite/libgomp.fortran/taskloop3.f90: Ditto. * testsuite/libgomp.fortran/taskloop4.f90: Ditto. * testsuite/libgomp.fortran/threadprivate1.f90: Ditto. * testsuite/libgomp.fortran/threadprivate2.f90: Ditto. * testsuite/libgomp.fortran/threadprivate3.f90: Ditto. * testsuite/libgomp.fortran/threadprivate4.f90: Ditto. * testsuite/libgomp.fortran/udr1.f90: Ditto. * testsuite/libgomp.fortran/udr10.f90: Ditto. * testsuite/libgomp.fortran/udr11.f90: Ditto. * testsuite/libgomp.fortran/udr12.f90: Ditto. * testsuite/libgomp.fortran/udr13.f90: Ditto. * testsuite/libgomp.fortran/udr14.f90: Ditto. * testsuite/libgomp.fortran/udr15.f90: Ditto. * testsuite/libgomp.fortran/udr2.f90: Ditto. * testsuite/libgomp.fortran/udr3.f90: Ditto. * testsuite/libgomp.fortran/udr4.f90: Ditto. * testsuite/libgomp.fortran/udr5.f90: Ditto. * testsuite/libgomp.fortran/udr6.f90: Ditto. * testsuite/libgomp.fortran/udr7.f90: Ditto. * testsuite/libgomp.fortran/udr8.f90: Ditto. * testsuite/libgomp.fortran/udr9.f90: Ditto. * testsuite/libgomp.fortran/vla1.f90: Ditto. * testsuite/libgomp.fortran/vla2.f90: Ditto. * testsuite/libgomp.fortran/vla3.f90: Ditto. * testsuite/libgomp.fortran/vla4.f90: Ditto. * testsuite/libgomp.fortran/vla5.f90: Ditto. * testsuite/libgomp.fortran/vla6.f90: Ditto. * testsuite/libgomp.fortran/vla7.f90: Ditto. * testsuite/libgomp.fortran/vla8.f90: Ditto. * testsuite/libgomp.fortran/workshare1.f90: Ditto. * testsuite/libgomp.fortran/workshare2.f90: Ditto. 2019-10-30 Tobias Burnus * testsuite/libgomp.fortran/target-simd.f90: Use stop not abort. * testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: Ditto; add 'dg-do run' for torture testing. * testsuite/libgomp.fortran/lastprivate1.f90: Add 'dg-do run'. * testsuite/libgomp.fortran/lastprivate2.f90: Ditto. * testsuite/libgomp.fortran/nestedfn4.f90: Ditto. * testsuite/libgomp.fortran/pr25219.f90: Ditto. * testsuite/libgomp.fortran/pr28390.f: Ditto. * testsuite/libgomp.fortran/pr35130.f90: Ditto. * testsuite/libgomp.fortran/pr90779.f90: Ditto. * testsuite/libgomp.fortran/task2.f90: Ditto. * testsuite/libgomp.fortran/taskgroup1.f90: Ditto. * testsuite/libgomp.fortran/taskloop1.f90: Ditto. * testsuite/libgomp.fortran/use_device_addr-1.f90: Ditto. * testsuite/libgomp.fortran/use_device_addr-2.f90: Ditto. * testsuite/libgomp.fortran/workshare1.f90: Ditto. * testsuite/libgomp.fortran/workshare2.f90: Ditto. 2019-10-28 Tobias Burnus * testsuite/libgomp.oacc-fortran/abort-1.f90: Add 'dg-do run'. * testsuite/libgomp.oacc-fortran/abort-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/lib-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/common-block-1.f90: Use 'stop' not abort(). * testsuite/libgomp.oacc-fortran/common-block-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/common-block-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/data-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/data-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/data-5.f90: Ditto. * testsuite/libgomp.oacc-fortran/dummy-array.f90: Ditto. * testsuite/libgomp.oacc-fortran/gemm-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/gemm.f90: Ditto. * testsuite/libgomp.oacc-fortran/host_data-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/host_data-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/host_data-4.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-independent.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-vector-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-vector-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-3.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-4.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-5.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-6.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-private-vars-worker-7.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90: Ditto. * testsuite/libgomp.oacc-fortran/lib-12.f90: Ditto. * testsuite/libgomp.oacc-fortran/lib-13.f90: Ditto. * testsuite/libgomp.oacc-fortran/lib-14.f90: Ditto. * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90: Likewise and also add 'dg-do run'. * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90: Ditto. 2019-10-25 Cesar Philippidis Tobias Burnus * testsuite/libgomp.oacc-fortran/common-block-1.f90: New test. * testsuite/libgomp.oacc-fortran/common-block-2.f90: New test. * testsuite/libgomp.oacc-fortran/common-block-3.f90: New test. 2019-10-14 Jakub Jelinek PR libgomp/92081 * testsuite/libgomp.fortran/target-simd.f90: Iterate from 1 rather than 0. 2019-10-11 Tobias Burnus * testsuite/libgomp.fortran/use_device_addr-1.f90: New. * testsuite/libgomp.fortran/use_device_addr-2.f90: New. 2019-10-09 Thomas Schwinge PR middle-end/92036 * testsuite/libgomp.oacc-c-c++-common/data-firstprivate-1.c: New file. 2019-10-09 Tobias Burnus PR testsuite/91884 * testsuite/libgomp.fortran/fortran.exp: Conditionally add -lquadmath. * testsuite/libgomp.oacc-fortran/fortran.exp: Ditto. 2019-10-09 Jakub Jelinek PR libgomp/92028 * target.c (gomp_map_vars_internal): Readd the previous GOMP_MAP_USE_DEVICE_PTR handling code in the first loop, though do that just in the !not_found_cnt case. 2019-10-08 Tobias Burnus * gfortran.dg/gomp/target-simd.f90: New. 2019-10-02 Julian Brown Cesar Philippidis * libgomp.h (OFFSET_INLINED, OFFSET_POINTER, OFFSET_STRUCT): Define. * target.c (FIELD_TGT_EMPTY): Define. (gomp_map_val): Use OFFSET_* macros instead of magic constants. Write as switch instead of list of ifs. (gomp_map_vars_internal): Use OFFSET_* and FIELD_TGT_EMPTY macros. 2019-10-02 Andreas Tobler * testsuite/libgomp.oacc-c-c++-common/loop-default.h: Remove alloca.h include. Replace alloca () with __builtin_alloca (). * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Likewise. 2019-10-01 Jakub Jelinek * configure.ac: Remove GCC_HEADER_STDINT(gstdint.h). * libgomp.h: Include instead of "gstdint.h". * oacc-parallel.c: Don't include "libgomp_g.h". * plugin/plugin-hsa.c: Include instead of "gstdint.h". * plugin/plugin-nvptx.c: Don't include "gstdint.h". * aclocal.m4: Regenerated. * config.h.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. 2019-09-30 Kwok Cheung Yeung * libgomp_g.h: Include stdint.h instead of gstdint.h. 2019-09-27 Maciej W. Rozycki * configure: Regenerate. 2019-09-13 Tobias Burnus * plugin/plugin-hsa.c (hsa_warn, hsa_fatal, hsa_error): Ensure string is initialized. 2019-09-06 Florian Weimer * configure: Regenerate. 2019-09-03 Chung-Lin Tang PR other/79543 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. 2019-08-28 Jakub Jelinek PR libgomp/91530 * testsuite/libgomp.c/scan-21.c: New test. * testsuite/libgomp.c/scan-22.c: New test. 2019-08-27 Jakub Jelinek PR libgomp/91530 * testsuite/libgomp.c/scan-11.c: Add -msse2 option for sse2_runtime targets. * testsuite/libgomp.c/scan-12.c: Likewise. * testsuite/libgomp.c/scan-13.c: Likewise. * testsuite/libgomp.c/scan-14.c: Likewise. * testsuite/libgomp.c/scan-15.c: Likewise. * testsuite/libgomp.c/scan-16.c: Likewise. * testsuite/libgomp.c/scan-17.c: Likewise. * testsuite/libgomp.c/scan-18.c: Likewise. * testsuite/libgomp.c/scan-19.c: Likewise. * testsuite/libgomp.c/scan-20.c: Likewise. * testsuite/libgomp.c++/scan-9.C: Likewise. * testsuite/libgomp.c++/scan-10.C: Likewise. * testsuite/libgomp.c++/scan-11.C: Likewise. * testsuite/libgomp.c++/scan-12.C: Likewise. * testsuite/libgomp.c++/scan-14.C: Likewise. * testsuite/libgomp.c++/scan-15.C: Likewise. * testsuite/libgomp.c++/scan-13.C: Likewise. Use sse2_runtime instead of i?86-*-* x86_64-*-* as target for scan-tree-dump-times. * testsuite/libgomp.c++/scan-16.C: Likewise. 2019-08-17 Thomas Koenig PR fortran/91473 * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -std=legacy so invalid code in the test case is accepted. 2019-08-12 Thomas Koenig PR fortran/91422 * testsuite/libgomp.oacc-fortran/routine-7.f90: Correct array dimension. 2019-08-08 Jakub Jelinek * target.c (gomp_map_vars_internal): For GOMP_MAP_USE_DEVICE_PTR perform the lookup in the first loop only if !not_found_cnt, otherwise perform lookups for it in the second loop guarded with if (not_found_cnt || has_firstprivate). * testsuite/libgomp.c/target-37.c: New test. * testsuite/libgomp.c++/target-22.C: New test. 2019-08-07 Jakub Jelinek * testsuite/libgomp.c/target-18.c (struct S): New type. (foo): Use use_device_addr clause instead of use_device_ptr clause where required by OpenMP 5.0, add further tests for both use_device_ptr and use_device_addr clauses. * testsuite/libgomp.c++/target-9.C (struct S): New type. (foo): Use use_device_addr clause instead of use_device_ptr clause where required by OpenMP 5.0, add further tests for both use_device_ptr and use_device_addr clauses. Add t and u arguments. (main): Adjust caller. 2019-08-06 Jakub Jelinek * testsuite/libgomp.c++/loop-13.C: New test. * testsuite/libgomp.c++/loop-14.C: New test. * testsuite/libgomp.c++/loop-15.C: New test. 2019-07-31 Jakub Jelinek PR middle-end/91301 * testsuite/libgomp.c++/for-27.C: New test. 2019-07-23 Steven G. Kargl * testsuite/libgomp.fortran/reduction4.f90: Update BOZ usage. * testsuite/libgomp.fortran/reduction5.f90: Ditto. 2019-07-20 Jakub Jelinek * testsuite/libgomp.c-c++-common/loop-1.c: New test. 2019-07-08 Jakub Jelinek * testsuite/libgomp.c++/scan-13.C: Replace xfail with target x86. * testsuite/libgomp.c++/scan-16.C: Likewise. 2019-07-06 Jakub Jelinek * testsuite/libgomp.c/scan-19.c: New test. * testsuite/libgomp.c/scan-20.c: New test. * testsuite/libgomp.c/scan-11.c: New test. * testsuite/libgomp.c/scan-12.c: New test. * testsuite/libgomp.c/scan-13.c: New test. * testsuite/libgomp.c/scan-14.c: New test. * testsuite/libgomp.c/scan-15.c: New test. * testsuite/libgomp.c/scan-16.c: New test. * testsuite/libgomp.c/scan-17.c: New test. * testsuite/libgomp.c/scan-18.c: New test. * testsuite/libgomp.c++/scan-9.C: New test. * testsuite/libgomp.c++/scan-10.C: New test. * testsuite/libgomp.c++/scan-11.C: New test. * testsuite/libgomp.c++/scan-12.C: New test. * testsuite/libgomp.c++/scan-13.C: New test. * testsuite/libgomp.c++/scan-14.C: New test. * testsuite/libgomp.c++/scan-15.C: New test. * testsuite/libgomp.c++/scan-16.C: New test. 2019-07-04 Jakub Jelinek * testsuite/libgomp.c/scan-9.c: New test. * testsuite/libgomp.c/scan-10.c: New test. 2019-07-03 Jakub Jelinek * testsuite/libgomp.c++/scan-1.C: New test. * testsuite/libgomp.c++/scan-2.C: New test. * testsuite/libgomp.c++/scan-3.C: New test. * testsuite/libgomp.c++/scan-4.C: New test. * testsuite/libgomp.c++/scan-5.C: New test. * testsuite/libgomp.c++/scan-6.C: New test. * testsuite/libgomp.c++/scan-7.C: New test. * testsuite/libgomp.c++/scan-8.C: New test. * testsuite/libgomp.c/scan-1.c: New test. * testsuite/libgomp.c/scan-2.c: New test. * testsuite/libgomp.c/scan-3.c: New test. * testsuite/libgomp.c/scan-4.c: New test. * testsuite/libgomp.c/scan-5.c: New test. * testsuite/libgomp.c/scan-6.c: New test. * testsuite/libgomp.c/scan-7.c: New test. * testsuite/libgomp.c/scan-8.c: New test. 2019-06-18 Thomas Schwinge * testsuite/libgomp.oacc-c++/firstprivate-mappings-1.C: New file. * testsuite/libgomp.oacc-c-c++-common/firstprivate-mappings-1.c: Likewise. * testsuite/libgomp.fortran/allocatable3.f90: Add missing results check. 2019-06-18 Cesar Philippidis * testsuite/libgomp.oacc-fortran/allocatable-array-1.f90: New file. 2019-06-18 Thomas Schwinge PR fortran/90743 * oacc-parallel.c (GOACC_parallel_keyed): Handle NULL mapping case. * testsuite/libgomp.fortran/target-allocatable-1-1.f90: New file. * testsuite/libgomp.fortran/target-allocatable-1-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/allocatable-1-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/allocatable-1-2.f90: Likewise. PR testsuite/90861 * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Update. PR middle-end/90862 * testsuite/libgomp.oacc-c-c++-common/declare-1.c: Update. 2019-06-16 Tom de Vries PR tree-optimization/89376 * testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test. 2019-06-15 Tom de Vries PR tree-optimization/89713 * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Expect no bar.sync. * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Same. 2019-06-15 Jakub Jelinek PR middle-end/90779 * testsuite/libgomp.c/pr90779.c: New test. * testsuite/libgomp.fortran/pr90779.f90: New test. 2019-06-15 Tom de Vries PR tree-optimization/90009 * testsuite/libgomp.oacc-c-c++-common/pr90009.c: New test. 2019-06-13 Feng Xue PR tree-optimization/89713 * testsuite/libgomp.oacc-c-c++-common/pr84955-1.c: New test. 2019-06-11 Jakub Jelinek PR target/90811 * testsuite/libgomp.c/pr90811.c: New test. 2019-06-05 Jakub Jelinek * testsuite/libgomp.c++/lastprivate-conditional-1.C: New test. * testsuite/libgomp.c++/lastprivate-conditional-2.C: New test. 2019-06-04 Jakub Jelinek * testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c: New test. 2019-05-30 Rainer Orth * configure.ac: Call AX_COUNT_CPUS. Substitute CPU_COUNT. * testsuite/Makefile.am (check-am): Use CPU_COUNT as processor count fallback. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in, testsuite/Makefile.in: Regenerate. 2019-05-29 Jakub Jelinek * testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: Rename to ... * testsuite/libgomp.c-c++-common/lastprivate-conditional-4.c: ... this. * testsuite/libgomp.c-c++-common/lastprivate-conditional-5.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-6.c: New test. 2019-05-27 Jakub Jelinek * testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test. PR libgomp/90641 * work.c (gomp_init_work_share): Instead of aligning final ordered value to multiples of long long alignment, align to that the first part (ordered team ids) and if inline_ordered_team_ids is not on a long long alignment boundary within the structure, use __alignof__ (long long) - 1 pad size always. * loop.c (GOMP_loop_start): Fix *mem computation if inline_ordered_team_ids is not aligned on long long alignment boundary within the structure. * loop-ull.c (GOMP_loop_ull_start): Likewise. * sections.c (GOMP_sections2_start): Likewise. 2019-05-24 Jakub Jelinek * testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test. * testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test. PR libgomp/90585 * plugin/plugin-hsa.c: Include gstdint.h. Include inttypes.h only if HAVE_INTTYPES_H is defined. (print_uint64_t): New typedef. (PRIu64): Define if HAVE_INTTYPES_H is not defined. (print_kernel_dispatch, run_kernel): Use PRIu64 macro instead of "lu", cast uint64_t HSA_DEBUG and fprintf arguments to print_uint64_t. (release_kernel_dispatch): Likewise. Cast shadow->debug to uintptr_t before casting to void *. * plugin/plugin-nvptx.c: Include gstdint.h instead of stdint.h. * oacc-mem.c: Don't include config.h nor stdint.h. * target.c: Don't include config.h. * oacc-cuda.c: Likewise. * oacc-host.c: Don't include stdint.h. 2019-05-20 Jakub Jelinek PR libgomp/90527 * alloc.c (_GNU_SOURCE): Define. 2019-05-17 Thomas Schwinge * acc_prof.h: New file. * oacc-profiling.c: Likewise. * Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES): Add these, respectively. * Makefile.in: Regenerate. * env.c (initialize_env): Call goacc_profiling_initialize. * oacc-plugin.c (GOMP_PLUGIN_goacc_thread) (GOMP_PLUGIN_goacc_profiling_dispatch): New functions. * oacc-plugin.h (GOMP_PLUGIN_goacc_thread) (GOMP_PLUGIN_goacc_profiling_dispatch): Declare. * libgomp.map (OACC_2.5.1): Add acc_prof_lookup, acc_prof_register, acc_prof_unregister, and acc_register_library. (GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and GOMP_PLUGIN_goacc_thread. * oacc-int.h (struct goacc_thread): Add prof_info, api_info, prof_callbacks_enabled members. (goacc_prof_enabled, goacc_profiling_initialize) (_goacc_profiling_dispatch_p, _goacc_profiling_setup_p) (goacc_profiling_dispatch): Declare. (GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P) (GOACC_PROFILING_SETUP_P): Define. * oacc-async.c (acc_async_test, acc_async_test_all, acc_wait) (acc_wait_async, acc_wait_all, acc_wait_all_async): Update for OpenACC Profiling Interface. * oacc-cuda.c (acc_get_current_cuda_device) (acc_get_current_cuda_context, acc_get_cuda_stream) (acc_set_cuda_stream): Likewise. * oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device) (acc_init, acc_set_device_type, acc_get_device_type) (acc_get_device_num, goacc_lazy_initialize): Likewise. * oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device) (acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data) (acc_unmap_data, present_create_copy, delete_copyout) (update_dev_host): Likewise. * oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start) (GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait): Likewise. * plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free) (GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec): Likewise. * libgomp.texi: Update. * testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c: Likewise. 2019-05-13 Chung-Lin Tang * libgomp-plugin.h (struct goacc_asyncqueue): Declare. (struct goacc_asyncqueue_list): Likewise. (goacc_aq): Likewise. (goacc_aq_list): Likewise. (GOMP_OFFLOAD_openacc_register_async_cleanup): Remove. (GOMP_OFFLOAD_openacc_async_test): Remove. (GOMP_OFFLOAD_openacc_async_test_all): Remove. (GOMP_OFFLOAD_openacc_async_wait): Remove. (GOMP_OFFLOAD_openacc_async_wait_async): Remove. (GOMP_OFFLOAD_openacc_async_wait_all): Remove. (GOMP_OFFLOAD_openacc_async_wait_all_async): Remove. (GOMP_OFFLOAD_openacc_async_set_async): Remove. (GOMP_OFFLOAD_openacc_exec): Adjust declaration. (GOMP_OFFLOAD_openacc_cuda_get_stream): Likewise. (GOMP_OFFLOAD_openacc_cuda_set_stream): Likewise. (GOMP_OFFLOAD_openacc_async_exec): Declare. (GOMP_OFFLOAD_openacc_async_construct): Declare. (GOMP_OFFLOAD_openacc_async_destruct): Declare. (GOMP_OFFLOAD_openacc_async_test): Declare. (GOMP_OFFLOAD_openacc_async_synchronize): Declare. (GOMP_OFFLOAD_openacc_async_serialize): Declare. (GOMP_OFFLOAD_openacc_async_queue_callback): Declare. (GOMP_OFFLOAD_openacc_async_host2dev): Declare. (GOMP_OFFLOAD_openacc_async_dev2host): Declare. * libgomp.h (struct acc_dispatch_t): Define 'async' sub-struct. (gomp_acc_insert_pointer): Adjust declaration. (gomp_copy_host2dev): New declaration. (gomp_copy_dev2host): Likewise. (gomp_map_vars_async): Likewise. (gomp_unmap_tgt): Likewise. (gomp_unmap_vars_async): Likewise. (gomp_fini_device): Likewise. * oacc-async.c (get_goacc_thread): New function. (get_goacc_thread_device): New function. (lookup_goacc_asyncqueue): New function. (get_goacc_asyncqueue): New function. (acc_async_test): Adjust code to use new async design. (acc_async_test_all): Likewise. (acc_wait): Likewise. (acc_wait_async): Likewise. (acc_wait_all): Likewise. (acc_wait_all_async): Likewise. (goacc_async_free): New function. (goacc_init_asyncqueues): Likewise. (goacc_fini_asyncqueues): Likewise. * oacc-cuda.c (acc_get_cuda_stream): Adjust code to use new async design. (acc_set_cuda_stream): Likewise. * oacc-host.c (host_openacc_exec): Adjust parameters, remove 'async'. (host_openacc_register_async_cleanup): Remove. (host_openacc_async_exec): New function. (host_openacc_async_test): Adjust parameters. (host_openacc_async_test_all): Remove. (host_openacc_async_wait): Remove. (host_openacc_async_wait_async): Remove. (host_openacc_async_wait_all): Remove. (host_openacc_async_wait_all_async): Remove. (host_openacc_async_set_async): Remove. (host_openacc_async_synchronize): New function. (host_openacc_async_serialize): New function. (host_openacc_async_host2dev): New function. (host_openacc_async_dev2host): New function. (host_openacc_async_queue_callback): New function. (host_openacc_async_construct): New function. (host_openacc_async_destruct): New function. (struct gomp_device_descr host_dispatch): Remove initialization of old interface, add initialization of new async sub-struct. * oacc-init.c (acc_shutdown_1): Adjust to use gomp_fini_device. (goacc_attach_host_thread_to_device): Remove old async code usage. * oacc-int.h (goacc_init_asyncqueues): New declaration. (goacc_fini_asyncqueues): Likewise. (goacc_async_copyout_unmap_vars): Likewise. (goacc_async_free): Likewise. (get_goacc_asyncqueue): Likewise. (lookup_goacc_asyncqueue): Likewise. * oacc-mem.c (memcpy_tofrom_device): Adjust code to use new async design. (present_create_copy): Adjust code to use new async design. (delete_copyout): Likewise. (update_dev_host): Likewise. (gomp_acc_insert_pointer): Add async parameter, adjust code to use new async design. (gomp_acc_remove_pointer): Adjust code to use new async design. * oacc-parallel.c (GOACC_parallel_keyed): Adjust code to use new async design. (GOACC_enter_exit_data): Likewise. (goacc_wait): Likewise. (GOACC_update): Likewise. * oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Change to assert fail when called, warn as obsolete in comment. * target.c (goacc_device_copy_async): New function. (gomp_copy_host2dev): Remove 'static', add goacc_asyncqueue parameter, add goacc_device_copy_async case. (gomp_copy_dev2host): Likewise. (gomp_map_vars_existing): Add goacc_asyncqueue parameter, adjust code. (gomp_map_pointer): Likewise. (gomp_map_fields_existing): Likewise. (gomp_map_vars_internal): New always_inline function, renamed from gomp_map_vars. (gomp_map_vars): Implement by calling gomp_map_vars_internal. (gomp_map_vars_async): Implement by calling gomp_map_vars_internal, passing goacc_asyncqueue argument. (gomp_unmap_tgt): Remove static, add attribute_hidden. (gomp_unref_tgt): New function. (gomp_unmap_vars_internal): New always_inline function, renamed from gomp_unmap_vars. (gomp_unmap_vars): Implement by calling gomp_unmap_vars_internal. (gomp_unmap_vars_async): Implement by calling gomp_unmap_vars_internal, passing goacc_asyncqueue argument. (gomp_fini_device): New function. (gomp_exit_data): Adjust gomp_copy_dev2host call. (gomp_load_plugin_for_device): Remove old interface, adjust to load new async interface. (gomp_target_fini): Adjust code to call gomp_fini_device. * plugin/plugin-nvptx.c (struct cuda_map): Remove. (struct ptx_stream): Remove. (struct nvptx_thread): Remove current_stream field. (cuda_map_create): Remove. (cuda_map_destroy): Remove. (map_init): Remove. (map_fini): Remove. (map_pop): Remove. (map_push): Remove. (struct goacc_asyncqueue): Define. (struct nvptx_callback): Define. (struct ptx_free_block): Define. (struct ptx_device): Remove null_stream, active_streams, async_streams, stream_lock, and next fields. (enum ptx_event_type): Remove. (struct ptx_event): Remove. (ptx_event_lock): Remove. (ptx_events): Remove. (init_streams_for_device): Remove. (fini_streams_for_device): Remove. (select_stream_for_async): Remove. (nvptx_init): Remove ptx_events and ptx_event_lock references. (nvptx_attach_host_thread_to_device): Remove CUDA_ERROR_NOT_PERMITTED case. (nvptx_open_device): Add free_blocks initialization, remove init_streams_for_device call. (nvptx_close_device): Remove fini_streams_for_device call, add free_blocks destruct code. (event_gc): Remove. (event_add): Remove. (nvptx_exec): Adjust parameters and code. (nvptx_free): Likewise. (nvptx_host2dev): Remove. (nvptx_dev2host): Remove. (nvptx_set_async): Remove. (nvptx_async_test): Remove. (nvptx_async_test_all): Remove. (nvptx_wait): Remove. (nvptx_wait_async): Remove. (nvptx_wait_all): Remove. (nvptx_wait_all_async): Remove. (nvptx_get_cuda_stream): Remove. (nvptx_set_cuda_stream): Remove. (GOMP_OFFLOAD_alloc): Adjust code. (GOMP_OFFLOAD_free): Likewise. (GOMP_OFFLOAD_openacc_register_async_cleanup): Remove. (GOMP_OFFLOAD_openacc_exec): Adjust parameters and code. (GOMP_OFFLOAD_openacc_async_test_all): Remove. (GOMP_OFFLOAD_openacc_async_wait): Remove. (GOMP_OFFLOAD_openacc_async_wait_async): Remove. (GOMP_OFFLOAD_openacc_async_wait_all): Remove. (GOMP_OFFLOAD_openacc_async_wait_all_async): Remove. (GOMP_OFFLOAD_openacc_async_set_async): Remove. (cuda_free_argmem): New function. (GOMP_OFFLOAD_openacc_async_exec): New plugin hook function. (GOMP_OFFLOAD_openacc_create_thread_data): Adjust code. (GOMP_OFFLOAD_openacc_cuda_get_stream): Adjust code. (GOMP_OFFLOAD_openacc_cuda_set_stream): Adjust code. (GOMP_OFFLOAD_openacc_async_construct): New plugin hook function. (GOMP_OFFLOAD_openacc_async_destruct): New plugin hook function. (GOMP_OFFLOAD_openacc_async_test): Remove and re-implement. (GOMP_OFFLOAD_openacc_async_synchronize): New plugin hook function. (GOMP_OFFLOAD_openacc_async_serialize): New plugin hook function. (GOMP_OFFLOAD_openacc_async_queue_callback): New plugin hook function. (cuda_callback_wrapper): New function. (cuda_memcpy_sanity_check): New function. (GOMP_OFFLOAD_host2dev): Remove and re-implement. (GOMP_OFFLOAD_dev2host): Remove and re-implement. (GOMP_OFFLOAD_openacc_async_host2dev): New plugin hook function. (GOMP_OFFLOAD_openacc_async_dev2host): New plugin hook function. 2019-05-07 Thomas Schwinge PR target/87835 * testsuite/libgomp.oacc-c-c++-common/pr87835.c: Update. 2019-05-06 Thomas Schwinge * oacc-parallel.c: Add comments to legacy entry points (GCC 5). 2019-03-27 Kevin Buettner * team.c (gomp_team_start): Initialize pool->threads[0]. 2019-02-22 Thomas Schwinge * testsuite/libgomp.oacc-c++/c++.exp: Specify "-foffload=$offload_target". * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. * testsuite/lib/libgomp.exp (check_effective_target_openacc_nvidia_accel_configured): Remove, as (conceptually) merged into check_effective_target_openacc_nvidia_accel_selected. Adjust all users. * plugin/configfrag.ac: Populate and AC_SUBST offload_targets. * testsuite/libgomp-test-support.exp.in: Adjust. * testsuite/lib/libgomp.exp: Likewise. Don't populate openacc_device_types_s. (offload_target_to_openacc_device_type): New proc. * testsuite/libgomp.oacc-c++/c++.exp: Adjust. * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. * Makefile.in: Regenerate. * configure: Likewise. * testsuite/Makefile.in: Likewise. * plugin/configfrag.ac: Populate and AC_SUBST offload_plugins instead of offload_targets, and AC_DEFINE_UNQUOTED OFFLOAD_PLUGINS instead of OFFLOAD_TARGETS. * target.c (gomp_target_init): Adjust. * testsuite/libgomp-test-support.exp.in: Likewise. * testsuite/lib/libgomp.exp: Likewise. Populate openacc_device_types_s instead of offload_targets_s_openacc. (check_effective_target_openacc_nvidia_accel_selected) (check_effective_target_openacc_host_selected): Adjust. * testsuite/libgomp.oacc-c++/c++.exp: Likewise. * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. * Makefile.in: Regenerate. * config.h.in: Likewise. * configure: Likewise. * testsuite/Makefile.in: Likewise. * testsuite/lib/libgomp.exp: Error out for unknown offload target. * testsuite/libgomp.oacc-c++/c++.exp: Likewise. Report if "offloading: supported, but hardware not accessible". * testsuite/libgomp.oacc-c/c.exp: Likewise. * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise. 2019-02-19 Chung-Lin Tang PR c/87924 * oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to goacc_wait(). (goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call and related adjustment. 2019-01-30 Jakub Jelinek PR c++/88988 * testsuite/libgomp.c++/pr88988.C: New test. 2019-01-28 Jakub Jelinek PR middle-end/89002 * testsuite/libgomp.c/pr89002.c: New test. 2019-01-28 Richard Biener PR testsuite/89064 PR tree-optimization/86865 * testsuite/libgomp.graphite/force-parallel-5.c: XFAIL. 2019-01-24 Tom de Vries * plugin/plugin-nvptx.c (GOMP_OFFLOAD_fini_device): Free ptx_devices once instantiated_devices drops to 0. 2019-01-23 Tom de Vries PR target/PR88946 * plugin/plugin-nvptx.c (cuda_map_destroy): Use CUDA_CALL_NOCHECK for cuMemFree. (nvptx_exec): Don't call map_push if mapnum == 0. * testsuite/libgomp.oacc-c-c++-common/pr88946.c: New test. 2019-01-23 Tom de Vries PR target/88941 PR target/88939 * plugin/plugin-nvptx.c (cuda_map_destroy): Handle map->active case. (map_fini): Remove "assert (!s->map->active)". * testsuite/libgomp.oacc-c-c++-common/pr88941.c: New test. 2019-01-23 Tom de Vries PR target/87835 * plugin/plugin-nvptx.c (map_push): Fix adding of allocated element. * testsuite/libgomp.oacc-c-c++-common/pr87835.c: New test. 2019-01-15 Tom de Vries PR target/80547 * testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c: New test. 2019-01-12 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: New test. * testsuite/libgomp.oacc-fortran/gemm-2.f90: New test. 2019-01-12 Tom de Vries * plugin/plugin-nvptx.c (nvptx_exec): Update error message. 2019-01-12 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-64-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-64-3.c: New test. 2019-01-12 Tom de Vries PR target/85486 * testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85486.c: New test. 2019-01-12 Tom de Vries PR target/85381 * testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85381.c: New test. 2019-01-12 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: New test. * testsuite/libgomp.oacc-fortran/gemm.f90: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-10.c: New test. 2019-01-12 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: New test. 2019-01-12 Tom de Vries * plugin/plugin-nvptx.c (nvptx_exec): Update insufficient hardware resources diagnostic. 2019-01-12 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect vector length to be 128. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector length 2097152 to be reduced to 1024 instead of 32. 2019-01-11 Thomas Schwinge James Norris * libgomp.texi: Better distinguish OpenACC and OpenMP "Runtime Library Routines", and "Environment Variables". 2019-01-11 Tom de Vries * plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and num_workers 16. 2019-01-11 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Remove -foffload=-w. * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Same. 2019-01-11 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c: New test. 2019-01-10 Nathan Sidwell Julian Brown PR lto/71959 * testsuite/libgomp.oacc-c++/pr71959-aux.cc: New. * testsuite/libgomp.oacc-c++/pr71959.C: New. 2019-01-09 Sebastian Huber * config/rtems/bar.c: Include "../linux/bar.c" and delete copy and paste code. 2019-01-09 Sebastian Huber * config/rtems/affinity-fmt.c: New file. Include affinity-fmt.c, undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to write. 2019-01-09 Tom de Vries PR target/88756 * testsuite/libgomp.oacc-c-c++-common/reduction-1.c (ng, nw, vl): Use #define instead of "const int". * testsuite/libgomp.oacc-c-c++-common/reduction-2.c (ng, nw, vl): Same. * testsuite/libgomp.oacc-c-c++-common/reduction-3.c (ng, nw, vl): Same. * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (ng, nw, vl): Same. * testsuite/libgomp.oacc-c-c++-common/reduction-5.c (ng, nw, vl): Same. 2019-01-09 Tom de Vries * plugin/plugin-nvptx.c (nvptx_exec): Make sure to launch with at least one worker. 2019-01-07 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Fix GOMP_OPENACC_DIM argument. 2019-01-03 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: New test. 2019-01-01 Jakub Jelinek Update copyright years. 2019-01-01 Jakub Jelinek * libgomp.texi: Bump @copying's copyright year. 2018-12-28 Thomas Schwinge * oacc-parallel.c (GOACC_parallel_keyed, GOACC_parallel) (GOACC_data_start, GOACC_enter_exit_data, GOACC_update) (GOACC_declare): Redefine the "device" argument to "flags". 2018-12-28 Thomas Schwinge Cesar Philippidis * target.c (struct gomp_coalesce_chunk): New structure. (struct gomp_coalesce_buf): Update the chunks member to use that type. Adjust all users. 2018-12-19 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: New test. 2018-12-19 Tom de Vries * testsuite/lib/libgomp.exp: Add load_lib of scanoffloadrtl.exp. * testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c: Move from gcc/testsuite/gcc.dg/goacc. * testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c: Same. 2018-12-14 Thomas Schwinge Chung-Lin Tang * oacc-mem.c (acc_present_or_create): Remove definition and change to alias of acc_create. (acc_present_or_copyin): Remove definition and change to alias of acc_copyin. * oacc-parallel.c (GOACC_enter_exit_data): Call acc_create instead of acc_present_or_create. * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Remove. * 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-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. 2018-12-14 Thomas Schwinge PR libgomp/88495 * plugin/plugin-nvptx.c (nvptx_wait_async): Don't refuse "identical parameters". * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Update. * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Remove. PR libgomp/88484 * oacc-parallel.c (GOACC_wait): Correct handling for "async >= 0". * testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: New file. PR libgomp/88407 * plugin/plugin-nvptx.c (nvptx_async_test, nvptx_wait) (nvptx_wait_async): Unseen async-argument is a no-op. * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Update. * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise. * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Merge into... * testsuite/libgomp.oacc-c-c++-common/lib-69.c: ... this. Update. * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Merge into... * testsuite/libgomp.oacc-c-c++-common/lib-74.c: ... this. Update * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Revise. * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. 2018-12-14 Chung-Lin Tang * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust. * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise. 2018-12-14 Thomas Schwinge PR libgomp/88370 * libgomp.texi (acc_get_current_cuda_context, acc_get_cuda_stream) (acc_set_cuda_stream): Clarify. * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use "async_valid_p". * plugin/plugin-nvptx.c (nvptx_set_cuda_stream): Refuse "async == acc_async_sync". * testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c: New file. * testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Update. * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise. 2018-12-14 Tom de Vries * testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c: New test. * testsuite/libgomp.c-c++-common/function-not-offloaded.c: New test. * testsuite/libgomp.c-c++-common/variable-not-offloaded.c: New test. * testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: New test. * testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c: New test. 2018-12-13 Tom de Vries * affinity-fmt.c (gomp_print_string): New function, factored out of ... (omp_display_affinity, gomp_display_affinity_thread): ... here, and ... * fortran.c (omp_display_affinity_): ... here. * libgomp.h (gomp_print_string): Declare. * config/nvptx/affinity-fmt.c: New file. Include affinity-fmt.c, undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to write. 2018-12-13 Jakub Jelinek PR libgomp/88460 * testsuite/libgomp.c++/for-24.C (results): Include it in omp declare target region. (main): Use map (always, tofrom: results) instead of map (tofrom: results). 2018-12-12 Jakub Jelinek PR fortran/88463 * testsuite/libgomp.fortran/pr88463-1.f90: New test. * testsuite/libgomp.fortran/pr88463-2.f90: New test. * testsuite/libgomp.c-c++-common/for-16.c: New test. 2018-12-12 Andreas Schwab * config/linux/ia64/futex.h (sys_futex0): Don't mark r12 as clobbered. 2018-12-09 Thomas Koenig PR fortran/88411 * testsuite/libgomp.fortran/async_io_8.f90: New test. 2018-12-09 Thomas Schwinge Jakub Jelinek * target.c (gomp_map_vars): Call gomp_copy_host2dev instead of devicep->host2dev_func. 2018-12-08 Jakub Jelinek PR libgomp/87995 * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require tls_runtime effective target. (t): New threadprivate variable. (main): Set t in threads which execute iterations of the worksharing loop. Propagate that to the task after the loop and don't abort if the current taskgroup hasn't been cancelled. 2018-12-02 Jakub Jelinek * testsuite/libgomp.c/task-reduction-3.c: New test. * testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c: New test. 2018-11-30 Cesar Philippidis PR libgomp/88288 * oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs. * testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test. 2018-11-30 Thomas Schwinge * testsuite/libgomp.oacc-fortran/lib-16-2.f90: New file. 2018-10-19 Richard Biener PR tree-optimization/88182 * testsuite/libgomp.c++/pr88182.C: Move to g++.dg/gomp. 2018-11-26 Jakub Jelinek * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Drop dejagnu. (RUNTEST): Don't define. (RUNTESTDEFAULTFLAGS): Add. (check-DEJAGNU, site.exp, distclean-DEJAGNU): New goals. (distclean-am): Depend on distclean-DEJAGNU. (check-am): If -j% option is present in MFLAGS and if `getconf _NPROCESSORS_ONLN` is more than 8, export OMP_NUM_THREADS=8. (.PHONY): Add check-DEJAGNU and distclean-DEJAGNU. * testsuite/Makefile.in: Regenerated. 2018-11-26 Richard Biener PR tree-optimization/88182 * testsuite/libgomp.c++/pr88182.C: New testcase. 2018-11-20 Jakub Jelinek PR bootstrap/88106 * config/mingw32/affinity-fmt.c: New file. 2018-11-09 Jakub Jelinek * affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H. (gomp_display_affinity): Use __builtin_choose_expr to handle properly handle argument having integral, or pointer or some other type. If inttypes.h is available and PRIx64 is defined, use PRIx64 with uint64_t type instead of %llx and unsigned long long. * testsuite/libgomp.c-c++-common/task-reduction-13.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-14.c: New test. 2018-11-08 Rainer Orth * affinity.c: Include , . (gomp_display_affinity_place): Remove cpusetp. * teams.c: Include . 2018-11-08 Jakub Jelinek * testsuite/libgomp.c-c++-common/task-reduction-8.c (bar): Add in_reduction clause for s[0]. * affinity.c (gomp_display_affinity_place): New function. * affinity-fmt.c: New file. * alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions. * config/linux/affinity.c (gomp_display_affinity_place): New function. * config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num): Move these functions to ... * config/nvptx/teams.c: ... here. New file. * config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all): New functions. * config/nvptx/team.c (gomp_team_start, gomp_pause_host): New functions. * configure.ac: Check for aligned_alloc, posix_memalign, memalign and _aligned_malloc. (HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests. * configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux. * env.c (gomp_display_affinity_var, gomp_affinity_format_var, gomp_affinity_format_len): New variables. (parse_schedule): Parse monotonic and nonmonotonic modifiers in OMP_SCHEDULE variable. Set GFS_MONOTONIC for monotonic schedules. (handle_omp_display_env): Display monotonic/nonmonotonic schedule modifiers. Display (non-default) chunk sizes. Print OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT. (initialize_env): Don't call pthread_attr_setdetachstate. Handle OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars. * fortran.c: Include stdio.h and string.h. (omp_pause_resource, omp_pause_resource_all): Add ialias_redirect. (omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit. (omp_set_affinity_format_, omp_get_affinity_format_, omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_, omp_pause_resource_all_): New functions. * icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in switch. * icv-device.c (omp_get_num_teams, omp_get_team_num): Move these functions to ... * teams.c: ... here. New file. * libgomp_g.h: Include gstdint.h. (GOMP_loop_nonmonotonic_runtime_start, GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next, GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start, GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_loop_maybe_nonmonotonic_runtime, GOMP_loop_ull_nonmonotonic_runtime_start, GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next, GOMP_loop_ull_maybe_nonmonotonic_runtime_next, GOMP_loop_ull_doacross_start, GOMP_parallel_reductions, GOMP_taskwait_depend, GOMP_taskgroup_reduction_register, GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap, GOMP_workshare_task_reduction_unregister, GOMP_sections2_start, GOMP_teams_reg): Declare. * libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless gomp_aligned_alloc uses fallback implementation. (gomp_aligned_alloc, gomp_aligned_free): Declare. (enum gomp_schedule_type): Add GFS_MONOTONIC. (struct gomp_doacross_work_share): Add extra field. (struct gomp_work_share): Add task_reductions field. (struct gomp_taskgroup): Add workshare and reductions fields. (GOMP_NEEDS_THREAD_HANDLE): Define if needed. (gomp_thread_handle): New typedef. (gomp_display_affinity_place, gomp_set_affinity_format, gomp_display_string, gomp_display_affinity, gomp_display_affinity_thread): Declare. (gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument. (gomp_parallel_reduction_register, gomp_workshare_taskgroup_start, gomp_workshare_task_reduction_register): Declare. (gomp_team_start): Add taskgroup argument. (gomp_pause_host): Declare. (gomp_init_work_share, gomp_work_share_start): Change bool argument to size_t. (gomp_thread_self, gomp_thread_to_pthread_t): New inline functions. * libgomp.map (GOMP_5.0): Export GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_doacross_start, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_doacross_start, GOMP_workshare_task_reduction_unregister, GOMP_sections2_start, GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_nonmonotonic_runtime_next, GOMP_loop_nonmonotonic_runtime_start, GOMP_loop_ull_maybe_nonmonotonic_runtime_next, GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_nonmonotonic_runtime_next, GOMP_loop_ull_nonmonotonic_runtime_start, GOMP_parallel_loop_maybe_nonmonotonic_runtime, GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions, GOMP_taskgroup_reduction_register, GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap, GOMP_teams_reg and GOMP_taskwait_depend. (OMP_5.0): Export omp_pause_resource{,_all}{,_}, omp_{capture,display}_affinity{,_}, and omp_[gs]et_affinity_format{,_}. * loop.c: Include string.h. (GOMP_loop_runtime_next): Add ialias. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (gomp_loop_static_start, gomp_loop_dynamic_start, gomp_loop_guided_start, gomp_loop_ordered_static_start, gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start, gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start, gomp_loop_doacross_guided_start): Adjust gomp_work_share_start or gomp_doacross_init callers. (gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start, GOMP_loop_doacross_start): New functions. (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start, GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start): Mask off GFS_MONOTONIC bit. (GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_nonmonotonic_runtime_next, GOMP_loop_nonmonotonic_runtime_start, GOMP_parallel_loop_maybe_nonmonotonic_runtime, GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper functions. (gomp_parallel_loop_start): Pass NULL as taskgroup to gomp_team_start. * loop_ull.c: Include string.h. (GOMP_loop_ull_runtime_next): Add ialias. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start, gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start, gomp_loop_ull_ordered_dynamic_start, gomp_loop_ull_ordered_guided_start, gomp_loop_ull_doacross_static_start, gomp_loop_ull_doacross_dynamic_start, gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start and gomp_doacross_ull_init callers. (gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start, GOMP_loop_ull_doacross_start): New functions. (GOMP_loop_ull_runtime_start, GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit. (GOMP_loop_ull_maybe_nonmonotonic_runtime_next, GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_nonmonotonic_runtime_next, GOMP_loop_ull_nonmonotonic_runtime_start): Likewise. * Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c. * omp.h.in (enum omp_sched_t): Add omp_sched_monotonic. (omp_pause_resource_t, omp_depend_t): New typedefs. (enum omp_lock_hint_t): Renamed to ... (enum omp_sync_hint_t): ... this. Define omp_sync_hint_* enumerators using numbers and omp_lock_hint_* as their aliases. (omp_lock_hint_t): New typedef. Rename to ... (omp_sync_hint_t): ... this. (omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use omp_sync_hint_t instead of omp_lock_hint_t. (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format, omp_get_affinity_format, omp_display_affinity, omp_capture_affinity): Declare. (omp_target_is_present, omp_target_disassociate_ptr): Change first argument from void * to const void *. (omp_target_memcpy, omp_target_memcpy_rect): Change second argument from void * to const void *. (omp_target_associate_ptr): Change first and second arguments from void * to const void *. * omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft, omp_pause_hard): New parameters. (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format, omp_get_affinity_format, omp_display_affinity, omp_capture_affinity): New interfaces. * omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft, omp_pause_hard): New parameters. (omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format, omp_get_affinity_format, omp_display_affinity, omp_capture_affinity): New externals. * ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add EXTRA argument. If not needed to prepare array, if extra is 0, clear ws->doacross, otherwise allocate just doacross structure and extra payload. If array is needed, allocate also extra payload. (GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_ull_wait): Handle doacross->array == NULL like doacross == NULL. * parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to gomp_team_start. (GOMP_parallel): Likewise. Formatting fix. (GOMP_parallel_reductions): New function. (GOMP_cancellation_point): If taskgroup has workshare flag set, check cancelled of prev taskgroup if any. (GOMP_cancel): If taskgroup has workshare flag set, set cancelled on prev taskgroup if any. * sections.c: Include string.h. (GOMP_taskgroup_reduction_register): Add ialias_redirect. (GOMP_sections_start): Adjust gomp_work_share_start caller. (GOMP_sections2_start): New function. (GOMP_parallel_sections_start, GOMP_parallel_sections): Pass NULL as taskgroup to gomp_team_start. * single.c (GOMP_single_start, GOMP_single_copy_start): Adjust gomp_work_share_start callers. * target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data): If taskgroup has workshare flag set, check cancelled on prev taskgroup if any. Guard all cancellation tests with gomp_cancel_var test. (omp_target_is_present, omp_target_disassociate_ptr): Change ptr argument from void * to const void *. (omp_target_memcpy): Change src argument from void * to const void *. (omp_target_memcpy_rect): Likewise. (omp_target_memcpy_rect_worker): Likewise. Use const char * casts instead of char * where needed. (omp_target_associate_ptr): Change host_ptr and device_ptr arguments from void * to const void *. (omp_pause_resource, omp_pause_resource_all): New functions. * task.c (gomp_task_handle_depend): Handle new depend array format in addition to the old. Handle mutexinoutset kinds the same as inout for now, handle unspecified kinds. (gomp_create_target_task): If taskgroup has workshare flag set, check cancelled on prev taskgroup if any. Guard all cancellation tests with gomp_cancel_var test. Handle new depend array format count in addition to the old. (GOMP_task): Likewise. Adjust function comment. (gomp_task_run_pre): If taskgroup has workshare flag set, check cancelled on prev taskgroup if any. Guard all cancellation tests with gomp_cancel_var test. (GOMP_taskwait_depend): New function. (gomp_task_maybe_wait_for_dependencies): Handle new depend array format in addition to the old. Handle mutexinoutset kinds the same as inout for now, handle unspecified kinds. Fix a function comment typo. (gomp_taskgroup_init): New function. (GOMP_taskgroup_start): Use it. (gomp_reduction_register, gomp_create_artificial_team, GOMP_taskgroup_reduction_register, GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap, gomp_parallel_reduction_register, gomp_workshare_task_reduction_register, gomp_workshare_taskgroup_start, GOMP_workshare_task_reduction_unregister): New functions. * taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set, check cancelled on prev taskgroup if any. Guard all cancellation tests with gomp_cancel_var test. Handle GOMP_TASK_FLAG_REDUCTION flag by calling GOMP_taskgroup_reduction_register. * team.c (gomp_thread_attr): Remove comment. (struct gomp_thread_start_data): Add handle field. (gomp_thread_start): Call pthread_detach. (gomp_new_team): Adjust gomp_init_work_share caller. (gomp_free_pool_helper): Call pthread_detach. (gomp_team_start): Add taskgroup argument, initialize implicit tasks' taskgroup field to that. Don't call pthread_attr_setdetachstate. Handle OMP_DISPLAY_AFFINITY env var. (gomp_team_end): Determine nesting by thr->ts.level != 0 rather than thr->ts.team != NULL. (gomp_pause_pool_helper, gomp_pause_host): New functions. * work.c (alloc_work_share): Use gomp_aligned_alloc instead of gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined. (gomp_init_work_share): Change ORDERED argument from bool to size_t, if more than 1 allocate also extra payload at the end of array. Never keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead. (gomp_work_share_start): Change ORDERED argument from bool to size_t, return true instead of ws. * Makefile.in: Regenerated. * configure: Regenerated. * config.h.in: Regenerated. * testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier in some cases. * testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test. * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test. * testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test. * testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test. * testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test. * testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test. * testsuite/libgomp.c-c++-common/depobj-1.c: New test. * testsuite/libgomp.c-c++-common/display-affinity-1.c: New test. * testsuite/libgomp.c-c++-common/for-10.c: New test. * testsuite/libgomp.c-c++-common/for-11.c: New test. * testsuite/libgomp.c-c++-common/for-12.c: New test. * testsuite/libgomp.c-c++-common/for-13.c: New test. * testsuite/libgomp.c-c++-common/for-14.c: New test. * testsuite/libgomp.c-c++-common/for-15.c: New test. * testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined, define a different N(test), don't define N(f0) to N(f14), but instead define N(f20) to N(f34) using != comparisons. * testsuite/libgomp.c-c++-common/for-7.c: New test. * testsuite/libgomp.c-c++-common/for-8.c: New test. * testsuite/libgomp.c-c++-common/for-9.c: New test. * testsuite/libgomp.c-c++-common/master-combined-1.c: New test. * testsuite/libgomp.c-c++-common/pause-1.c: New test. * testsuite/libgomp.c-c++-common/pause-2.c: New test. * testsuite/libgomp.c-c++-common/pr66199-10.c: New test. * testsuite/libgomp.c-c++-common/pr66199-11.c: New test. * testsuite/libgomp.c-c++-common/pr66199-12.c: New test. * testsuite/libgomp.c-c++-common/pr66199-13.c: New test. * testsuite/libgomp.c-c++-common/pr66199-14.c: New test. * testsuite/libgomp.c-c++-common/simd-1.c: New test. * testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test. * testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test. * testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test. * testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-11.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-12.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-1.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-2.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-3.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-4.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-5.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-6.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-7.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-8.c: New test. * testsuite/libgomp.c-c++-common/task-reduction-9.c: New test. * testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test. * testsuite/libgomp.c++/depend-1.C: New test. * testsuite/libgomp.c++/depend-iterator-1.C: New test. * testsuite/libgomp.c++/depobj-1.C: New test. * testsuite/libgomp.c++/for-16.C: New test. * testsuite/libgomp.c++/for-21.C: New test. * testsuite/libgomp.c++/for-22.C: New test. * testsuite/libgomp.c++/for-23.C: New test. * testsuite/libgomp.c++/for-24.C: New test. * testsuite/libgomp.c++/for-25.C: New test. * testsuite/libgomp.c++/for-26.C: New test. * testsuite/libgomp.c++/taskloop-reduction-1.C: New test. * testsuite/libgomp.c++/taskloop-reduction-2.C: New test. * testsuite/libgomp.c++/taskloop-reduction-3.C: New test. * testsuite/libgomp.c++/taskloop-reduction-4.C: New test. * testsuite/libgomp.c++/task-reduction-10.C: New test. * testsuite/libgomp.c++/task-reduction-11.C: New test. * testsuite/libgomp.c++/task-reduction-12.C: New test. * testsuite/libgomp.c++/task-reduction-13.C: New test. * testsuite/libgomp.c++/task-reduction-14.C: New test. * testsuite/libgomp.c++/task-reduction-15.C: New test. * testsuite/libgomp.c++/task-reduction-16.C: New test. * testsuite/libgomp.c++/task-reduction-17.C: New test. * testsuite/libgomp.c++/task-reduction-18.C: New test. * testsuite/libgomp.c++/task-reduction-19.C: New test. * testsuite/libgomp.c/task-reduction-1.c: New test. * testsuite/libgomp.c++/task-reduction-1.C: New test. * testsuite/libgomp.c/task-reduction-2.c: New test. * testsuite/libgomp.c++/task-reduction-2.C: New test. * testsuite/libgomp.c++/task-reduction-3.C: New test. * testsuite/libgomp.c++/task-reduction-4.C: New test. * testsuite/libgomp.c++/task-reduction-5.C: New test. * testsuite/libgomp.c++/task-reduction-6.C: New test. * testsuite/libgomp.c++/task-reduction-7.C: New test. * testsuite/libgomp.c++/task-reduction-8.C: New test. * testsuite/libgomp.c++/task-reduction-9.C: New test. * testsuite/libgomp.c/teams-1.c: New test. * testsuite/libgomp.c/teams-2.c: New test. * testsuite/libgomp.c/thread-limit-4.c: New test. * testsuite/libgomp.c/thread-limit-5.c: New test. * testsuite/libgomp.fortran/display-affinity-1.f90: New test. 2018-11-06 Chung-Lin Tang * oacc-mem.c (memcpy_tofrom_device): New function, combined from acc_memcpy_to/from_device functions, now with async parameter. (acc_memcpy_to_device): Modify to use memcpy_tofrom_device. (acc_memcpy_from_device): Likewise. (acc_memcpy_to_device_async): New API function. (acc_memcpy_from_device_async): Likewise. (present_create_copy): Add async parameter and async setting/unsetting. (acc_create): Adjust present_create_copy call. (acc_copyin): Likewise. (acc_present_or_create): Likewise. (acc_present_or_copyin): Likewise. (acc_create_async): New API function. (acc_copyin_async): New API function. (delete_copyout): Add async parameter and async setting/unsetting. (acc_delete): Adjust delete_copyout call. (acc_copyout): Likewise. (acc_delete_async): New API function. (acc_copyout_async): Likewise. (update_dev_host): Add async parameter and async setting/unsetting. (acc_update_device): Adjust update_dev_host call. (acc_update_self): Likewise. (acc_update_device_async): New API function. (acc_update_self_async): Likewise. * openacc.h (acc_copyin_async): Declare new API function. (acc_create_async): Likewise. (acc_copyout_async): Likewise. (acc_delete_async): Likewise. (acc_update_device_async): Likewise. (acc_update_self_async): Likewise. (acc_memcpy_to_device_async): Likewise. (acc_memcpy_from_device_async): Likewise. * openacc_lib.h (acc_copyin_async_32_h): New subroutine. (acc_copyin_async_64_h): New subroutine. (acc_copyin_async_array_h): New subroutine. (acc_create_async_32_h): New subroutine. (acc_create_async_64_h): New subroutine. (acc_create_async_array_h): New subroutine. (acc_copyout_async_32_h): New subroutine. (acc_copyout_async_64_h): New subroutine. (acc_copyout_async_array_h): New subroutine. (acc_delete_async_32_h): New subroutine. (acc_delete_async_64_h): New subroutine. (acc_delete_async_array_h): New subroutine. (acc_update_device_async_32_h): New subroutine. (acc_update_device_async_64_h): New subroutine. (acc_update_device_async_array_h): New subroutine. (acc_update_self_async_32_h): New subroutine. (acc_update_self_async_64_h): New subroutine. (acc_update_self_async_array_h): New subroutine. * openacc.f90 (acc_copyin_async_32_h): New subroutine. (acc_copyin_async_64_h): New subroutine. (acc_copyin_async_array_h): New subroutine. (acc_create_async_32_h): New subroutine. (acc_create_async_64_h): New subroutine. (acc_create_async_array_h): New subroutine. (acc_copyout_async_32_h): New subroutine. (acc_copyout_async_64_h): New subroutine. (acc_copyout_async_array_h): New subroutine. (acc_delete_async_32_h): New subroutine. (acc_delete_async_64_h): New subroutine. (acc_delete_async_array_h): New subroutine. (acc_update_device_async_32_h): New subroutine. (acc_update_device_async_64_h): New subroutine. (acc_update_device_async_array_h): New subroutine. (acc_update_self_async_32_h): New subroutine. (acc_update_self_async_64_h): New subroutine. (acc_update_self_async_array_h): New subroutine. * libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*, acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*, acc_delete_finalize_async*, acc_memcpy_from_device_async*, acc_memcpy_to_device_async*, acc_update_device_async*, and acc_update_self_async* entries. * testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test. * testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test. * testsuite/libgomp.oacc-fortran/lib-16.f90: New test. 2018-10-31 Joseph Myers PR bootstrap/82856 * Makefile.am: Include multilib.am (AUTOMAKE_OPTIONS): Add info-in-builddir. (CLEANFILES): Remove libgomp.info. * configure.ac: Remove AC_PREREQ. * testsuite/Makefile.am (RUNTEST): Remove quotes. * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Regenerate. 2018-10-29 Joseph Myers Julian Brown * testsuite/libgomp.oacc-c++/this.C: New. 2018-09-18 Cesar Philippidis * plugin/plugin-nvptx.c (struct cuda_map): New. (struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev, h_tail with (cuda_map *) map. (cuda_map_create): New function. (cuda_map_destroy): New function. (map_init): Update to use a linked list of cuda_map objects. (map_fini): Likewise. (map_pop): Likewise. (map_push): Likewise. Return CUdeviceptr instead of void. (init_streams_for_device): Remove stales references to ptx_stream members. (select_stream_for_async): Likewise. (nvptx_exec): Update call to map_init. 2018-09-09 Cesar Philippidis Julian Brown PR middle-end/86336 * testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL. 2018-08-21 Nicolas Koenig Thomas Koenig PR fortran/25829 * testsuite/libgomp.fortran/async_io_1.f90: New test. * testsuite/libgomp.fortran/async_io_2.f90: New test. * testsuite/libgomp.fortran/async_io_3.f90: New test. * testsuite/libgomp.fortran/async_io_4.f90: New test. * testsuite/libgomp.fortran/async_io_5.f90: New test. * testsuite/libgomp.fortran/async_io_6.f90: New test. * testsuite/libgomp.fortran/async_io_7.f90: New test. 2018-08-13 Cesar Philippidis Tom de Vries PR target/85590 * plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef. (cuOccupancyMaxPotentialBlockSize): Declare. * plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New CUDA_ONE_CALL_MAYBE_NULL. * plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define CUoccupancyB2DSize and declare cuOccupancyMaxPotentialBlockSize. (nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the default num_gangs and num_workers when the driver supports it. 2018-08-08 Tom de Vries * plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using CUDA_ONE_CALL_MAYBE_NULL. * plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare. (cuLinkAddData_v2, cuLinkCreate_v2): Declare. (link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions are not found. 2018-08-08 Tom de Vries * plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL. * plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not present. 2018-08-08 Tom de Vries * plugin/plugin-nvptx.c (CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define. (nvptx_open_device): Use CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR. 2018-08-08 Tom de Vries * plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ... (cuGetErrorString): ... here. Guard with CUDA_VERSION < 6000. 2018-08-07 Tom de Vries * plugin/plugin-nvptx.c (DO_PRAGMA): Define. (struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL. (init_cuda_lib): Add new param to CUDA_ONE_CALL_1. Add arg to corresponding call in CUDA_ONE_CALL. Add def/undef of CUDA_ONE_CALL_MAYBE_NULL. (CUDA_CALL_EXISTS): Define. 2018-08-07 Tom de Vries * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put CUDA_ONE_CALL defines right before the cuda-lib.def include, and the corresponding undefs right after. 2018-08-04 Tom de Vries * plugin/configfrag.ac: For --without-cuda-driver, set CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB to no. Handle CUDA_DRIVER_INCLUDE == no and CUDA_DRIVER_LIB == no. * configure: Regenerate. 2018-08-02 Tom de Vries PR target/86660 * testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions. * testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same. * testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C: Same. * testsuite/libgomp.oacc-c++/routine-1-template.C: Same. * testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same. * testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same. 2018-08-01 Cesar Philippidis Thomas Schwinge * config/nvptx/oacc-parallel.c: Truncate. 2018-08-01 Cesar Philippidis James Norris * plugin/plugin-nvptx.c (struct map): Removed. (map_init, map_pop): Remove use of struct map. (map_push): Likewise and change argument list. * testsuite/libgomp.oacc-c-c++-common/mapping-1.c: New 2018-08-01 Tom de Vries * plugin/cuda-lib.def: New file. Factor out of ... * plugin/plugin-nvptx.c (CUDA_CALLS): ... here. (struct cuda_lib_s, init_cuda_lib): Include cuda-lib.def instead of using CUDA_CALLS. 2018-07-31 Andre Vieira Revert 'AsyncI/O patch committed'. 2018-07-25 Nicolas Koenig Thomas Koenig PR fortran/25829 * testsuite/libgomp.fortran/async_io_1.f90: New test. * testsuite/libgomp.fortran/async_io_2.f90: New test. * testsuite/libgomp.fortran/async_io_3.f90: New test. * testsuite/libgomp.fortran/async_io_4.f90: New test. * testsuite/libgomp.fortran/async_io_5.f90: New test. * testsuite/libgomp.fortran/async_io_6.f90: New test. * testsuite/libgomp.fortran/async_io_7.f90: New test. 2018-07-30 Tom de Vries * plugin/plugin-nvptx.c (MIN, MAX): Redefine. (nvptx_exec): Ensure worker and vector default dims don't exceed targ_fn->max_threads_per_block. 2018-07-30 Tom de Vries * plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field. (nvptx_open_device): Init default_dims for device. (nvptx_exec): Use default_dims from device. 2018-07-26 Jakub Jelinek PR testsuite/86660 * testsuite/libgomp.c++/for-15.C (results): Include it in omp declare target region. (main): Use map (always, tofrom: results) instead of map (tofrom: results). PR middle-end/86660 * testsuite/libgomp.c/pr86660.c: New test. 2018-07-26 Cesar Philippidis Tom de Vries * plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have sufficient resources to launch a kernel, and give a hint on how to fix it. 2018-07-26 Cesar Philippidis Tom de Vries * plugin/plugin-nvptx.c (struct ptx_device): Add warp_size, max_threads_per_block and max_threads_per_multiprocessor fields. (nvptx_open_device): Initialize new fields. (nvptx_exec): Use num_sms, and new fields. 2018-07-26 Tom de Vries * testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls to correct locations. Remove xfail. 2018-07-26 Tom de Vries * testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with acc_wait. Move acc_async_test calls to correct locations. Remove xfail. 2018-07-25 Nicolas Koenig Thomas Koenig PR fortran/25829 * testsuite/libgomp.fortran/async_io_1.f90: New test. * testsuite/libgomp.fortran/async_io_2.f90: New test. * testsuite/libgomp.fortran/async_io_3.f90: New test. * testsuite/libgomp.fortran/async_io_4.f90: New test. * testsuite/libgomp.fortran/async_io_5.f90: New test. * testsuite/libgomp.fortran/async_io_6.f90: New test. * testsuite/libgomp.fortran/async_io_7.f90: New test. 2018-07-17 Jakub Jelinek PR middle-end/86542 * testsuite/libgomp.c++/pr86542.C: New test. PR middle-end/86539 * testsuite/libgomp.c++/pr86539.C: New test. 2018-07-11 Jakub Jelinek PR c++/86443 * testsuite/libgomp.c++/for-15.C (a): Remove unused variable. (results): Make sure the variable is not inside declare target region. (qux): Remove unused function. 2018-07-10 Jakub Jelinek PR c++/86443 * testsuite/libgomp.c++/for-15.C: New test. 2018-06-26 Jakub Jelinek PR c++/86291 * testsuite/libgomp.c++/pr86291.C: New test. 2018-06-24 Gerald Pfeifer * libgomp.texi (Top): Move www.openmp.org to https. (Enabling OpenMP): Ditto. (omp_get_active_level): Ditto. (omp_get_ancestor_thread_num): Ditto. (omp_get_cancellation): Ditto. (omp_get_default_device): Ditto. (omp_get_dynamic): Ditto. (omp_get_level): Ditto. (omp_get_max_active_levels): Ditto. (omp_get_max_task_priority): Ditto. (omp_get_max_threads): Ditto. (omp_get_nested): Ditto. (omp_get_num_devices): Ditto. (omp_get_num_procs): Ditto. (omp_get_num_teams): Ditto. (omp_get_num_threads): Ditto. (omp_get_proc_bind): Ditto. (omp_get_schedule): Ditto. (omp_get_team_num): Ditto. (omp_get_team_size): Ditto. (omp_get_thread_limit): Ditto. (omp_get_thread_num): Ditto. (omp_in_parallel): Ditto. (omp_in_final): Ditto. (omp_is_initial_device): Ditto. (omp_set_default_device): Ditto. (omp_set_dynamic): Ditto. (omp_set_max_active_levels): Ditto. (omp_set_nested): Ditto. (omp_set_num_threads): Ditto. (omp_set_schedule): Ditto. (omp_init_lock): Ditto. (omp_set_lock): Ditto. (omp_test_lock): Ditto. (omp_unset_lock): Ditto. (omp_destroy_lock): Ditto. (omp_init_nest_lock): Ditto. (omp_set_nest_lock): Ditto. (omp_test_nest_lock): Ditto. (omp_unset_nest_lock): Ditto. (omp_destroy_nest_lock): Ditto. (omp_get_wtick): Ditto. (omp_get_wtime): Ditto. (OMP_CANCELLATION): Ditto. (OMP_DISPLAY_ENV): Ditto. (OMP_DEFAULT_DEVICE): Ditto. (OMP_DYNAMIC): Ditto. (OMP_MAX_ACTIVE_LEVELS): Ditto. (OMP_MAX_TASK_PRIORITY): Ditto. (OMP_NESTED): Ditto. (OMP_NUM_THREADS): Ditto. (OMP_PROC_BIND): Ditto. (OMP_PLACES): Ditto. (OMP_STACKSIZE): Ditto. (OMP_SCHEDULE): Ditto. (OMP_THREAD_LIMIT): Ditto. (OMP_WAIT_POLICY): Ditto. 2018-06-22 Cesar Philippidis James Norris Julian Brown Thomas Schwinge Tom de Vries * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2". * testsuite/libgomp.oacc-c-c++-common/data-2.c: Update. * testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise. * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise. * testsuite/libgomp.oacc-c++/non-scalar-data.C: New file. * testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise. * testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise. * testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise. * testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise. * testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise. * testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-independent.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise. * testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise. * testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise. * testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise. * testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise. * testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise. 2018-06-20 Chung-Lin Tang Thomas Schwinge Cesar Philippidis * libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member. (gomp_acc_remove_pointer): Update declaration. (gomp_acc_declare_allocate): Declare. (gomp_remove_var): Declare. * libgomp.map (OACC_2.5): Define. * oacc-mem.c (acc_map_data): Update refcount. (acc_unmap_data): Likewise. (present_create_copy): Likewise. (acc_create): Add FLAG_PRESENT when calling present_create_copy. (acc_copyin): Likewise. (FLAG_FINALIZE): Define. (delete_copyout): Update dynamic refcounts, add support for FINALIZE. (acc_delete_finalize): New function. (acc_delete_finalize_async): New function. (acc_copyout_finalize): New function. (acc_copyout_finalize_async): New function. (gomp_acc_insert_pointer): Update refcounts. (gomp_acc_remove_pointer): Return if data is not present on the accelerator. * oacc-parallel.c (find_pset): Rename to find_pointer. (find_pointer): Add support for GOMP_MAP_POINTER. (handle_ftn_pointers): New function. (GOACC_parallel_keyed): Update refcounts of variables. (GOACC_enter_exit_data): Add support for finalized data mappings. Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling of fortran arrays. (GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}. (GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support for GOMP_MAP_FORCE_FROM. * openacc.f90 (module openacc_internal): Add acc_copyout_finalize_{32_h,64_h,array_h,_l}, and acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for acc_copyout_finalize and acc_delete_finalize. (acc_copyout_finalize_32_h): New subroutine. (acc_copyout_finalize_64_h): New subroutine. (acc_copyout_finalize_array_h): New subroutine. (acc_delete_finalize_32_h): New subroutine. (acc_delete_finalize_64_h): New subroutine. (acc_delete_finalize_array_h): New subroutine. * openacc.h (acc_copyout_finalize): Declare. (acc_copyout_finalize_async): Declare. (acc_delete_finalize): Declare. (acc_delete_finalize_async): Declare. * openacc_lib.h (acc_copyout_finalize): New interface. (acc_delete_finalize): New interface. * target.c (gomp_map_vars): Update dynamic_refcount. (gomp_remove_var): New function. (gomp_unmap_vars): Use it. (gomp_unload_image_from_device): Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test case to utilize OpenACC 2.5 data clause semantics. * 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-16.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise. * testsuite/libgomp.oacc-fortran/data-5.f90: New test. * testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to utilize OpenACC 2.5 data clause semantics. * 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-32-1.f: Likewise. * testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise. 2018-05-21 Janus Weil PR fortran/85841 PR testsuite/85865 * testsuite/libgomp.fortran/collapse2.f90: Add option "-std=legacy". * testsuite/libgomp.fortran/omp_atomic2.f90: Ditto. * testsuite/libgomp.fortran/omp_parse1.f90: Ditto. * testsuite/libgomp.fortran/omp_parse3.f90: Ditto. * testsuite/libgomp.fortran/task2.f90: Ditto. * testsuite/libgomp.fortran/vla1.f90: Ditto. * testsuite/libgomp.fortran/vla2.f90: Ditto. * testsuite/libgomp.fortran/vla3.f90: Ditto. * testsuite/libgomp.fortran/vla4.f90: Ditto. * testsuite/libgomp.fortran/vla5.f90: Ditto. * testsuite/libgomp.fortran/vla6.f90: Ditto. * testsuite/libgomp.fortran/vla8.f90: Ditto. * testsuite/libgomp.oacc-fortran/collapse-2.f90: Ditto. * testsuite/libgomp.oacc-fortran/nested-function-1.f90: Ditto. 2018-05-18 Cesar Philippidis PR c++/85782 * testsuite/libgomp.oacc-c-c++-common/pr85782.c: New test. 2018-05-09 Tom de Vries PR libgomp/82901 * oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument to GOACC_enter_exit_data. 2018-05-09 Tom de Vries PR libgomp/83792 * oacc-int.h (async_valid_stream_id_p, async_valid_p) (async_synchronous_p): New function. * oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use async_valid_p. * oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use async_valid_stream_id_p. * oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p. * oacc-parallel.c (GOACC_parallel_keyed): Same. 2018-05-07 Tom de Vries PR testsuite/85677 * testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level include directory in ALWAYS_CFLAGS out of $blddir != "" condition. 2018-05-03 Tom de Vries PR testsuite/85106 * testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to extra_tool_flags if it contains an -foffload=-fdump-* flag. * testsuite/lib/libgomp.exp: Include scanoffloadtree.exp. * testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump. 2018-05-02 Tom de Vries PR libgomp/85411 * plugin/plugin-nvptx.c (nvptx_exec): Move parsing of GOMP_OPENACC_DIM ... * env.c (parse_gomp_openacc_dim): ... here. New function. (initialize_env): Call parse_gomp_openacc_dim. (goacc_default_dims): Define. * libgomp.h (goacc_default_dims): Declare. * oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function. * oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare. * libgomp.map: New version "GOMP_PLUGIN_1.2". Add GOMP_PLUGIN_acc_default_dim. * testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test. * testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test. 2018-05-02 Tom de Vries PR testsuite/83791 * testsuite/libgomp.c++/udr-9.C: Update. * testsuite/libgomp.c++/atomic-16.C: Remove. * testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove. * testsuite/libgomp.c++/loop-13.C: Remove. * testsuite/libgomp.c++/loop-14.C: Remove. * testsuite/libgomp.c++/loop-15.C: Remove. * testsuite/libgomp.c++/monotonic-1.C: Remove. * testsuite/libgomp.c++/monotonic-2.C: Remove. * testsuite/libgomp.c++/nonmonotonic-1.C: Remove. * testsuite/libgomp.c++/nonmonotonic-2.C: Remove. * testsuite/libgomp.c++/ordered-1.C: Remove. * testsuite/libgomp.c++/pr45784.C: Remove. * testsuite/libgomp.c++/pr64824.C: Remove. * testsuite/libgomp.c++/pr64868.C: Remove. * testsuite/libgomp.c++/pr66199-1.C: Remove. * testsuite/libgomp.c++/pr66199-2.C: Remove. * testsuite/libgomp.c++/pr66199-3.C: Remove. * testsuite/libgomp.c++/pr66199-4.C: Remove. * testsuite/libgomp.c++/pr66199-5.C: Remove. * testsuite/libgomp.c++/pr66199-6.C: Remove. * testsuite/libgomp.c++/pr66199-7.C: Remove. * testsuite/libgomp.c++/pr66199-8.C: Remove. * testsuite/libgomp.c++/pr66199-9.C: Remove. * testsuite/libgomp.c++/pr69389.C: Remove. * testsuite/libgomp.c++/simd10.C: Remove. * testsuite/libgomp.c++/simd11.C: Remove. * testsuite/libgomp.c++/simd12.C: Remove. * testsuite/libgomp.c++/simd13.C: Remove. * testsuite/libgomp.c++/target-1.C: Remove. * testsuite/libgomp.c++/target-3.C: Remove. * testsuite/libgomp.c++/target-4.C: Remove. * testsuite/libgomp.c++/target-5.C: Remove. * testsuite/libgomp.c++/taskgroup-1.C: Remove. * testsuite/libgomp.c++/taskloop-1.C: Remove. * testsuite/libgomp.c++/taskloop-2.C: Remove. * testsuite/libgomp.c++/taskloop-3.C: Remove. * testsuite/libgomp.c++/taskloop-4.C: Remove. * testsuite/libgomp.c++/udr-9.C: Remove. * testsuite/libgomp.c++/for-10.C: Remove. * testsuite/libgomp.c++/for-11.C: Remove. * testsuite/libgomp.c++/for-12.C: Remove. * testsuite/libgomp.c++/for-13.C: Remove. * testsuite/libgomp.c++/for-14.C: Remove. * testsuite/libgomp.c++/for-9.C: Remove. * testsuite/libgomp.c/atomic-18.c: Move ... * testsuite/libgomp.c-c++-common/atomic-18.c: ... here. * testsuite/libgomp.c/cancel-taskgroup-2.c: Move ... * testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here. * testsuite/libgomp.c/loop-13.c: Move ... * testsuite/libgomp.c-c++-common/loop-13.c: ... here. * testsuite/libgomp.c/loop-14.c: Move ... * testsuite/libgomp.c-c++-common/loop-14.c: ... here. * testsuite/libgomp.c/loop-15.c: Remove. * testsuite/libgomp.c-c++-common/loop-15.c: New test. * testsuite/libgomp.c/monotonic-1.c: Move ... * testsuite/libgomp.c-c++-common/monotonic-1.c: ... here. * testsuite/libgomp.c/monotonic-2.c: Move ... * testsuite/libgomp.c-c++-common/monotonic-2.c: ... here. * testsuite/libgomp.c/nonmonotonic-1.c: Move ... * testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here. * testsuite/libgomp.c/nonmonotonic-2.c: Move ... * testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here. * testsuite/libgomp.c/ordered-4.c: Move ... * testsuite/libgomp.c-c++-common/ordered-4.c: ... here. * testsuite/libgomp.c/pr45784.c: Move ... * testsuite/libgomp.c-c++-common/pr45784.c: ... here. * testsuite/libgomp.c/pr64824.c: Move ... * testsuite/libgomp.c-c++-common/pr64824.c: ... here. * testsuite/libgomp.c/pr64868.c: Move ... * testsuite/libgomp.c-c++-common/pr64868.c: ... here. * testsuite/libgomp.c/pr66199-1.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-1.c: ... here. * testsuite/libgomp.c/pr66199-2.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-2.c: ... here. * testsuite/libgomp.c/pr66199-3.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-3.c: ... here. * testsuite/libgomp.c/pr66199-4.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-4.c: ... here. * testsuite/libgomp.c/pr66199-5.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-5.c: ... here. * testsuite/libgomp.c/pr66199-6.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-6.c: ... here. * testsuite/libgomp.c/pr66199-7.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-7.c: ... here. * testsuite/libgomp.c/pr66199-8.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-8.c: ... here. * testsuite/libgomp.c/pr66199-9.c: Move ... * testsuite/libgomp.c-c++-common/pr66199-9.c: ... here. * testsuite/libgomp.c/pr69389.c: Move ... * testsuite/libgomp.c-c++-common/pr69389.c: ... here. * testsuite/libgomp.c/simd-14.c: Move ... * testsuite/libgomp.c-c++-common/simd-14.c: ... here. * testsuite/libgomp.c/simd-15.c: Move ... * testsuite/libgomp.c-c++-common/simd-15.c: ... here. * testsuite/libgomp.c/simd-16.c: Move ... * testsuite/libgomp.c-c++-common/simd-16.c: ... here. * testsuite/libgomp.c/simd-17.c: Move ... * testsuite/libgomp.c-c++-common/simd-17.c: ... here. * testsuite/libgomp.c/target-1.c: Move ... * testsuite/libgomp.c-c++-common/target-1.c: ... here. * testsuite/libgomp.c/target-10.c: Move ... * testsuite/libgomp.c-c++-common/target-10.c: ... here. * testsuite/libgomp.c/target-13.c: Move ... * testsuite/libgomp.c-c++-common/target-13.c: ... here. * testsuite/libgomp.c/target-2.c: Move ... * testsuite/libgomp.c-c++-common/target-2.c: ... here. * testsuite/libgomp.c/taskgroup-1.c: Move ... * testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here. * testsuite/libgomp.c/taskloop-1.c: Move ... * testsuite/libgomp.c-c++-common/taskloop-1.c: ... here. * testsuite/libgomp.c/taskloop-2.c: Move ... * testsuite/libgomp.c-c++-common/taskloop-2.c: ... here. * testsuite/libgomp.c/taskloop-3.c: Move ... * testsuite/libgomp.c-c++-common/taskloop-3.c: ... here. * testsuite/libgomp.c/taskloop-4.c: Move ... * testsuite/libgomp.c-c++-common/taskloop-4.c: ... here. * testsuite/libgomp.c/udr-1.c: Move ... * testsuite/libgomp.c-c++-common/udr-1.c: ... here. * testsuite/libgomp.c/for-1.c: Move ... * testsuite/libgomp.c-c++-common/for-1.c: ... here. * testsuite/libgomp.c/for-1.h: Move ... * testsuite/libgomp.c-c++-common/for-1.h: ... here. * testsuite/libgomp.c/for-2.c: Move ... * testsuite/libgomp.c-c++-common/for-2.c: ... here. * testsuite/libgomp.c/for-2.h: Move ... * testsuite/libgomp.c-c++-common/for-2.h: ... here. * testsuite/libgomp.c/for-3.c: Move ... * testsuite/libgomp.c-c++-common/for-3.c: ... here. * testsuite/libgomp.c/for-4.c: Move ... * testsuite/libgomp.c-c++-common/for-4.c: ... here. * testsuite/libgomp.c/for-5.c: Move ... * testsuite/libgomp.c-c++-common/for-5.c: ... here. * testsuite/libgomp.c/for-6.c: Move ... * testsuite/libgomp.c-c++-common/for-6.c: ... here. 2018-05-02 Tom de Vries PR libgomp/82428 * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use __builtin_goacc_parlevel_{id,size}. * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same. 2018-05-02 Tom de Vries PR testsuite/85106 * testsuite/lib/libgomp.exp: Include scanltranstree.exp. 2018-05-02 Tom de Vries PR testsuite/85106 * testsuite/lib/libgomp.exp: Include scanwpaipa.exp. 2018-04-29 Julian Brown Tom de Vries PR testsuite/85527 * testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow arbitrary order for iterations of atomic subtract check. 2018-04-28 Tom de Vries PR testsuite/85527 * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store atomic capture results obtained in parallel loop to an array, instead of to a scalar. 2018-04-26 Tom de Vries PR libgomp/84020 * plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL. * plugin/plugin-nvptx.c (_GNU_SOURCE): Define. (process_GOMP_NVPTX_JIT): New function. (link_ptx): Use process_GOMP_NVPTX_JIT. 2018-04-26 Richard Biener Tom de Vries PR lto/85422 * testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test. 2018-04-26 Tom de Vries PR target/85519 * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce recursion depth from 25 to 23. * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same. 2018-04-24 H.J. Lu * configure: Regenerated. 2018-04-20 Nathan Sidwell Tom de Vries PR target/85445 * testsuite/libgomp.oacc-c++/ref-1.C: New. 2018-04-19 Thomas Schwinge PR libgomp/85463 * testsuite/libgomp.oacc-fortran/error_stop-1.f: New file. * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise. * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise. * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise. PR libfortran/85166 * testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call abort". * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise. 2018-04-19 Jakub Jelinek * configure: Regenerated. 2018-04-18 David Malcolm PR jit/85384 * configure: Regenerate. 2018-04-16 Cesar Philippidis Tom de Vries PR middle-end/84955 * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test. * testsuite/libgomp.oacc-fortran/pr84955.f90: New test. 2018-04-12 Thomas Koenig PR fortran/83064 PR testsuite/85346 * testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified test from gfortran.dg to here. 2018-04-12 Cesar Philippidis * testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346. * testsuite/libgomp.oacc-fortran/pr84955.f90: Likewise. 2018-04-12 Cesar Philippidis PR middle-end/84955 * testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test. * testsuite/libgomp.oacc-fortran/pr84955.f90: New test. 2018-04-05 Tom de Vries PR target/85204 * testsuite/libgomp.oacc-c-c++-common/broadcast-1.c: New test. 2018-03-26 Tom de Vries PR tree-optimization/85063 * testsuite/libgomp.c/switch-conversion-2.c: New test. * testsuite/libgomp.c/switch-conversion.c: New test. * testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test. 2018-03-25 Thomas Koenig PR fortran/84381 * testsuite/libgomp.fortran/aligned1.f03: Replace non-standard call abort by STOP n. * testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise. * testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise. * testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise. * testsuite/libgomp.fortran/allocatable1.f90: Likewise. * testsuite/libgomp.fortran/allocatable10.f90: Likewise. * testsuite/libgomp.fortran/allocatable11.f90: Likewise. * testsuite/libgomp.fortran/allocatable12.f90: Likewise. * testsuite/libgomp.fortran/allocatable2.f90: Likewise. * testsuite/libgomp.fortran/allocatable3.f90: Likewise. * testsuite/libgomp.fortran/allocatable4.f90: Likewise. * testsuite/libgomp.fortran/allocatable5.f90: Likewise. * testsuite/libgomp.fortran/allocatable6.f90: Likewise. * testsuite/libgomp.fortran/allocatable7.f90: Likewise. * testsuite/libgomp.fortran/allocatable8.f90: Likewise. * testsuite/libgomp.fortran/allocatable9.f90: Likewise. * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise. * testsuite/libgomp.fortran/associate1.f90: Likewise. * testsuite/libgomp.fortran/associate2.f90: Likewise. * testsuite/libgomp.fortran/associate3.f90: Likewise. * testsuite/libgomp.fortran/cancel-do-1.f90: Likewise. * testsuite/libgomp.fortran/cancel-do-2.f90: Likewise. * testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise. * testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise. * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise. * testsuite/libgomp.fortran/character1.f90: Likewise. * testsuite/libgomp.fortran/character2.f90: Likewise. * testsuite/libgomp.fortran/collapse1.f90: Likewise. * testsuite/libgomp.fortran/collapse2.f90: Likewise. * testsuite/libgomp.fortran/collapse3.f90: Likewise. * testsuite/libgomp.fortran/collapse4.f90: Likewise. * testsuite/libgomp.fortran/crayptr1.f90: Likewise. * testsuite/libgomp.fortran/crayptr2.f90: Likewise. * testsuite/libgomp.fortran/crayptr3.f90: Likewise. * testsuite/libgomp.fortran/declare-simd-1.f90: Likewise. * testsuite/libgomp.fortran/declare-simd-3.f90: Likewise. * testsuite/libgomp.fortran/declare-target-2.f90: Likewise. * testsuite/libgomp.fortran/depend-1.f90: Likewise. * testsuite/libgomp.fortran/depend-2.f90: Likewise. * testsuite/libgomp.fortran/depend-3.f90: Likewise. * testsuite/libgomp.fortran/do1.f90: Likewise. * testsuite/libgomp.fortran/do2.f90: Likewise. * testsuite/libgomp.fortran/doacross1.f90: Likewise. * testsuite/libgomp.fortran/doacross2.f90: Likewise. * testsuite/libgomp.fortran/doacross3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise. * testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise. * testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise. * testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise. * testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise. * testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise. * testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise. * testsuite/libgomp.fortran/lastprivate1.f90: Likewise. * testsuite/libgomp.fortran/lastprivate2.f90: Likewise. * testsuite/libgomp.fortran/lib1.f90: Likewise. * testsuite/libgomp.fortran/lib2.f: Likewise. * testsuite/libgomp.fortran/lib3.f: Likewise. * testsuite/libgomp.fortran/lib4.f90: Likewise. * testsuite/libgomp.fortran/lock-1.f90: Likewise. * testsuite/libgomp.fortran/lock-2.f90: Likewise. * testsuite/libgomp.fortran/nested1.f90: Likewise. * testsuite/libgomp.fortran/nestedfn1.f90: Likewise. * testsuite/libgomp.fortran/nestedfn2.f90: Likewise. * testsuite/libgomp.fortran/nestedfn3.f90: Likewise. * testsuite/libgomp.fortran/nestedfn4.f90: Likewise. * testsuite/libgomp.fortran/nestedfn5.f90: Likewise. * testsuite/libgomp.fortran/omp_atomic1.f90: Likewise. * testsuite/libgomp.fortran/omp_atomic2.f90: Likewise. * testsuite/libgomp.fortran/omp_atomic3.f90: Likewise. * testsuite/libgomp.fortran/omp_atomic4.f90: Likewise. * testsuite/libgomp.fortran/omp_atomic5.f90: Likewise. * testsuite/libgomp.fortran/omp_cond1.f: Likewise. * testsuite/libgomp.fortran/omp_cond2.f: Likewise. * testsuite/libgomp.fortran/omp_cond3.F90: Likewise. * testsuite/libgomp.fortran/omp_cond4.F90: Likewise. * testsuite/libgomp.fortran/omp_parse1.f90: Likewise. * testsuite/libgomp.fortran/omp_parse2.f90: Likewise. * testsuite/libgomp.fortran/omp_parse3.f90: Likewise. * testsuite/libgomp.fortran/omp_parse4.f90: Likewise. * testsuite/libgomp.fortran/openmp_version-1.f: Likewise. * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise. * testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise. * testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise. * testsuite/libgomp.fortran/pointer1.f90: Likewise. * testsuite/libgomp.fortran/pointer2.f90: Likewise. * testsuite/libgomp.fortran/pr25162.f: Likewise. * testsuite/libgomp.fortran/pr25219.f90: Likewise. * testsuite/libgomp.fortran/pr27395-1.f90: Likewise. * testsuite/libgomp.fortran/pr27395-2.f90: Likewise. * testsuite/libgomp.fortran/pr27416-1.f90: Likewise. * testsuite/libgomp.fortran/pr27916-1.f90: Likewise. * testsuite/libgomp.fortran/pr27916-2.f90: Likewise. * testsuite/libgomp.fortran/pr28390.f: Likewise. * testsuite/libgomp.fortran/pr29629.f90: Likewise. * testsuite/libgomp.fortran/pr32550.f90: Likewise. * testsuite/libgomp.fortran/pr33880.f90: Likewise. * testsuite/libgomp.fortran/pr34020.f90: Likewise. * testsuite/libgomp.fortran/pr35130.f90: Likewise. * testsuite/libgomp.fortran/pr42162.f90: Likewise. * testsuite/libgomp.fortran/pr46753.f90: Likewise. * testsuite/libgomp.fortran/pr48894.f90: Likewise. * testsuite/libgomp.fortran/pr49792-1.f90: Likewise. * testsuite/libgomp.fortran/pr49792-2.f90: Likewise. * testsuite/libgomp.fortran/pr63938-1.f90: Likewise. * testsuite/libgomp.fortran/pr63938-2.f90: Likewise. * testsuite/libgomp.fortran/pr65597.f90: Likewise. * testsuite/libgomp.fortran/pr66199-1.f90: Likewise. * testsuite/libgomp.fortran/pr71014.f90: Likewise. * testsuite/libgomp.fortran/pr81304.f90: Likewise. * testsuite/libgomp.fortran/pr81841.f90: Likewise. * testsuite/libgomp.fortran/pr84418-1.f90: Likewise. * testsuite/libgomp.fortran/pr84418-2.f90: Likewise. * testsuite/libgomp.fortran/procptr1.f90: Likewise. * testsuite/libgomp.fortran/recursion1.f90: Likewise. * testsuite/libgomp.fortran/reduction1.f90: Likewise. * testsuite/libgomp.fortran/reduction2.f90: Likewise. * testsuite/libgomp.fortran/reduction3.f90: Likewise. * testsuite/libgomp.fortran/reduction4.f90: Likewise. * testsuite/libgomp.fortran/reduction5.f90: Likewise. * testsuite/libgomp.fortran/reduction6.f90: Likewise. * testsuite/libgomp.fortran/reference1.f90: Likewise. * testsuite/libgomp.fortran/reference2.f90: Likewise. * testsuite/libgomp.fortran/retval1.f90: Likewise. * testsuite/libgomp.fortran/retval2.f90: Likewise. * testsuite/libgomp.fortran/sharing1.f90: Likewise. * testsuite/libgomp.fortran/sharing2.f90: Likewise. * testsuite/libgomp.fortran/simd1.f90: Likewise. * testsuite/libgomp.fortran/simd2.f90: Likewise. * testsuite/libgomp.fortran/simd3.f90: Likewise. * testsuite/libgomp.fortran/simd4.f90: Likewise. * testsuite/libgomp.fortran/simd5.f90: Likewise. * testsuite/libgomp.fortran/simd6.f90: Likewise. * testsuite/libgomp.fortran/simd7.f90: Likewise. * testsuite/libgomp.fortran/stack.f90: Likewise. * testsuite/libgomp.fortran/strassen.f90: Likewise. * testsuite/libgomp.fortran/tabs1.f90: Likewise. * testsuite/libgomp.fortran/tabs2.f: Likewise. * testsuite/libgomp.fortran/target1.f90: Likewise. * testsuite/libgomp.fortran/target2.f90: Likewise. * testsuite/libgomp.fortran/target3.f90: Likewise. * testsuite/libgomp.fortran/target4.f90: Likewise. * testsuite/libgomp.fortran/target5.f90: Likewise. * testsuite/libgomp.fortran/target6.f90: Likewise. * testsuite/libgomp.fortran/target7.f90: Likewise. * testsuite/libgomp.fortran/target8.f90: Likewise. * testsuite/libgomp.fortran/task1.f90: Likewise. * testsuite/libgomp.fortran/task2.f90: Likewise. * testsuite/libgomp.fortran/task3.f90: Likewise. * testsuite/libgomp.fortran/task4.f90: Likewise. * testsuite/libgomp.fortran/taskgroup1.f90: Likewise. * testsuite/libgomp.fortran/taskloop1.f90: Likewise. * testsuite/libgomp.fortran/taskloop2.f90: Likewise. * testsuite/libgomp.fortran/taskloop3.f90: Likewise. * testsuite/libgomp.fortran/taskloop4.f90: Likewise. * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. * testsuite/libgomp.fortran/threadprivate2.f90: Likewise. * testsuite/libgomp.fortran/threadprivate3.f90: Likewise. * testsuite/libgomp.fortran/threadprivate4.f90: Likewise. * testsuite/libgomp.fortran/udr1.f90: Likewise. * testsuite/libgomp.fortran/udr10.f90: Likewise. * testsuite/libgomp.fortran/udr11.f90: Likewise. * testsuite/libgomp.fortran/udr12.f90: Likewise. * testsuite/libgomp.fortran/udr13.f90: Likewise. * testsuite/libgomp.fortran/udr14.f90: Likewise. * testsuite/libgomp.fortran/udr15.f90: Likewise. * testsuite/libgomp.fortran/udr2.f90: Likewise. * testsuite/libgomp.fortran/udr3.f90: Likewise. * testsuite/libgomp.fortran/udr4.f90: Likewise. * testsuite/libgomp.fortran/udr5.f90: Likewise. * testsuite/libgomp.fortran/udr6.f90: Likewise. * testsuite/libgomp.fortran/udr7.f90: Likewise. * testsuite/libgomp.fortran/udr8.f90: Likewise. * testsuite/libgomp.fortran/udr9.f90: Likewise. * testsuite/libgomp.fortran/vla1.f90: Likewise. * testsuite/libgomp.fortran/vla2.f90: Likewise. * testsuite/libgomp.fortran/vla3.f90: Likewise. * testsuite/libgomp.fortran/vla4.f90: Likewise. * testsuite/libgomp.fortran/vla5.f90: Likewise. * testsuite/libgomp.fortran/vla6.f90: Likewise. * testsuite/libgomp.fortran/vla7.f90: Likewise. * testsuite/libgomp.fortran/vla8.f90: Likewise. * testsuite/libgomp.fortran/workshare1.f90: Likewise. * testsuite/libgomp.fortran/workshare2.f90: 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/atomic_capture-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/c2.pl: Likewise. * testsuite/libgomp.oacc-fortran/clauses-1.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/combined-directives-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/combined-reduction.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/declare-1.f90: Likewise. * 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. * 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/host_data-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise. * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise. * 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. * 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-32-1.f: Likewise. * testsuite/libgomp.oacc-fortran/lib-32-2.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/nested-function-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise. * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise. * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise. * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise. * testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise. * testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise. * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise. * testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise. * testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise. * testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise. * testsuite/libgomp.oacc-fortran/private-variables.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/reduction-7.f90: Likewise. * testsuite/libgomp.oacc-fortran/reduction-8.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/routine-5.f90: Likewise. * testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise. * testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise. * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise. * testsuite/libgomp.oacc-fortran/update-1.f90: Likewise. 2018-03-20 Richard Biener * testsuite/libgomp.graphite/force-parallel-4.c: XFAIL one parallelizable loop. 2018-02-19 Igor Tsimbalist PR target/84148 * configure: Regenerate. 2018-02-16 Jakub Jelinek PR fortran/84418 * libgomp.fortran/pr84418-1.f90: New test. * libgomp.fortran/pr84418-2.f90: New test. 2018-02-14 Jakub Jelinek PR fortran/84313 * testsuite/libgomp.fortran/threadprivate4.f90: Add -std=f2003 -fall-intrinsics into dg-additional-options. 2018-02-08 Martin Jambor * testsuite/libgomp.hsa.c/pr82416.c: Make the function with target clonable. 2018-02-08 Martin Jambor * testsuite/libgomp.hsa.c/staticvar.c: New test. 2018-02-07 Rainer Orth * testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort) [__cplusplus]: Declare extern "C". 2018-02-07 Tom de Vries PR libgomp/84217 * testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test. 2018-01-29 Christoph Spiel Jakub Jelinek PR libgomp/84096 * omp.h.in (omp_init_nest_lock_with_hint): Use omp_nest_lock_t instead of omp_lock_t. 2018-01-25 Tom de Vries PR target/84028 * testsuite/libgomp.oacc-fortran/pr84028.f90: New test. 2018-01-24 Tom de Vries PR target/83589 * testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test. 2018-01-24 Tom de Vries PR target/81352 * testsuite/libgomp.oacc-fortran/pr81352.f90: New test. 2018-01-19 Tom de Vries Cesar Philippidis PR target/83920 * testsuite/libgomp.oacc-c-c++-common/pr83920.c: New test. * testsuite/libgomp.oacc-fortran/pr83920.f90: New test. 2018-01-03 Jakub Jelinek Update copyright years. * libgomp.texi: Bump @copying's copyright year. 2017-12-30 Tom de Vries PR libgomp/83046 * testsuite/libgomp.oacc-c-c++-common/pr83046.c: New test. * testsuite/libgomp.c-c++-common/pr83046.c: New test. 2017-12-27 Tom de Vries PR c++/83046 * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c (test_static) (test_nonstatic): Fix return type to workaround PR83046. 2017-12-05 Jakub Jelinek PR testsuite/83281 * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use j suffix instead of i. * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main): Likewise. 2017-12-01 Cesar Philippidis * testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing call to acc_wait (1). 2017-11-24 Jakub Jelinek PR fortran/81304 * testsuite/libgomp.fortran/pr81304.f90: New test. 2017-11-23 Jakub Jelinek PR fortran/81841 * libgomp.fortran/pr81841.f90: New test. 2017-11-22 Jakub Jelinek PR libgomp/83106 * target.c (gomp_target_init): Compute lengths just once and use them in both malloc size and subsequent copying. 2017-11-17 Igor Tsimbalist * configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS. * acinclude.m4: Add cet.m4. * configure: Regenerate. * Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. 2017-11-15 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: New test, copied from asyncwait-1.f90. Rewrite into C. Rewrite from float to int. * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-2.c: New test, copied from asyncwait-2.f90. Rewrite into C. Rewrite from float to int. * testsuite/libgomp.oacc-c-c++-common/f-asyncwait-3.c: New test, copied from asyncwait-3.f90. Rewrite into C. Rewrite from float to int. 2017-11-14 Tom de Vries * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Allow to run for non-nvidia devices. 2017-11-07 Jakub Jelinek PR c++/82835 * testsuite/libgomp.c++/pr82835.C: New test. 2017-11-06 Martin Liska * testsuite/libgomp.c++/loop-2.C: Return a value for functions with non-void return type, or change type to void, or add -Wno-return-type for test. * testsuite/libgomp.c++/loop-4.C: Likewise. * testsuite/libgomp.c++/parallel-1.C: Likewise. * testsuite/libgomp.c++/shared-1.C: Likewise. * testsuite/libgomp.c++/single-1.C: Likewise. * testsuite/libgomp.c++/single-2.C: Likewise. 2017-10-31 Tom de Vries * plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after "do {} while (false)". (init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon after HSA_DEBUG call. 2017-10-28 Jakub Jelinek * target.c (struct gomp_coalesce_buf): New type. (MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define. (gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions. (gomp_copy_host2dev): Add CBUF argument, if copying into the cached ranges, memcpy into buffer instead of copying into device. (gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing): Add CBUF argument, pass it through to other calls. (gomp_map_vars): Aggregate copies from host to device if small enough and with small enough gaps in between into memcpy into a buffer and fewer host to device copies from the buffer. (gomp_update): Adjust gomp_copy_host2dev caller. 2017-10-17 Thomas Schwinge * 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 * 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 PR hsa/82416 * testsuite/libgomp.hsa.c/pr82416.c: New test. 2017-10-07 Tom de Vries * 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 * 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 * 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 * 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 * 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 * testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main): Remove acc_device_nvidia references. 2017-09-16 Tom de Vries PR c/81875 * testsuite/libgomp.c-c++-common/pr81875.c: New test. 2017-09-14 Tom de Vries * 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 PR c++/81314 * testsuite/libgomp.c++/pr81314.C: New test. 2017-09-03 Gerald Pfeifer * 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 PR c/81687 * testsuite/libgomp.c/pr81687-1.c: New test. * testsuite/libgomp.c/pr81687-2.c: New test. 2017-08-07 Jakub Jelinek PR c/69389 * testsuite/libgomp.c/pr69389.c: New test. * testsuite/libgomp.c++/pr69389.C: New test. 2017-08-07 Tom de Vries 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 PR c/45784 * testsuite/libgomp.c/pr45784.c: New test. * testsuite/libgomp.c++/pr45784.C: New test. 2017-07-19 Tom de Vries * testsuite/libgomp.oacc-c/vec.c: New test. 2017-07-03 Tom de Vries * plugin/plugin-hsa.c: Fix secure_getenv.h include. 2017-06-27 Tom de Vries * plugin/plugin-nvptx.c (notify_var): New function. (nvptx_exec): Use notify_var for GOMP_OPENACC_DIM. 2017-06-27 Tom de Vries * 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 PR c++/81130 * testsuite/libgomp.c++/pr81130.C: New test. 2017-06-17 Rainer Orth * 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 * testsuite/libgomp.c/pr39591-2.c: Fix test case. * testsuite/libgomp.c/pr39591-3.c: Likewise. 2017-05-30 Jakub Jelinek 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 * 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 * 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 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 * 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 * testsuite/lib/libgomp.exp: Load scanlang.exp. 2017-04-27 Jakub Jelinek PR bootstrap/80531 * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid bootstrap compare failures. 2017-04-20 Alexander Monakov * testsuite/libgomp.c/target-36.c: New testcase. 2017-04-13 Jakub Jelinek * plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type instead of char. 2017-04-11 Jakub Jelinek PR libgomp/80394 * testsuite/libgomp.c/pr80394.c: New test. 2017-04-04 Jakub Jelinek 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 * env.c (initialize_env): Initialize stacksize to 0. 2017-03-22 Cesar Philippidis PR c++/80029 * testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test. 2017-03-08 Jakub Jelinek PR c/79940 * testsuite/libgomp.c/pr79940.c: New test. 2017-02-15 Rainer Orth * testsuite/libgomp.c/pr48591.c: Enable on all __float128 targets. Add __float128 options. 2017-02-11 John David Anglin * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove hppa*-*-* dg-skip-if directive. 2017-02-09 Jakub Jelinek * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move dg-skip-if directive into a comment. 2017-02-09 Nathan Sidwell Chung-Lin Tang * 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 * 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 * 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 * libgomp-plugin.h: #include . (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 * 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 Martin Jambor * plugin/hsa.h: Moved to top level include. * plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly. 2017-01-21 Jakub Jelinek 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 * plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even for _WIN64. 2017-01-17 Jakub Jelinek * 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 PR libgomp/60670 * Makefile.am: Make fincludedir multilib-aware. * Makefile.in: Regenerate. 2017-01-01 Jakub Jelinek Update copyright years. * libgomp.texi: Bump @copying's copyright year. 2016-12-02 Sebastian Huber * 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 * config/rtems/pool.h (gomp_get_thread_pool): Return proper thread pool in case nthreads == 1. 2016-11-30 Alexander Monakov * 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 * 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 * Makefile.in: Regenerate with automake-1.11.6. * aclocal.m4: Likewise. * configure: Likewise. * testsuite/Makefile.in: Likewise. 2016-11-28 Alexander Monakov * config/nvptx/critical.c: Delete to use generic implementation. 2016-11-28 Jonas Hahnfeld * 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 Jakub Jelinek Dmitry Melnik * 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 . (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 * 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 Martin Jambor * 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 Alexander Monakov * 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 * configure: Regenerate. 2016-11-10 Jakub Jelinek * 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 Nathan Sidwell * 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 * hashtab.h: Use standard GPLv3 with runtime exception boilerplate. 2016-10-27 Aldy Hernandez * oacc-init.c (goacc_new_thread): Use sizeof of the appropriate size when allocating new thread. 2016-09-14 Marek Polacek * testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated. 2016-08-19 Jakub Jelinek PR fortran/71014 * testsuite/libgomp.fortran/pr71014.f90: New test. 2016-08-18 Chung-Lin Tang 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 PR fortran/70598 * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test. 2016-08-08 Jakub Jelinek PR c++/58706 * testsuite/libgomp.c++/pr58706.C: New test. 2016-08-04 Thomas Schwinge * 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 * testsuite/libgomp.oacc-c-c++-common/crash-1.c: New. 2016-07-15 Cesar Philippidis * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New test. 2016-07-03 H.J. Lu PR middle-end/71734 * testsuite/libgomp.fortran/pr71734-1.f90: New test. * testsuite/libgomp.fortran/pr71734-2.f90: Likewise. 2016-07-01 Jakub Jelinek PR fortran/71717 * testsuite/libgomp.fortran/associate3.f90: New test. 2016-06-17 Jakub Jelinek * testsuite/libgomp.c++/target-21.C: New test. 2016-06-16 Jakub Jelinek * testsuite/libgomp.c++/target-20.C: New test. 2016-06-10 Thomas Schwinge Cesar Philippidis 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 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 * 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 PR c/70688 * testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file. 2016-05-26 Jakub Jelinek * 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 * 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 * 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 * 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 * testsuite/libgomp.hsa.c/switch-sbr-2.c: New test. 2016-05-17 Chung-Lin Tang * 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 * testsuite/libgomp.hsa.c/complex-align-2.c: New test. 2016-05-02 Nathan Sidwell * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust expected partitioning. 2016-04-29 Cesar Philippidis 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 * plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error non-fatal. 2016-04-19 Jakub Jelinek 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 * testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't pass parameter variables to subroutines. 2016-04-14 Cesar Philippidis PR middle-end/70643 * testsuite/libgomp.oacc-fortran/pr70643.f90: New test. 2016-04-13 Cesar Philippidis 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 * 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 * 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 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 James Norris Nathan Sidwell Julian Brown Cesar Philippidis Chung-Lin Tang Tom de Vries * 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 * testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call set-torture-options. 2016-03-24 Thomas Schwinge * 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 * 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 PR c++/70376 * testsuite/libgomp.c++/pr70376.C: New test. 2016-03-23 Tom de Vries * 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 Daichi Fukuoka 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 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 * 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 * testsuite/lib/libgomp.exp (libgomp_init): Potentially append to always_ld_library_path the path to libgcc_s. 2016-03-10 Cesar Philippidis PR testsuite/70009 * testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed. 2016-03-09 Tom de Vries * 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 * 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 * 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 * testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to ALWAYS_CFLAGS. 2016-03-02 Jakub Jelinek PR libgomp/69555 * testsuite/libgomp.c++/pr69555-1.C: New test. * testsuite/libgomp.c++/pr69555-2.C: New test. 2016-02-26 Keith McDaniel Martin Jambor * 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 PR driver/68463 * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove. 2016-02-23 Thomas Schwinge * 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 * testsuite/libgomp.oacc-c-c++-common/vprop.c: New test. 2016-02-19 Jakub Jelinek PR driver/69805 * testsuite/libgomp.c/pr69805.c: New test. 2016-02-16 Tom de Vries PR lto/67709 * testsuite/libgomp.fortran/declare-simd-4.f90: New test. 2016-02-09 Tom de Vries 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 PR lto/69707 * testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test. 2016-02-02 Alexander Monakov * testsuite/libgomp.c/target-31.c: Fix testcase. 2016-02-02 Alexander Monakov * 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 * testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause. 2016-02-02 Thomas Schwinge * 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 * 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 PR tree-optimization/69110 * testsuite/libgomp.c/pr69110.c: New test. 2016-01-25 Richard Biener PR lto/69393 * testsuite/libgomp.c++/pr69393.C: New testcase. 2016-01-22 Ilya Verbin * 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 * task.c (gomp_create_target_task): Set firstprivate_copies to NULL. 2016-01-19 Martin Jambor Martin Liska * 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 * 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 * task.c (GOMP_PLUGIN_target_task_completion): Add missing return. 2016-01-15 Cesar Philippidis * testsuite/libgomp.oacc-fortran/kernels-data.f90: New test. 2016-01-12 James Norris * libgomp.texi: Updates for OpenACC. 2016-01-11 Alexander Monakov * plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET. 2016-01-07 H.J. Lu PR fortran/66680 * testsuite/libgomp.fortran/pr66680.f90: New test. 2016-01-07 Jakub Jelinek PR middle-end/68960 * testsuite/libgomp.c/pr68960.c: New test. 2016-01-06 Nathan Sidwell * 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 Update copyright years. * libgomp.texi: Bump @copying's copyright year. 2015-12-31 Nathan Sidwell * 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 * 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 * 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 PR tree-optimization/68716 * testsuite/libgomp.c/omp-nested-2.c: New test. 2015-12-02 Thomas Schwinge * 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 James Norris * 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 Cesar Philippidis 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 PR tree-optimization/46032 * testsuite/libgomp.c/pr46032.c: New test. 2015-11-27 Jakub Jelinek 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 * configure: Regenerate. 2015-11-26 Jakub Jelinek * testsuite/libgomp.c/target-35.c: New test. 2015-11-22 James Norris Cesar Philippidis * 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 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 * 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 * 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 * config/nvptx/priority_queue.c: New file. 2015-11-14 Jakub Jelinek * libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5 sections. 2015-11-14 Jakub Jelinek Aldy Hernandez Ilya Verbin * 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 * 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 * 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 Joseph Myers * 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 * testsuite/libgomp.oacc-c-c++-common/default-1.c: New. 2015-11-1 Nathan Sidwell * 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 * testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove inadvertent commit. 2015-11-09 Nathan Sidwell * 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 * 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 Ilya Verbin * 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 * 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 * 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 * 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 Thomas Schwinge * 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 * 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 * 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 Cesar Philippidis * 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 * 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 * plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute dimensions. 2015-10-27 Thomas Schwinge PR testsuite/68063 * testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause. 2015-10-27 James Norris * testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file. * testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise. 2015-10-26 Thomas Schwinge * 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 PR testsuite/68063 * testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause. 2015-10-20 Nathan Sidwell * 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 Aleksander Ivanushenko * target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end to 0 when mapnum is 0. 2015-10-14 Sebastian Huber * fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_): Cast to int from int32_t. 2015-10-13 Jakub Jelinek Aldy Hernandez Ilya Verbin * 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 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 * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop initializer. 2015-10-09 David Malcolm * testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp, using load_gcc_lib. 2015-10-02 Thomas Schwinge * 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 Bernd Schmidt * 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 * 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 * oacc-init.c (acc_on_device): Force optimization level. 2015-09-29 Nathan Sidwell * plugin/plugin-nvptx.c (ARRAYSIZE): Delete. (cuda_errlist): Delete. (cuda_error): Reimplement. 2015-09-28 Nathan Sidwell * 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. (struct 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 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 Sebastian Pop * testsuite/libgomp.graphite/bounds.c (int foo): Modified 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 * configure.tgt: Add missing ;; in between nvptx and rtems snippets. 2015-09-03 Sebastian Huber * 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 * 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 * 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 header file. * configure.tgt (*-*-rtems*): Enable RTEMS configuration if supported by Newlib. * configure: Regenerate. 2015-09-03 Sebastian Huber * 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 PR tree-optimization/65637 * testsuite/libgomp.c/autopar-2.c: New test. 2015-08-29 Tom de Vries PR tree-optimization/46193 * testsuite/libgomp.c/pr46193.c: New test. 2015-08-24 Nathan Sidwell 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 PR tree-optimization/65468 * testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test. 2015-08-24 Tom de Vries PR tree-optimization/65468 * testsuite/libgomp.c/static-chunk-size-one.c: New test. 2015-08-24 Joost VandeVondele 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 * 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 Jakub Jelinek * 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 * testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file. 2015-08-03 Nathan Sidwell * 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 * testsuite/libgomp.c/uns-outer-4.c: New test. 2015-07-24 Cesar Philippidis * testsuite/libgomp.c/pr66714.c: New test. 2015-07-22 Maxim Blumenthal 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 * 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 * 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 * 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_unregister): 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 * 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 * 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 * 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 * 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 * 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 * 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 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 * 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 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 * libgomp.h (gomp_thread_pool): Comment last_team field. 2015-07-02 Uros Bizjak * 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 * 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 * 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= 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 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 * 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 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 * configure.ac: Fix check for header . * configure: Regenerate. * config.h.in: Likewise. 2015-06-23 Tom de Vries * 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 * 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 * 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 * testsuite/libgomp.c/pr35625.c: Fix typo. 2015-06-15 Tom de Vries * 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 * 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 * testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test. 2015-06-13 Tom de Vries * 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 merge from gomp4 branch: 2015-05-28 Tom de Vries 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 * 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 * 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 * 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 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 * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int. 2015-05-27 Uros Bizjak * 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 * config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function. 2015-05-27 Chung-Lin Tang * 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 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 * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero on cuInit failure. 2015-05-13 Jakub Jelinek PR middle-end/66133 * testsuite/libgomp.c/pr66133.c: New test. 2015-05-13 Michael Haubenwallner * 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 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use _Complex. * openacc.h (__GOACC_NOTHROW): Fix noexcept syntax. 2015-05-06 Julian Brown * 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 * 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 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 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 * 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 * 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 PR fortran/65597 * testsuite/libgomp.fortran/pr65597.f90: New test. 2015-03-27 Tom de Vries 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 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 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 * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on hppa*-*-hpux*. 2015-03-19 Jakub Jelinek * testsuite/libgomp.c/target-10.c: New test. * testsuite/libgomp.c++/target-4.C: New test. 2015-03-13 Ilya Verbin * testsuite/libgomp.fortran/declare-target-1.f90: New test. * testsuite/libgomp.fortran/declare-target-2.f90: New file. 2015-03-13 Sebastian Huber * 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 * 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 * 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 * libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo. 2015-02-17 Thomas Schwinge Cesar Philippidis * oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid, GOACC_ctaid, and GOACC_nctaid routines. 2015-02-11 Jakub Jelinek PR c/64824 * testsuite/libgomp.c/atomic-18.c: New test. * testsuite/libgomp.c++/atomic-16.C: New test. 2015-02-04 Jakub Jelinek 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 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 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 PR middle-end/64734 * libgomp.c/pr64734.c: New test. 2015-01-23 Tom de Vries PR libgomp/64672 * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test. 2015-01-23 Tom de Vries PR libgomp/64707 * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to dg-options. 2015-01-19 Thomas Schwinge 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 * oacc-parallel.c: Don't include . (GOACC_parallel): Use gomp_alloca instead of alloca. 2015-01-16 Gerald Pfeifer * target.c (num_devices): Guard with PLUGIN_SUPPORT. 2015-01-15 Thomas Schwinge James Norris Tom de Vries Julian Brown Cesar Philippidis Nathan Sidwell Tobias Burnus * 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 . (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", . (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 Julian Brown David Malcolm * 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 * 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 Update copyright years. * libgomp.texi: Bump @copying's copyright year. 2014-12-12 Kyrylo Tkachov * testsuite/lib/libgomp.exp: Load target-utils.exp. Move load of target-supports.exp earlier. 2014-12-10 Ilya Verbin * testsuite/libgomp.c/target-9.c: New test. 2014-12-09 Varvara Rainchik * 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 * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic. 2014-11-28 Andrey Turetskiy Ilya Verbin * testsuite/libgomp.c/target-critical-1.c: New test. 2014-11-26 Jakub Jelinek * 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 PR fortran/63938 * testsuite/libgomp.fortran/pr63938-1.f90: New test. * testsuite/libgomp.fortran/pr63938-2.f90: New test. 2014-11-21 Steve Ellcey * config/linux/mips/futex.h (SYS_futex): Define if not already done. 2014-11-21 H.J. Lu PR bootstrap/63784 * configure: Regenerated. 2014-11-19 Uros Bizjak * 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 * 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 Ilya Verbin * 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 Ilya Verbin Kirill Yukhin Ilya Tocar * 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 Ilya Verbin Thomas Schwinge Andrey Turetskiy * 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 Thomas Schwinge Ilya Verbin Andrey Turetskiy * 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 PR target/63610 * configure: Regenerate. 2014-11-05 Rainer Orth * config/posix/lock.c (_XOPEN_SOURCE) Define as 600. 2014-10-06 Marek Polacek * testsuite/libgomp.c/affinity-1.c: Include . * testsuite/libgomp.c/nqueens-1.c: Include . * testsuite/libgomp.c/thread-limit-1.c: Include * testsuite/libgomp.c/thread-limit-2.c: Likewise. 2014-10-06 Marek Polacek * 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 . * 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 PR libgomp/61200 * testsuite/libgomp.c/pr61200.c: New test. 2014-09-18 Jakub Jelinek PR c++/63248 * testsuite/libgomp.c++/pr63248.C: New test. 2014-08-04 Jakub Jelinek * 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 * 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 * testsuite/libgomp.fortran/pr34020.f90: Make compile with TS 18508/Fortran 2015. 2014-07-06 Marek Polacek PR c/6940 * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings. 2014-07-03 Jakub Jelinek * 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 * testsuite/libgomp.fortran/fortran.exp: Explain gfortran-dg-runtest usage. 2014-06-25 Jakub Jelinek * 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 * 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 * 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 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 * 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 * 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 PR middle-end/61252 * testsuite/libgomp.c++/simd-9.C: New test. 2014-05-18 Uros Bizjak * 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 * 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 * 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 * 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 * config/linux/futex.h (futex_wait): Get error value from errno. (futex_wake): Likewise. 2014-03-25 Jakub Jelinek 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 Update copyright years 2014-01-02 Richard Sandiford * hashtab.h: Use the standard form for the copyright notice. 2014-01-02 Tobias Burnus * libgomp.texi: Bump @copying's copyright year. 2013-12-17 Andreas Tobler * testsuite/libgomp.c/affinity-1.c: Remove alloca.h include. 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 PR testsuite/59534 * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited comparisons. 2013-12-16 Jakub Jelinek PR libgomp/58756 * testsuite/libgomp.c/pr58756.c: New test. 2013-12-12 Jakub Jelinek PR libgomp/59467 * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to !$omp parallel. 2013-11-07 Thomas Schwinge * 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 for size_t. * libgomp.spec.in: Update comment about libgomp's dependencies. * configure.ac: Likewise. * configure: Regenerate. 2013-10-16 Tobias Burnus * 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 * env.c (parse_bind_var): Initialize value to avoid (false positive) warning. 2013-10-12 Jakub Jelinek 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 Jakub Jelinek * 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 * 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 Tobias Burnus Richard Henderson * 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_workshare 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 PR testsuite/57605 * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to ALWAYS_CFLAGS. 2013-09-20 Alan Modra * configure: Regenerate. 2013-09-19 Jakub Jelinek * testsuite/libgomp.c/sections-2.c: New test. 2013-06-28 Marcus Shawcroft * testsuite/libgomp.fortran/strassen.f90: Add dg-skip-if aarch64_tiny. 2013-06-20 Iain Sandoe Cesar Philippidis * 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 * 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 * 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 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 * 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 PR middle-end/56217 * testsuite/libgomp.c++/pr56217.C: New test. 2013-02-01 Alan Modra * task.c (GOMP_task, GOMP_taskwait): Comment. 2013-01-31 Dmitry Vyukov Joost VandeVondele 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 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 Tobias Burnus PR driver/55884 * testsuite/libgomp.fortran/fortran.exp: Use -fintrinsic-modules-path= instead of -fintrinsic-modules-path. 2013-01-14 Richard Sandiford Update copyright years. 2012-12-19 Tobias Burnus * testsuite/libgomp.fortran/fortran.exp: Set -fintrinsic-modules-path. 2012-12-19 Tobias Burnus * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90. 2012-11-21 Jakub Jelinek PR libgomp/55411 * team.c (gomp_free_thread): Decrease gomp_managed_threads if pool had any threads_used. 2012-11-07 Jack Howarth * testsuite/libgomp.c++/pr24455.C: Use -Wl,-undefined,dynamic_lookup on darwin. 2012-11-07 David Edelsohn * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX. 2012-10-24 Dominique d'Humieres * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops. 2012-10-23 Ian Bolton Jim MacArthur Marcus Shawcroft Nigel Stephens Ramana Radhakrishnan Richard Earnshaw Sofiane Naci Stephen Thomas Tejas Belagod Yufeng Zhang * configure.tgt: Add AArch64. 2012-10-04 Jason Merrill * testsuite/libgomp.c++/tls-init1.C: New. 2012-09-14 David Edelsohn * configure: Regenerated. 2012-08-29 Chung-Lin Tang * 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 * libgomp.texi (Library Index): Renamed from "Index" to prevent conflict with index.html on case-insensitive file systems. 2012-07-03 Uros Bizjak * 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 Michael Matz Tobias Grosser Sebastian Pop * 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 * libgomp.texi: Include gpl_v3.texi instead of gpl.texi. 2012-06-22 Richard Guenther Merge from graphite branch 2012-01-13 Tobias Grosser * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. * testsuite/libgomp.graphite/force-parallel-2.c: Likewise. 2012-06-07 Jakub Jelinek 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 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 * configure: Regenerated. 2012-04-11 Manuel López-Ibáñez * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret. 2012-03-31 H.J. Lu PR bootstrap/52812 * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64. 2012-03-22 Jakub Jelinek PR middle-end/52547 * testsuite/libgomp.c/pr52547.c: New test. 2012-03-16 Bernhard Reutner-Fischer * testsuite/lib/libgomp.exp: load fortran-modules.exp 2012-03-14 Rainer Orth * configure.tgt (mips-sgi-irix6*): Remove. 2012-03-12 Rainer Orth * configure.tgt (alpha*-dec-osf*): Remove. * config/osf/sem.h: Remove. * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally. 2012-02-29 Eric Botcazou * config/linux/sparc/futex.h (cpu_relax): Read from CC register. 2012-02-27 Rainer Orth 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 * configure.tgt: Handle tilegx and tilepro. * config/linux/tile/futex.h: New file. 2012-02-08 Richard Guenther PR tree-optimization/46886 * testsuite/libgomp.c/pr46886.c: New testcase. 2012-01-25 Matthias Klose * config/linux/arm: Remove empty directory. * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*. 2011-12-09 Alan Modra 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 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 * 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 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 * 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 PR libgomp/51249 * config/linux/sem.h: Rewrite. * config/linux/sem.c: Rewrite. 2011-11-28 Richard Henderson * libgomp.h (enum memmodel): New. 2011-11-21 Andreas Tobler * configure: Regenerate. 2011-10-10 Matthias Klose * config/posix95: Remove empty directory. 2011-08-26 Jakub Jelinek * testsuite/libgomp.fortran/threadprivate4.f90: New test. 2011-08-19 Jakub Jelinek PR fortran/49792 * testsuite/libgomp.fortran/pr49792-1.f90: New test. * testsuite/libgomp.fortran/pr49792-2.f90: New test. 2011-08-08 Rainer Orth * config/posix95/lock.c, posix95/omp-lock.h: Remove. 2011-08-05 Rainer Orth PR libgomp/49965 * testsuite/libgomp.c++/task-8.C: Replaced err by errval. 2011-08-03 Uros Bizjak * config/linux/proc.h: New. * config/linux/proc.c: Include "proc.h". Do not include . (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 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 * 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 * config/linux/x86/futex.h: Check __x86_64__ instead of __LP64__. 2011-07-29 Jakub Jelinek 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 * 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 * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail. * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern. 2011-07-25 Rainer Orth PR libgomp/45351 * config/osf/sem.h: New file. * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path. 2011-07-18 Rainer Orth PR target/49541 * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to ldflags. 2011-07-15 Jakub Jelinek * 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 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 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 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 PR middle-end/48591 * testsuite/libgomp.c/pr48591.c: New test. 2011-03-21 Rainer Orth PR bootstrap/48135 * acinclude.m4 (enable_symvers): Handle --disable-symvers. * configure: Regenerate. 2011-02-27 Jakub Jelinek PR fortran/47886 * testsuite/libgomp.fortran/task3.f90: New test. 2011-02-24 Tobias Burnus * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE. 2011-02-23 Jakub Jelinek PR libgomp/47854 * libgomp.texi (omp_get_wtime): Don't say time in the past must be Unix Epoch. 2011-02-18 Jakub Jelinek PR libgomp/47804 * testsuite/libgomp.fortran/fortran.exp: Check for both libquadmath.a and libquadmath.${shlib_ext}. If neither exists, but $blddir != "", still append ${blddir}/${lang_library_path} to ld_library_path. 2011-02-16 Tobias Burnus PR libgomp/47758 * testsuite/libgomp.fortran/fortran.exp: Check for the existence of libquadmath.a before adding its libpath to ldflags. 2011-02-14 Jakub Jelinek PR libgomp/47731 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument to FUTEX_WAIT futex syscall. * config/linux/wait.h: Include instead of "futex.h". 2011-02-13 Ralf Wildenhues * configure: Regenerate. 2011-01-20 Benjamin Kosnik PR libstdc++/36104 * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants. 2011-01-16 Gerald Pfeifer * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS. 2010-12-14 Jakub Jelinek PR fortran/46874 * libgomp.fortran/allocatable6.f90: New test. 2010-12-06 Rainer Orth * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no. * configure: Regenerate. 2010-12-06 Dave Korn PR target/40125 PR lto/46695 * configure.ac: Invoke ACX_LT_HOST_FLAGS. * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags. * aclocal.m4: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2010-12-02 Jakub Jelinek PR fortran/46753 * libgomp.fortran/pr46753.f90: New test. PR libgomp/43706 * env.c (initialize_env): Default to spin count 300000 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT is specified. PR libgomp/45240 * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock at the end if sync builtins aren't supported. 2010-12-01 Rainer Orth * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS. 2010-12-01 Rainer Orth * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0. 2010-11-24 Iain Sandoe * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath. 2010-11-16 Francois-Xavier Coudert Tobias Burnus PR fortran/32049 * configure.ac: * configure: Regenerate. 2010-10-06 Marcus Shawcroft * config/linux/futex.h: New. * config/linux/arm/mutex.h: New. * configure.tgt (arm*-*-linux*): Add config path. 2010-09-30 Sebastian Pop * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. 2010-09-23 Tobias Burnus * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic): Change Fortran datatype to LOGICAL. (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock, omp_unset_nested_lock): Use intent(inout) instead of intent(out). 2010-08-21 Ralf Wildenhues * configure: Regenerate. 2010-07-26 Jakub Jelinek * libgomp.texi: Add function keyword to a couple of Fortran interfaces, use integer instead of int for Fortran. 2010-07-26 Aldy Hernandez * libgomp.texi: Fix spelling and pasto problems throughout. Adjust prototypes to match code. 2010-07-24 Tobias Burnus * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to silence -fwhole-file warning. 2010-07-23 Rainer Orth * configure.tgt (*-*-solaris2.[56]*): Removed. 2010-07-05 Rainer Orth * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style. Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU, LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals. (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless targetting solaris2*. * configure: Regenerate. * config.h.in: Regenerate. * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU. Add libgomp_version_dep. [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol versioning. [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep. (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep). * Makefile.in: Regenerate. * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT. * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0 to common block, protected by HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT. 2010-06-10 Gerald Pfeifer * libgomp.texi: Move to GFDL version 1.3. Update copyright years. 2010-06-09 Iain Sandoe PR bootstrap/43170 * configure: Regenerate. 2010-05-04 Ralf Wildenhues PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2010-04-26 Jakub Jelinek PR c/43893 * testsuite/libgomp.c/pr43893.c: New test. * testsuite/libgomp.c++/pr43893.C: New test. 2010-04-21 Jakub Jelinek PR middle-end/43570 * testsuite/libgomp.fortran/vla8.f90: New test. 2010-04-20 Jakub Jelinek PR libgomp/43706 * config/linux/affinity.c (gomp_init_affinity): Decrease gomp_available_cpus if affinity mask confines the process to fewer CPUs. * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is non-NULL, just return gomp_available_cpus. PR libgomp/43569 * sections.c (gomp_sections_init): Initialize ws->mode. 2010-04-14 Uros Bizjak * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but not unused bar variable. * configure: Regenerate. 2010-04-02 Ralf Wildenhues * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * testsuite/Makefile.in: Regenerate. 2010-03-22 Jakub Jelinek PR libgomp/42942 * env.c (parse_unsigned_long): Add ALLOW_ZERO argument. (initialize_env): Adjust callers. (omp_set_max_active_levels): Set gomp_max_active_levels_var even when the argument is 0. * testsuite/libgomp.c/pr42942.c: New test. 2010-03-08 Tobias Grosser PR middle-end/42644 PR middle-end/42130 * testsuite/libgomp.graphite/force-parallel-1.c: Adjust. * testsuite/libgomp.graphite/force-parallel-2.c: Adjust. 2010-01-29 Rainer Orth * testsuite/libgomp.c++/task-1.C: Renamed err to e. * testsuite/libgomp.c++/task-6.C: Likewise. 2010-01-28 Steve Ellcey * configure.tgt (*-*-hpux*): Add -frandom-seed flag. 2010-01-26 Paolo Bonzini * configure.ac: Test for executability of _the first word_ of GFORTRAN. * configure: Regenerate. 2010-01-26 Jakub Jelinek PR fortran/42866 * testsuite/libgomp.fortran/allocatable5.f90: New test. 2010-01-20 Paolo Bonzini * configure.ac: Test for executability of GFORTRAN. * configure: Regenerate. 2010-01-05 Rainer Orth * configure: Regenerate. 2010-01-04 H.J. Lu PR libgomp/42602 * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic. 2010-01-03 Richard Guenther * testsuite/libgomp.fortran/recursion1.f90: New testcase. 2009-12-23 Sebastian Pop * testsuite/libgomp.graphite/pr4118.c: New. 2009-12-22 Iain Sandoe * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage for darwin, protect the test with require-effective-target tls_runtime. * testsuite/libgomp.fortran/pr32550.f90: Ditto. 2009-12-22 Iain Sandoe PR target/41605 * testsuite/lib/libgomp.exp: Provide -B options to allow for link spec %s substitutions for static libraries. 2009-12-18 Jack Howarth PR testsuite/42135 * libgomp.graphite/force-parallel-2.c: Reduce array size. 2009-12-05 Ralf Wildenhues * Makefile.in: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. 2009-11-30 Dave Korn * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent settings for LC_ALL and LANG. 2009-11-25 Jakub Jelinek PR fortran/42162 * testsuite/libgomp.fortran/pr42162.f90: New test. 2009-11-13 Jakub Jelinek PR middle-end/42029 * testsuite/libgomp.c/pr42029.c: New test. 2009-10-26 Jakub Jelinek * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many *s. Accept ld version without text in ()s. * configure: Regenerated. 2009-10-22 Razya Ladelsky * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan. 2009-10-17 Ralf Wildenhues PR libgomp/41418 * configure.ac: Set FC to "no" if $GFORTRAN starts with "no" or a hyphen (happens with fortran language disabled). * configure: Regenerate. 2009-09-30 Ralf Wildenhues * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head', use sed script portable to Solaris /bin/sed for extracting ld version. * configure: Regenerate. 2009-09-17 Alexander Monakov * testsuite/libgomp.graphite/bounds.c: New test. 2009-09-11 Ralf Wildenhues * Makefile.am (libgomp_la_LINK): New. * Makefile.in: Regenerate. 2009-08-24 Ralf Wildenhues * configure.ac (AC_PREREQ): Bump to 2.64. 2009-08-22 Ralf Wildenhues * Makefile.am (install-html, install-pdf): Remove. * Makefile.in: Regenerate. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. 2009-08-22 Ralf Wildenhues * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS). * Makefile.in: Regenerate. 2009-08-20 Dave Korn * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag. * Makefile.in: Regenerate. 2009-08-19 Tobias Burnus PR fortran/41102 omp_lib.h.in: Fix -std=f95 errors. 2009-08-14 David Edelsohn * testsuite/libgomp.graphite: Move from gcc.dg/graphite. * testsuite/libgomp.graphite/graphite_autopar.exp: Delete. * testsuite/libgomp.graphite/graphite.exp: New. 2009-08-05 Andreas Tobler * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared only build. 2009-08-04 David Daney * config/linux/mutex.h (gomp_mutex_unlock): Add comment about needed memory barrier semantics. * config/linux/mips/mutex.h: New file. 2009-07-30 Ralf Wildenhues * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force. 2009-07-16 Joseph Myers * configure: Regenerate. 2009-07-11 Richard Sandiford PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits. * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp, testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits. 2009-07-02 Richard Sandiford * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS options when choosing a multilib. 2009-06-30 Richard Sandiford * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to ld_library_path. Use add_path. Add just find_libgcc_s to ld_library_path, not every libgcc multilib directory. * testsuite/libgomp.c/c.exp (ld_library_path): Don't call gcc-set-multilib-library-path; rely on $always_ld_library_path instead. * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise. Use add_path. * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise. 2009-06-09 Nathan Froyd * Makefile.am (LTLDFLAGS): Define. (LINK): Define. * Makefile.in: Regenerate. 2009-05-27 Janne Blomqvist PR fortran/39718 * testsuite/libgomp.fortran/fortran.exp: Don't link with libgfortranbegin, check existence of libgfortran.a instead of libgfortranbegin.a. 2009-05-20 Jakub Jelinek PR libgomp/40174 * team.c (gomp_thread_start): Destroy thr->release semaphore. (gomp_free_pool_helper): Likewise. 2009-04-20 Vasilis Liaskovitis Jakub Jelinek PR fortran/35423 * testsuite/libgomp.fortran/workshare2.f90: New test. 2009-04-09 Nick Clifton * iter.c: Change copyright header to refer to version 3 of the GNU General Public License with version 3.1 of the GCC Runtime Library Exception and to point readers at the COPYING3 and COPYING3.RUNTIME files and the FSF's license web page. * alloc.c: Likewise. * barrier.c: Likewise. * config/bsd/proc.c: Likewise. * config/linux/affinity.c: Likewise. * config/linux/alpha/futex.h: Likewise. * config/linux/bar.c: Likewise. * config/linux/bar.h: Likewise. * config/linux/ia64/futex.h: Likewise. * config/linux/ia64/mutex.h: Likewise. * config/linux/lock.c: Likewise. * config/linux/mips/futex.h: Likewise. * config/linux/mutex.c: Likewise. * config/linux/mutex.h: Likewise. * config/linux/powerpc/futex.h: Likewise. * config/linux/proc.c: Likewise. * config/linux/ptrlock.c: Likewise. * config/linux/ptrlock.h: Likewise. * config/linux/s390/futex.h: Likewise. * config/linux/sem.c: Likewise. * config/linux/sem.h: Likewise. * config/linux/sparc/futex.h: Likewise. * config/linux/wait.h: Likewise. * config/linux/x86/futex.h: Likewise. * config/mingw32/proc.c: Likewise. * config/mingw32/time.c: Likewise. * config/posix/affinity.c: Likewise. * config/posix/bar.c: Likewise. * config/posix/bar.h: Likewise. * config/posix/lock.c: Likewise. * config/posix/mutex.h: Likewise. * config/posix/proc.c: Likewise. * config/posix/ptrlock.h: Likewise. * config/posix/sem.c: Likewise. * config/posix/sem.h: Likewise. * config/posix/time.c: Likewise. * config/posix95/lock.c: Likewise. * critical.c: Likewise. * env.c: Likewise. * error.c: Likewise. * fortran.c: Likewise. * iter_ull.c: Likewise. * libgomp.h: Likewise. * libgomp_f.h.in: Likewise. * libgomp_g.h: Likewise. * loop.c: Likewise. * loop_ull.c: Likewise. * omp.h.in: Likewise. * omp_lib.f90.in: Likewise. * omp_lib.h.in: Likewise. * ordered.c: Likewise. * parallel.c: Likewise. * sections.c: Likewise. * single.c: Likewise. * task.c: Likewise. * team.c: Likewise. * work.c: Likewise. 2009-04-09 Jakub Jelinek * testsuite/config/default.exp: Change copyright header to refer to version 3 of the GNU General Public License and to point readers at the COPYING3 file and the FSF's license web page. 2009-04-08 Jakub Jelinek PR middle-end/39573 * libgomp.c++/pr39573.C: New test. 2009-04-01 Jakub Jelinek PR other/39591 * testsuite/libgomp.c/pr39591-1.c: New test. * testsuite/libgomp.c/pr39591-2.c: New test. * testsuite/libgomp.c/pr39591-3.c: New test. 2009-03-25 Uros Bizjak * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage. * testsuite/libgomp.c/atomic-6.c: Ditto. 2009-03-23 Jakub Jelinek PR c/39495 * testsuite/libgomp.c/loop-12.c: New test. * testsuite/libgomp.c/loop-11.c: New test. * testsuite/libgomp.c++/loop-11.C: New test. * testsuite/libgomp.c++/loop-12.C: New test. * testsuite/libgomp.c++/for-8.C: New test. 2009-03-01 Ralf Wildenhues * configure: Regenerate. 2009-02-11 Jakub Jelinek PR middle-end/39154 * testsuite/libgomp.c/pr39154.c: New test. 2009-01-30 Ian Lance Taylor * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set libgomp_ld_is_gold. Get gold version number. (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning. * configure: Rebuild. 2009-01-19 Iain Sandoe * testsuite/lib/libgomp.exp: Add -B option for targets that use libgfortran.a%s in their specs. 2009-01-07 Jakub Jelinek PR libgomp/38086 * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check. * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if HAVE_AS_SYMVER_DIRECTIVE is not defined. * configure: Regenerated. * config.h.in: Likewise. 2008-12-28 Jakub Jelinek PR c++/38650 * testsuite/libgomp.c/pr38650.c: New test. * testsuite/libgomp.c++/pr38650.C: New test. 2008-12-27 Jakub Jelinek * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause. 2008-12-26 Uros Bizjak * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets. 2008-12-18 Ralf Wildenhues * configure: Regenerate. 2008-12-08 Jakub Jelinek PR middle-end/36802 * testsuite/libgomp.c/pr36802-1.c: New test. * testsuite/libgomp.c/pr36802-2.c: New test. * testsuite/libgomp.c/pr36802-3.c: New test. 2008-12-01 Janis Johnson PR libgomp/38270 * config/linux/powerpc/mutex.h: New. 2008-12-01 Jakub Jelinek PR c++/38257 * testsuite/libgomp.c++/for-7.C: New test. PR c++/38348 * testsuite/libgomp.c++/for-6.C: New test. 2008-11-26 Janis Johnson PR testsuite/28870 * testsuite/lib/libgomp.exp: Include new timeout library files. (libgomp_target_compile): Set timeout value from new proc. 2008-11-13 Steve Ellcey PR libgomp/37938 * config/linux/ia64/mutex.h: New. 2008-11-04 Tobias Burnus PR libgomp/37935 * libgomp.texi (Runtime library routines, environment variables): Update for OpenMP version 3.0. 2008-09-26 Peter O'Gorman Steve Ellcey * configure: Regenerate for new libtool. * Makefile.in: Ditto. * testsuite/Makefile.in: Ditto. 2008-09-19 Jakub Jelinek Andreas Tobler * config/bsd/proc.c: New file. * configure.tgt (*-*-darwin*): Use config_path "bsd posix". * configure.ac: Check for header * configure: Regenerate. * config.h.in: Likewise. 2008-09-05 Janis Johnson * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists. 2008-08-31 Aaron W. LaFramboise * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined. * Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. 2008-08-21 Nathan Froyd * testsuite/lib/libgomp.exp (libgomp_init): Only set things that depend on blddir if blddir exists. (libgomp_target_compile): Likewise. * testsuite/libgomp.c++/c++.exp: Likewise. * testsuite/libgomp.fortran/fortran.exp: Likewise. 2008-07-30 Ralf Wildenhues * libgomp.texi: Update to GFDL 1.2. Update copyright years. Do not list GPL as Invariant Section. 2008-07-28 Ilie Garbacea Chao-ying Fu * configure.tgt: Enable futex for MIPS. * config/linux/mips/futex.h: New file. 2008-07-16 Jakub Jelinek * team.c (gomp_team_end): Free team immediately if it has just one thread. 2008-07-08 David Edelsohn * testsuite/libgomp.c++/c++.exp: Append multilib library path. * testsuite/libgomp.fortran/fortran.exp: Same. * testsuite/libgomp.c/c.exp: Same. * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib directory to library path first. 2008-06-29 Krister Walfridsson * env.c (parse_stacksize): Add cast to avoid warning. (parse_spincount): Likewise. 2008-06-27 Jakub Jelinek * testsuite/libgomp.c/loop-10.c: New test. * libgomp.c/loop-3.c (main): Add lastprivate clause. * libgomp.c++/loop-6.C (main): Likewise. PR debug/36617 * testsuite/libgomp.c/debug-1.c: New test. 2008-06-19 Jakub Jelinek * testsuite/libgomp.c/nqueens-1.c: New test. PR c++/36523 * testsuite/libgomp.c++/task-7.C: New function. 2008-06-17 Ralf Wildenhues * configure: Regenerate. 2008-06-15 John David Anglin * env.c (initialize_env): Always initialize gomp_remaining_threads_lock mutex when HAVE_SYNC_BUILTINS isn't defined. 2008-06-15 Ralf Wildenhues * libgomp.texi (omp_test_lock): Fix typo. 2008-06-12 Tobias Burnus * omp_lib.f90.in: Add "implicit none". 2008-06-12 Jakub Jelinek PR middle-end/36506 * testsuite/libgomp.c/reduction-5.c: New test. 2008-06-11 Jakub Jelinek * libgomp.h (struct gomp_task): Add in_tied_task field. * task.c (gomp_init_task): Initialize it. (GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending unconditionally. Don't call gomp_team_barrier_wake if current task is implicit or if(0) from implicit and number of running tasks is equal to nthreads - 1. PR libgomp/36471 * omp_lib.f90.in (omp_get_ancestor_thread_num_8, omp_get_team_size_8): Fix pastos. PR libgomp/36469 * configure.ac: Add AC_CHECK_FUNCS (strtoull). * configure: Regenerated. * config.h.in: Regenerated. * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not defined. 2008-06-06 Andreas Tobler PR bootstrap/36452 * loop_ull.c (GOMP_loop_ull_static_start): Adjust API. (GOMP_loop_ull_dynamic_start): Likewise. (GOMP_loop_ull_guided_start): Likewise. (GOMP_loop_ull_ordered_static_start): Likewise. (GOMP_loop_ull_ordered_dynamic_start): Likewise. (GOMP_loop_ull_ordered_guided_start): Likewise. 2008-06-06 Jakub Jelinek Richard Henderson Ulrich Drepper Jakob Blomer * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE. Substitute also OMP_*LOCK_25*. * configure: Regenerated. * config.h.in: Regenerated. * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c, ptrlock.c and task.c. * Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * task.c: New file. * loop_ull.c: New file. * iter_ull.c: New file. * libgomp.h: Include ptrlock.h. (enum gomp_task_kind): New type. (struct gomp_team): Add task_lock, task_queue, task_count, task_running_count, single_count fields. Add work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS. Remove work_share_lock, generation_mask, oldest_live_gen, num_live_gen and init_work_shares fields, add work work_share_list_alloc, work_share_list_free and work_share_chunk fields. Change work_shares from pointer to pointers into an array. Change ordered_release field into gomp_sem_t ** from flexible array member. Add implicit_task and initial_work_shares fields. Move close to the end of the struct. (struct gomp_team_state): Add single_count, last_work_share, active_level and level fields, remove work_share_generation. (gomp_barrier_handle_tasks): New prototype. (gomp_finish_task): New inline function. (struct gomp_work_share): Move chunk_size, end, incr into transparent union/struct, add chunk_size_ull, end_ll, incr_ll and next_ll fields. Reshuffle fields. Add next_alloc, next_ws, next_free and inline_ordered_team_ids fields, change ordered_team_ids into pointer from flexible array member. Add mode field. Put lock and next into a different cache line from most of the write-once fields. (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked, gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next, gomp_iter_ull_guided_next): New prototypes. (gomp_new_icv): New prototype. (struct gomp_thread): Add thread_pool and task fields. (struct gomp_thread_pool): New type. (gomp_new_team): New prototype. (gomp_team_start): Change type of last argument. (gomp_new_work_share): Removed. (gomp_init_work_share, gomp_fini_work_share): New prototypes. (gomp_work_share_init_done): New static inline. (gomp_throttled_spin_count_var, gomp_available_cpus, gomp_managed_threads): New extern decls. (gomp_init_task): New prototype. (gomp_spin_count_var): New extern var decl. (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility or no alias support, or if not PIC. (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30, gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30, gomp_destroy_nest_lock_30, gomp_set_nest_lock_30, gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25, gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25, gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25, gomp_set_nest_lock_25, gomp_unset_nest_lock_25, gomp_test_nest_lock_25): New prototypes. (omp_lock_symver, strong_alias): Define. (gomp_remaining_threads_count, gomp_remaining_threads_lock): New decls. (gomp_end_task): New. (struct gomp_task_icv, gomp_global_icv): New. (gomp_thread_limit_var, gomp_max_active_levels_var): New. (struct gomp_task): New. (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var, gomp_run_sched_var, gomp_run_sched_chunk): Remove. (gomp_icv): New. (gomp_schedule_type): Reorder enum to match omp_sched_t. * team.c (struct gomp_thread_start_data): Add thread_pool and task fields. (gomp_thread_start): Add gomp_team_barrier_wait call. For non-nested case remove clearing of docked thread thr fields. Use pool fields instead of global gomp_* variables. Use gomp_barrier_wait_last when needed. Initialize ts.active_level. Create tasks for each member thread. (free_team): Only destroy team barrier, task_lock here and free it. (gomp_free_thread): Free last_team if non-NULL. (gomp_team_end): Call gomp_team_barrier_wait instead of gomp_barrier_wait. For nested case call one extra gomp_barrier_wait. Move here some destruction from free_team. Call free_team on pool->last_team if any, rather than freeing current team. Destroy work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS. (gomp_new_icv): New function. (gomp_threads, gomp_threads_size, gomp_threads_used, gomp_threads_dock): Removed. (gomp_thread_destructor): New variable. (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. 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 ts.last_work_share. Don't clear ts.work_share_generation. If number of threads changed, adjust atomically gomp_managed_threads. Use gomp_init_task instead of gomp_new_task, set thr->task to the corresponding implicit_task array entry. Create tasks for each member thread. Initialize ts.level. (initialize_team): Call pthread_key_create on gomp_thread_destructor. (team_destructor): New function. (new_team): Removed. (gomp_new_team): New function. (free_team): Free gomp_work_share blocks chained through next_alloc, instead of freeing work_shares and destroying work_share_lock. (gomp_team_end): Call gomp_fini_work_share. If number of threads changed, adjust atomically gomp_managed_threads. Use gomp_end_task. * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead of gomp_barrier_wait. * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait instead of gomp_barrier_wait. Call gomp_work_share_init_done if gomp_work_share_start returned true. Don't unlock ws->lock. (GOMP_single_copy_end): Call gomp_team_barrier_wait instead of gomp_barrier_wait. (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call gomp_work_share_init_done if gomp_work_share_start returned true. Don't unlock ws->lock. * work.c: Include stddef.h. (free_work_share): Use work_share_list_free_lock instead of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument. Call gomp_fini_work_share and then either free ws if orphaned, or put it into work_share_list_free list of the current team. (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New functions. (gomp_work_share_start, gomp_work_share_end, gomp_work_share_end_nowait): Rewritten. * omp_lib.f90.in Change some tabs to spaces to prevent warnings. (openmp_version): Set to 200805. (omp_sched_kind, omp_sched_static, omp_sched_dynamic, omp_sched_guided, omp_sched_auto): New parameters. (omp_set_schedule, omp_get_schedule, 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): New interfaces. * omp_lib.h.in (openmp_version): Set to 200805. (omp_sched_kind, omp_sched_static, omp_sched_dynamic, omp_sched_guided, omp_sched_auto): New parameters. (omp_set_schedule, omp_get_schedule, 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): New externals. * loop.c: Include limits.h. (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle GFS_AUTO. (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start): Likewise. Use gomp_icv. (gomp_loop_static_start, gomp_loop_dynamic_start): Clear ts.static_trip here. (gomp_loop_static_start, gomp_loop_ordered_static_start): Call gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock. (gomp_loop_dynamic_start, gomp_loop_guided_start): Call gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS, don't unlock ws->lock, otherwise lock it. (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call gomp_work_share_init_done after gomp_loop_init. Lock ws->lock. (gomp_parallel_loop_start): Call gomp_new_team instead of gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0]. Adjust gomp_team_start caller. Pass 0 as second argument to gomp_resolve_num_threads. (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr. If adding ws->chunk_size nthreads + 1 times after end won't overflow, set ws->mode to 1. * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start, GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start, GOMP_loop_ull_ordered_static_start, GOMP_loop_ull_ordered_dynamic_start, GOMP_loop_ull_ordered_guided_start, GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next, GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next, GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next, GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next, GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New prototypes. * libgomp.map: Export lock routines also @@OMP_2.0. (GOMP_loop_ordered_dynamic_first, GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first, GOMP_loop_ordered_static_first): Remove. (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start, GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start, GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_dynamic_start, GOMP_loop_ull_ordered_guided_next, GOMP_loop_ull_ordered_guided_start, GOMP_loop_ull_ordered_runtime_next, GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_ordered_static_next, GOMP_loop_ull_ordered_static_start, GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start, GOMP_loop_ull_static_next, GOMP_loop_ull_static_start, GOMP_task, GOMP_taskwait): Export @@GOMP_2.0. (omp_set_schedule, omp_get_schedule, 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_set_schedule_, omp_set_schedule_8_, omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_, omp_set_max_active_levels_, omp_set_max_active_levels_8_, omp_get_max_active_levels_, omp_get_level_, omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_, omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_): New exports @@OMP_3.0. * omp.h.in (omp_sched_t): New type. (omp_set_schedule, omp_get_schedule, 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): New prototypes. * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var, gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var, gomp_thread_limit_var, gomp_remaining_threads_count, gomp_remaining_threads_lock): New variables. (parse_spincount): New function. (initialize_env): Call gomp_init_num_threads unconditionally. Initialize gomp_available_cpus. Call parse_spincount, initialize gomp_{,throttled_}spin_count_var depending on presence and value of OMP_WAIT_POLICY and GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var. Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS, OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and gomp_remaining_threads_lock if needed. Use gomp_global_icv. (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var, gomp_run_sched_var, gomp_run_sched_chunk): Remove. (gomp_global_icv): New. (parse_schedule): Use it. Parse "auto". (omp_set_num_threads): Use gomp_icv. (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested): Likewise. (omp_get_max_threads): Move from parallel.c. (omp_set_schedule, omp_get_schedule, omp_get_thread_limit, omp_set_max_active_levels, omp_get_max_active_levels): New functions, add ialias. (parse_stacksize, parse_wait_policy): New functions. * fortran.c: Rewrite lock wrappers, if symbol versioning provide both wrappers for compatibility and new locks. (omp_set_schedule, omp_get_schedule, 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): New ialias_redirect. (omp_set_schedule_, omp_set_schedule_8_, omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_, omp_set_max_active_levels_, omp_set_max_active_levels_8_, omp_get_max_active_levels_, omp_get_level_, omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_, omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_): New functions. * parallel.c: Include limits.h. (gomp_resolve_num_threads): Add count argument. Rewritten. (GOMP_parallel_start): Call gomp_new_team and pass that as last argument to gomp_team_start. Pass 0 as second argument to gomp_resolve_num_threads. (GOMP_parallel_end): Decrease gomp_remaining_threads_count if gomp_thread_limit_var != ULONG_MAX. (omp_in_parallel): Implement using ts.active_level. (omp_get_max_threads): Move to env.c. (omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level): New functions, add ialias. * sections.c (GOMP_sections_start): Call gomp_work_share_init_done after gomp_sections_init. If HAVE_SYNC_BUILTINS, call gomp_iter_dynamic_next instead of the _locked variant and don't take lock around it, otherwise acquire it before calling gomp_iter_dynamic_next_locked. (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call gomp_iter_dynamic_next instead of the _locked variant and don't take lock around it. (GOMP_parallel_sections_start): Call gomp_new_team instead of gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0]. Adjust gomp_team_start caller. Pass count as second argument to gomp_resolve_num_threads, don't adjust num_threads after the call. Use gomp_icv. * iter.c (gomp_iter_dynamic_next_locked): Don't multiply ws->chunk_size by incr. (gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient code. * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New types. (omp_lock_25_arg, omp_nest_lock_25_arg): New macros. (omp_check_defines): Check even the compat defines. * config/linux/ptrlock.c: New file. * config/linux/ptrlock.h: New file. * config/linux/wait.h: New file. * config/posix/ptrlock.c: New file. * config/posix/ptrlock.h: New file. * config/linux/bar.h (gomp_team_barrier_wait, gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes. (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): New inlines. (gomp_barrier_t): Rewritten. (gomp_barrier_state_t): New typedef. (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy, gomp_barrier_wait_start): Rewritten. (gomp_barrier_wait_end): Change second argument to gomp_barrier_state_t. (gomp_barrier_last_thread, gomp_barrier_wait_last): New static inlines. * config/linux/bar.c: Include wait.h instead of libgomp.h and futex.h. (gomp_barrier_wait_end): Rewritten. (gomp_team_barrier_wait, gomp_team_barrier_wait_end, gomp_team_barrier_wake, gomp_barrier_wait_last): New functions. * config/posix/bar.h (gomp_barrier_t): Add generation field. (gomp_barrier_state_t): New typedef. (gomp_team_barrier_wait, gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes. (gomp_barrier_wait_start): Or all but low 2 bits from generation into the return value. Return gomp_barrier_state_t. (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): New inlines. (gomp_barrier_wait_end): Change second argument to gomp_barrier_state_t. (gomp_barrier_last_thread, gomp_barrier_wait_last): New static inlines. * config/posix/bar.c (gomp_barrier_init): Clear generation field. (gomp_barrier_wait_end): Change second argument to 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 futex.h. (gomp_futex_wake, gomp_futex_wait): New variables. (gomp_mutex_lock_slow): Call do_wait instead of futex_wait. * config/linux/lock.c: Rewrite to make locks task owned, for backwards compatibility provide the old entrypoints if symbol versioning. Include wait.h instead of libgomp.h and futex.h. (gomp_set_nest_lock_25): Call do_wait instead of futex_wait. * config/posix95/lock.c: Rewrite to make locks task owned, for backwards compatibility provide the old entrypoints if symbol versioning. * config/posix/lock.c: Rewrite to make locks task owned, for backwards compatibility provide the old entrypoints if symbol versioning. * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv. (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv. * config/posix/proc.c, config/mingw32/proc.c: Similarly. * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (sys_futex0): Return error code. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (sys_futex0): Return error code. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (sys_futex0): Return error code. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (sys_futex0): Return error code. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove. (sys_futex0): Return error code. (futex_wake, futex_wait): If ENOSYS was returned, clear FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry. (cpu_relax, atomic_write_barrier): New static inlines. * config/linux/sem.c: Include wait.h instead of libgomp.h and futex.h. (gomp_sem_wait_slow): Call do_wait instead of futex_wait. * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS. * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New types. (omp_nest_lock_t): Change owner into void *, add lock field. * config/posix95/omp-lock.h: Include semaphore.h. (omp_lock_25_t, omp_nest_lock_25_t): New types. (omp_lock_t): Use sem_t instead of mutex if semaphores aren't broken. (omp_nest_lock_t): Likewise. Change owner to void *. * config/posix/omp-lock.h: Include semaphore.h. (omp_lock_25_t, omp_nest_lock_25_t): New types. (omp_lock_t): Use sem_t instead of mutex if semaphores aren't broken. (omp_nest_lock_t): Likewise. Add owner field. 2008-06-06 Jakub Jelinek * testsuite/libgomp.c/collapse-1.c: New test. * testsuite/libgomp.c/collapse-2.c: New test. * testsuite/libgomp.c/collapse-3.c: New test. * testsuite/libgomp.c/icv-1.c: New test. * testsuite/libgomp.c/icv-2.c: New test. * testsuite/libgomp.c/lib-2.c: New test. * testsuite/libgomp.c/lock-1.c: New test. * testsuite/libgomp.c/lock-2.c: New test. * testsuite/libgomp.c/lock-3.c: New test. * testsuite/libgomp.c/loop-4.c: New test. * testsuite/libgomp.c/loop-5.c: New test. * testsuite/libgomp.c/loop-6.c: New test. * testsuite/libgomp.c/loop-7.c: New test. * testsuite/libgomp.c/loop-8.c: New test. * testsuite/libgomp.c/loop-9.c: New test. * testsuite/libgomp.c/nested-3.c: New test. * testsuite/libgomp.c/nestedfn-6.c: New test. * testsuite/libgomp.c/sort-1.c: New test. * testsuite/libgomp.c/task-1.c: New test. * testsuite/libgomp.c/task-2.c: New test. * testsuite/libgomp.c/task-3.c: New test. * testsuite/libgomp.c/task-4.c: New test. * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes to C++ testsuite default compiler options. * testsuite/libgomp.c++/collapse-1.C: New test. * testsuite/libgomp.c++/collapse-2.C: New test. * testsuite/libgomp.c++/ctor-10.C: New test. * testsuite/libgomp.c++/for-1.C: New test. * testsuite/libgomp.c++/for-2.C: New test. * testsuite/libgomp.c++/for-3.C: New test. * testsuite/libgomp.c++/for-4.C: New test. * testsuite/libgomp.c++/for-5.C: New test. * testsuite/libgomp.c++/loop-8.C: New test. * testsuite/libgomp.c++/loop-9.C: New test. * testsuite/libgomp.c++/loop-10.C: New test. * testsuite/libgomp.c++/task-1.C: New test. * testsuite/libgomp.c++/task-2.C: New test. * testsuite/libgomp.c++/task-3.C: New test. * testsuite/libgomp.c++/task-4.C: New test. * testsuite/libgomp.c++/task-5.C: New test. * testsuite/libgomp.c++/task-6.C: New test. * testsuite/libgomp.fortran/allocatable1.f90: New test. * testsuite/libgomp.fortran/allocatable2.f90: New test. * testsuite/libgomp.fortran/allocatable3.f90: New test. * testsuite/libgomp.fortran/allocatable4.f90: New test. * testsuite/libgomp.fortran/collapse1.f90: New test. * testsuite/libgomp.fortran/collapse2.f90: New test. * testsuite/libgomp.fortran/collapse3.f90: New test. * testsuite/libgomp.fortran/collapse4.f90: New test. * testsuite/libgomp.fortran/lastprivate1.f90: New test. * testsuite/libgomp.fortran/lastprivate2.f90: New test. * testsuite/libgomp.fortran/lib4.f90: New test. * testsuite/libgomp.fortran/lock-1.f90: New test. * testsuite/libgomp.fortran/lock-2.f90: New test. * testsuite/libgomp.fortran/nested1.f90: New test. * testsuite/libgomp.fortran/nestedfn4.f90: New test. * testsuite/libgomp.fortran/strassen.f90: New test. * testsuite/libgomp.fortran/tabs1.f90: New test. * testsuite/libgomp.fortran/tabs2.f: New test. * testsuite/libgomp.fortran/task1.f90: New test. * testsuite/libgomp.fortran/task2.f90: New test. * testsuite/libgomp.fortran/vla4.f90: Add dg-warning. * testsuite/libgomp.fortran/vla5.f90: Likewise. * testsuite/libgomp.c/pr26943-2.c: Likewise. * testsuite/libgomp.c/pr26943-3.c: Likewise. * testsuite/libgomp.c/pr26943-4.c: Likewise. 2008-05-23 Jakub Jelinek PR c++/36308 * testsuite/libgomp.c++/ctor-11.C: New test. * testsuite/libgomp.c++/ctor-12.C: New test. 2008-05-15 Janis Johnson * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib. 2008-05-07 Jakub Jelinek PR middle-end/36106 * testsuite/libgomp.c/atomic-5.c: New test. * testsuite/libgomp.c/atomic-6.c: New test. * testsuite/libgomp.c/autopar-1.c: New test. 2008-04-21 Ralf Wildenhues * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS) (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY) (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT) (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names. * configure: Regenerate. * Makefile.in, testsuite/Makefile.in: Likewise. 2008-04-18 Paolo Bonzini PR bootstrap/35457 * aclocal.m4: Regenerate. * configure: Regenerate. 2008-03-18 Jakub Jelinek PR middle-end/35611 * testsuite/libgomp.c/atomic-4.c: New test. PR libgomp/35625 * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end. (gomp_iter_guided_next): Likewise. * testsuite/libgomp.c/pr35625.c: New test. 2008-03-16 Ralf Wildenhues * aclocal.m4: Regenerate. * configure: Likewise. * Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. 2008-03-13 Jakub Jelinek PR middle-end/35185 * testsuite/libgomp.c++/pr35185.C: New test. 2008-03-12 Jakub Jelinek PR middle-end/35549 * testsuite/libgomp.c/pr35549.c: New test. 2008-03-06 Jakub Jelinek * testsuite/libgomp.c/atomic-3.c: New test. 2008-03-03 Francois-Xavier Coudert PR fortran/33197 * testsuite/libgomp.fortran/fortran.exp: Add .f08 and .F08 file suffixes. 2008-03-03 Peter O'Gorman PR libgomp/33131 * configure.ac: Add ACX_HEADER_STRING. * env.c: Include strings.h. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2008-02-15 Jakub Jelinek PR middle-end/35196 * testsuite/libgomp.c/pr35196.c: New test. PR middle-end/35130 * testsuite/libgomp.fortran/pr35130.f90: New test. * testsuite/libgomp.c/pr35130.c: New test. 2008-01-25 Jakub Jelinek PR middle-end/33880 * testsuite/libgomp.c/pr33880.c: New test. * testsuite/libgomp.fortran/pr33880.f90: New test. 2008-01-24 David Edelsohn * configure: Regenerate. 2008-01-08 Jakub Jelinek * configure.ac: Move futex checking into ../config/futex.m4. * configure: Rebuilt. * aclocal.m4: Rebuilt. * Makefile.in: Rebuilt. * configure.tgt: Rename have_tls to gcc_cv_have_tls to match 2007-10-15 ../config/tls.m4 change. 2007-12-19 Jakub Jelinek PR c++/34513 * testsuite/libgomp.c/pr34513.c: New test. * testsuite/libgomp.c++/pr34513.C: New test. 2007-12-17 Jack Howarth PR target/32765 * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin. 2007-12-04 Jakub Jelinek * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes. 2007-12-03 Jakub Jelinek * testsuite/libgomp.c/private-1.c: New test. 2007-11-29 Andris Pavenis Paolo Bonzini * Makefile.am: Use space as vpath separator. Use 'vpath %' instead of 'VPATH ='. * Makefile.in: Regenerate. 2007-11-23 Matthias Klose * configure.ac: Adjust makeinfo version check. * configure: Regenerate. 2007-11-10 Jakub Jelinek PR fortran/34020 * testsuite/libgomp.fortran/pr34020.f90: New test. 2007-11-06 Jakub Jelinek PR c++/33894 * testsuite/libgomp.c++/atomic-1.C: New test. 2007-10-25 Jakub Jelinek PR libgomp/33275 * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate): Make x and y integers rather than (implicit) reals. Add private (j) clause to the last omp parallel. 2007-10-15 Maciej W. Rozycki * configure: Regenerate following changes to ../config/tls.m4. 2007-09-28 Jakub Jelinek * testsuite/libgomp.fortran/stack.f90: New test. 2007-09-10 Danny Smith * config/mingw32/proc.c: New file. 2007-09-05 Uros Bizjak * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets. (main): Use __get_cpuid to get i386 target fetaures. * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets. (main): Use __get_cpuid to get x86_64 target fetaures. 2007-08-15 Jack Howarth PR target/32765 * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin. * testsuite/libgomp.fortran/crayptr2.f90: Likwise. 2007-07-12 Jakub Jelinek PR fortran/32550 * testsuite/libgomp.fortran/pr32550.f90: New test. * testsuite/libgomp.fortran/crayptr2.f90: New test. 2007-07-05 H.J. Lu * aclocal.m4: Regenerated. 2007-07-05 Tobias Burnus PR fortran/32359 * testsuite/libgomp.fortran/pr32359.f90: New. 2007-07-02 Jakub Jelinek PR libgomp/32468 * sections.c (GOMP_parallel_sections_start): Only decrease number of threads to COUNT if dyn_var is true. * testsuite/libgomp.c/pr32468.c: New test. 2007-07-02 Rainer Orth PR libgomp/26308 * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX. 2007-06-21 Jakub Jelinek PR middle-end/32362 * testsuite/libgomp.c/pr32362-1.c: New test. * testsuite/libgomp.c/pr32362-2.c: New test. * testsuite/libgomp.c/pr32362-3.c: New test. 2007-06-07 Jakub Jelinek * team.c (gomp_team_start): Fix setting up thread_attr stack size. 2007-06-02 Paolo Bonzini * configure: Regenerate. 2007-05-23 Steve Ellcey * Makefile.in: Regenerate. * configure: Regenerate. * aclocal.m4: Regenerate. * testsuite/Makefile.in: Regenerate. 2007-05-04 Jakub Jelinek * config/linux/proc.c: New file. PR libgomp/28482 * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux. 2007-04-19 Daniel Franke * libgomp.texi (GOMP_CPU_AFFINITY): Updated. 2007-04-16 Matthias Klose * configure.tgt (i[456]86-*-linux*): Only add ia32 specific flags if not building with -m64. * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march flag for i?86-*-* targets, if current target matches -m64. 2007-04-14 Steve Ellcey * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS. * Makefile.in: Regenerate. 2007-04-07 John David Anglin PR testsuite/31369 * testsuite/libgomp.c++/c++.exp: Don't use concat when setting ld_library_path. * testsuite/libgomp.fortran/fortran.exp: Likewise. 2007-04-04 Jakub Jelinek * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern decls. (gomp_init_affinity, gomp_init_thread_affinity): New prototypes. * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables. (parse_affinity): New function. (initialize_env): Call it and gomp_init_affinity. * team.c (gomp_team_start): If gomp_cpu_affinity != NULL, create new pthread_attr_t and call gomp_init_thread_affinity on it for each thread before passing the attribute to pthread_create. * config/linux/affinity.c: New file. * config/posix/affinity.c: New file. * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test. * configure: Rebuilt. * config.h.in: Rebuilt. * Makefile.am (libgomp_la_SOURCES): Add affinity.c. * Makefile.in: Rebuilt. 2007-03-23 Andreas Tobler * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for *-*-darwin*. * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library and use it if found. 2007-03-18 Uros Bizjak * testsuite/config/default.exp: New file. * testsuite/lib/libgomp.exp: New file. * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init, libgomp_target_compile, libgomp_option_help, libgomp_option_proc, load_lib *, load_gcc_lib *): Move to libgomp.exp. (libgomp_load): Remove. * testsuite/lib/libgomp.exp (libgomp_init): Compute always_ld_library_path, not ld_library_path. Set additional_flags to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets. (target_compile): Do not call libgomp_init. Append lang_library_path and lang_link_flags to options. * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH here. * testsuite/libgomp.c++/c++.exp: Set ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH here. * testsuite/libgomp.fortran/fortran.exp: Ditto. * testsuite/libgomp.c/atomic-1.c: Set dg-options to "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for CX8 flag. * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3. * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options. * testsuite/libgomp.c/pr29947-1.c: Ditto. * testsuite/libgomp.c/atomic-10.c: Ditto. 2007-03-21 Jakub Jelinek * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add dg-final cleanup-modules line. * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise. * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise. * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise. * testsuite/libgomp.fortran/threadprivate2.f90: Likewise. * testsuite/libgomp.fortran/reduction5.f90: Likewise. * testsuite/libgomp.fortran/threadprivate3.f90: Likewise. * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. 2007-03-18 Andreas Schwab * acinclude.m4: Adjust regular expression for ld version extraction. * configure: Regenerate. 2007-03-01 Brooks Moses * Makefile.am: Add install-pdf target as copied from automake v1.10 rules. * Makefile.in: Regenerate 2007-02-07 Jakub Jelinek PR libgomp/28486 * configure: Regenerate. PR c++/30703 * testsuite/libgomp.c++/pr30703.C: New test. 2007-02-02 Jakub Jelinek Revert: 2006-07-05 Eric Christopher * configure.ac: Depend addition of -pthread on host OS. * configure: Regenerate. 2007-01-31 Ralf Wildenhues * libgomp.texi: Fix spacing after abbreviations. 2007-01-31 Daniel Franke PR libgomp/30546 * configure.ac: Add check for makeinfo * Makefile.am: Redefined target libgomp.info, build libgomp.info only if an appropriate version of makeinfo is found. * aclocal.m4: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. 2007-01-29 Daniel Franke PR libgomp/30540 * libgomp.texi: More about implementation-dependent settings. 2007-01-26 Tobias Burnus * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension. 2007-01-24 Jakub Jelinek PR middle-end/30494 * testsuite/libgomp.c/pr30494.c: New test. 2007-01-15 Tom Tromey * configure: Rebuilt. * configure.ac: Fixed comment. 2007-01-14 Daniel Franke * libgomp.texi: Document implementation specific default values of environment variables. 2006-12-21 Daniel Franke PR libgomp/28209 * libgomp.texi: New file. * configure.ac: Add --enable-generated-files-in-srcdir option. * Makefile.am: Add info, dvi, pdf, html targets. On request, copy files to srcdir. * Makefile.in: Regenerated. * config.h.in: Regenerated. * testsuite/Makefile.in: Regenerated. * NOTES: Removed. 2006-12-04 Daniel Franke PR libgomp/29949 * env.c (omp_set_num_threads): Set illegal thread count to 1. 2006-12-04 Eric Botcazou * configure: Regenerate. 2006-12-04 Jakub Jelinek PR libgomp/29947 * loop.c (gomp_loop_init): Make parameters signed. Set ws->end to start if there shouldn't be any loop iterations. (gomp_loop_ordered_static_start): Remove start == end test. * testsuite/libgomp.c/pr29947-1.c: New test. * testsuite/libgomp.c/pr29947-2.c: New test. 2006-12-02 Eric Botcazou * configure.tgt: Force initial-exec TLS model on Linux only. 2006-11-13 Daniel Jacobowitz * configure: Regenerated. 2006-11-09 Uros Bizjak * env.c (parse_schedule): Reject out of range values. (parse_unsigned_long): Reject out of range, negative or zero values. 2006-10-29 Jakub Jelinek PR fortran/29629 * testsuite/libgomp.fortran/pr29629.f90: New test. 2006-10-24 Eric Botcazou PR libgomp/29494 * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6. * config/posix95: New directory. * config/posix95/omp-lock.h: New file. * config/posix95/lock.c: Likewise. 2006-10-14 Geoffrey Keating * aclocal.m4: Regenerate. * configure: Regenerate. 2006-10-05 Danny Smith * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from '<' to '<='. 2006-10-05 Danny Smith * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test. * configure: Regenerate. * fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias. 2006-09-26 Jakub Jelinek PR middle-end/25261 PR middle-end/28790 * testsuite/libgomp.c/nestedfn-4.c: New test. * testsuite/libgomp.c/nestedfn-5.c: New test. * testsuite/libgomp.fortran/nestedfn3.f90: New test. PR fortran/29097 * testsuite/libgomp.fortran/condinc1.f: New test. * testsuite/libgomp.fortran/condinc2.f: New test. * testsuite/libgomp.fortran/condinc3.f90: New test. * testsuite/libgomp.fortran/condinc4.f90: New test. * testsuite/libgomp.fortran/condinc1.inc: New file. 2006-09-18 Tom Tromey * configure: Rebuilt. 2006-09-13 Joseph S. Myers PR c/28768 PR preprocessor/14634 * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument to AC_DEFINE. * configure: Regenerate. 2006-09-08 Steven G. Kargl * testsuite/libgomp.fortran/reduction3.f90: Change -2147483648 to -huge(i)-1 to avoid overflow. * testsuite/libgomp.fortran/reduction4.f90: Change Z'ffffffff' to not(0) to avoid overflow. 2006-08-26 Joseph S. Myers PR libgomp/25938 * Makefile.am (libsubincludedir): New. (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS. * Makefile.in: Regenerate. 2006-08-17 Jakub Jelinek PR libgomp/28725 * env.c: Include ctype.h. (parse_schedule, parse_unsigned_long, parse_boolean): Allow leading and/or trailing whitespace and compare strings case insensitively. 2006-07-16 Jakub Jelinek PR fortran/28390 * testsuite/libgomp.fortran/pr28390.f: New test. 2006-07-05 Eric Christopher * configure.ac: Depend addition of -pthread on host OS. * configure: Regenerate. 2006-06-21 Jakub Jelinek * critical.c (GOMP_critical_name_start): Fix *pptr initialization when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is defined. 2006-06-20 Jakub Jelinek PR libgomp/26175 PR libgomp/26477 * configure.ac: If neither --enable-linux-futex nor --disable-linux-futex is passed, determine the default by checking for compiling and/or running against NPTL. With --enable-linux-futex, check if SYS_gettid and SYS_futex are defined. * configure: Rebuilt. 2006-06-14 Richard Henderson PR libgomp/28008 * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment. 2006-06-09 Richard Henderson * env.c (gomp_nthreads_var): Change to unsigned long. (gomp_run_sched_chunk): Likewise. (parse_unsigned_long): Rename from parse_num_threads and generalize. (initialize_env): Initialize gomp_thread_attr. * libgomp.h (gomp_nthreads_var): Update decl. (gomp_run_sched_chunk): Likewise. (gomp_thread_attr): Declare. * team.c (gomp_thread_attr): Export. (initialize_team): Don't initialize it. 2006-06-09 Jakub Jelinek PR fortran/27916 * testsuite/libgomp.fortran/pr27916-1.f90: New test. * testsuite/libgomp.fortran/pr27916-2.f90: New test. 2006-06-06 Francois-Xavier Coudert * config/mingw32/time.c: New file. * configure.tgt: Use it. 2006-05-23 Carlos O'Donell * Makefile.am: Add install-html target. Add install-html to .PHONY * Makefile.in: Regenerate. 2006-05-22 John David Anglin PR libgomp/27612 * testsuite/libgomp.c/sections-1.c: Require sync_int_long. * testsuite/libgomp.c/critical-1.c: Likewise. * testsuite/libgomp.c/loop-1.c: Likewise. * testsuite/libgomp.c/loop-2.c: Likewise. * testsuite/libgomp.c/single-1.c: Likewise. * testsuite/libgomp.c/ordered-1.c: Likewise. * testsuite/libgomp.c/ordered-2.c: Likewise. 2006-05-15 Jakub Jelinek PR middle-end/27416 * libgomp.fortran/pr27416-1.f90: New test. 2006-05-03 Jakub Jelinek PR fortran/27395 * testsuite/libgomp.fortran/pr27395-1.f90: New test. * testsuite/libgomp.fortran/pr27395-2.f90: New test. 2006-05-02 Jakub Jelinek PR c++/26943 * testsuite/libgomp.c/pr26943-1.c: New test. * testsuite/libgomp.c/pr26943-2.c: New test. * testsuite/libgomp.c/pr26943-3.c: New test. * testsuite/libgomp.c/pr26943-4.c: New test. * testsuite/libgomp.c++/pr27337.C: Remove barrier. * testsuite/libgomp.c++/pr26943.C: New test. 2006-05-02 Jakub Jelinek PR middle-end/27337 * testsuite/libgomp.c++/pr27337.C: New test. 2006-04-26 Jakub Jelinek PR c/26171 * testsuite/libgomp.c/pr26171.c: New test. 2006-04-25 Richard Henderson PR libgomp/25865 * configure.ac: Use GCC_CHECK_TLS. * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove. * Makefile.in, aclocal.m4, configure: Regenerate. 2006-04-10 Matthias Klose * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib directory names containing underscores. 2006-03-21 Jakub Jelinek PR c++/26691 * testsuite/libgomp.c++/pr26691.C: New test. 2006-03-13 Jakub Jelinek * testsuite/libgomp.fortran/retval2.f90: New test. 2006-03-09 Diego Novillo * testsuite/libgomp.c++: New directory. 2006-02-25 Shantonu Sen * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions. * config/posix/sem.c: Implement the above. 2006-02-25 Andreas Tobler * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and define HAVE_BROKEN_POSIX_SEMAPHORES. * configure: Rebuilt. * config.h.in: Rebuilt. 2006-02-17 Francois-Xavier Coudert PR bootstrap/26161 * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment for the other pthread check. * configure: Regenerate. * config.h.in: Regenerate. 2006-02-15 Jakub Jelinek PR libgomp/25938 PR libgomp/25984 * Makefile.am (fincludedir): New variable. (nodist_include_HEADERS): Remove Fortran files. (nodist_finclude_HEADERS): New variable. * Makefile.in: Regenerated. 2006-02-13 Jakub Jelinek * testsuite/libgomp.fortran/vla7.f90: Add -w to options. Remove tests for returning assumed character length arrays. 2006-02-12 Roger Sayle John David Anglin PR libgomp/25936 * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems. 2006-02-08 Ulrich Weigand * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library. 2006-02-07 Eric Botcazou * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related part of LD_LIBRARY_PATH manually. 2006-02-03 H.J. Lu PR libgomp/25852 * testsuite/lib/libgomp-dg.exp (blddir): Set it in libgomp_init. 2005-01-25 Paolo Bonzini PR libgomp/25884 * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove. * configure.ac (PERL): Don't set. (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here. (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE, OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions. * omp.h.in: Wrap the new configure substitutions with @ characters. * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise. * aclocal.m4, configure, Makefile.in: Regenerate. * mkomp_h.pl: Delete. 2005-01-24 Paolo Bonzini PR libgomp/25259 * configure.ac: Use GCC_HEADER_STDINT. * libgomp.h: Include gstdint.h. * libgomp_f.h.in: Don't include stdint.h or inttypes.h. * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild. 2006-01-24 Richard Henderson PR libgomp/25942 * configure.ac: Add AM_MAINTAINER_MODE. * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild. 2006-01-24 Diego Novillo * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * aclocal.m4: Regenerate. 2006-01-23 Andreas Tobler * config/posix/proc.c: Conditional include of sys/loadavg.h for Solaris. * configure.ac: Add check for loadavg.h. (link_gomp): Adjust comment. * configure: Regenerate. * config.h.in: Regenerate. 2006-01-21 Steve Ellcey PR libgomp/25877 * configure.ac: Remove check for alloca.h. * configure: Regenerate. * config.h.in: Regenerate. * libgomp.h: define gomp_alloca to be __builtin_alloca. * team.c: Remove use of alloca.h. Call gomp_alloca instead of alloca. 2006-01-20 Steve Ellcey PR libgomp/25877 * team.c: Add include of alloca.h. * configure.ac: Add check for alloca.h. * configure: Regenerate. * config.h.in: Regenerate. 2006-01-17 Jakub Jelinek PR fortran/25219 * testsuite/libgomp.fortran/pr25219.f90: New test. 2005-12-05 Uros Bizjak * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c, testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C, testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C, testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C, testsuite/libgomp.fortran/threadprivate1.f90, testsuite/libgomp.fortran/threadprivate2.f90, testsuite/libgomp.fortran/threadprivate3.f90, testsuite/libgomp.fortran/appendix-a/a.22.7.f9, testsuite/libgomp.fortran/appendix-a/a.22.8.f9, testsuite/libgomp.fortran/omp_parse3.f90: Change required effective-target to TLS runtime. * testsuite/libgomp.fortran/pr25162.f: Require effective-target TLS runtime. 2005-12-01 Jakub Jelinek * testsuite/libgomp.fortran/nestedfn2.f90: New test. * testsuite/libgomp.c/nestedfn-3.c: New test. 2005-11-30 Jakub Jelinek PR fortran/25162 * testsuite/libgomp.fortran/pr25162.f: New test. 2005-11-28 Jakub Jelinek * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed. 2005-11-25 Jakub Jelinek * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c, libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in, omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c, single.c, team.c, work.c, config/linux/alpha/futex.h, config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h, config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h, config/linux/powerpc/futex.h, config/linux/s390/futex.h, config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h, config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h, config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c, config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update FSF address. 2005-11-18 Jakub Jelinek * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS to nodist_noinst_HEADERS. * Makefile.in: Rebuilt. * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct, add integer count field. * config/posix/lock.c (omp_destroy_nest_lock): Adjust for omp_nest_lock_t type change. (omp_init_nest_lock): Likewise. Initialize count to 0. (omp_set_nest_lock): Adjust for omp_nest_lock_t type change. Increment count. (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change. Decrement count. (omp_test_nest_lock): Adjust for omp_nest_lock_t type change. Increment count if successful and return the new nesting level. * config/linux/lock.c (omp_test_nest_lock): Return new nesting level. * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type. * testsuite/libgomp.c/lib-1.c: New test. * testsuite/libgomp.fortran/lib1.f90: New test. * testsuite/libgomp.fortran/lib2.f: New test. * testsuite/libgomp.fortran/lib3.f: New test. 2005-11-17 Richard Henderson PR 24845 * Makefile.am (nodist_toolexeclib_HEADERS): New. * configure.ac (link_gomp): New. Substitute it. (AC_CONFIG_FILES): Add libgomp.spec. * libgomp.spec.in: New file. * Makefile.in, testsuite/Makefile.in, configure: Rebuild. * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags. 2005-11-18 Jakub Jelinek * testsuite/libgomp.fortran/reduction1.f90: Adjust for reduction(-:var) behaving the same as reduction(+:var). * testsuite/libgomp.c/reduction-4.c: New test. 2005-11-15 Uros Bizjak * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c, testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C, testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C, testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C, testsuite/libgomp.c++/pr24455.C, testsuite/libgomp.fortran/threadprivate1.f90, testsuite/libgomp.fortran/threadprivate2.f90, testsuite/libgomp.fortran/threadprivate3.f90, testsuite/libgomp.fortran/appendix-a/a.22.7.f9, testsuite/libgomp.fortran/appendix-a/a.22.8.f9, testsuite/libgomp.fortran/omp_parse3.f90: Require effective-target TLS. 2005-11-14 Diego Novillo * HEADER: Remove. 2005-11-13 Jakub Jelinek PR libgomp/24797 * team.c (initialize_team): Pass NULL rather than free as pthread_key_create destructor. Initialize thread specific data pointer in initial thread to a static local variable rather than malloced memory. 2005-11-11 Uros Bizjak * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append its location to ld_library_path. 2005-11-10 Diego Novillo * testsuite/libgomp.c/c.exp: Rename from dg.exp. 2005-11-10 Diego Novillo * testsuite/libgomp.c: Rename from libgomp.dg. 2005-11-09 Diego Novillo * testsuite/libgomp.c++/pr24455.C: Add copyin clause for threadprivate variable 'i'. 2005-11-09 Jakub Jelinek * config/linux/s390/futex.h: New file. * configure.tgt: Use it. * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization before the parallel. 2005-11-08 Jakub Jelinek PR c++/24734 * testsuite/libgomp.c++/master-1.C: New test. 2005-11-07 Jakub Jelinek * testsuite/libgomp.dg/copyin-3.c: New test. 2005-11-07 Jakub Jelinek * testsuite/libgomp.fortran/retval1.f90: New test. * testsuite/libgomp.fortran/vla7.f90: New test. 2005-11-06 Jakub Jelinek * testsuite/libgomp.fortran/vla2.f90: New test. * testsuite/libgomp.fortran/vla3.f90: New test. * testsuite/libgomp.fortran/vla4.f90: New test. * testsuite/libgomp.fortran/vla5.f90: New test. * testsuite/libgomp.fortran/vla6.f90: New test. 2005-11-01 Jakub Jelinek * config/linux/sparc/futex.h: New file. * configure.tgt: Use it. * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing. * critical.c: Include stdlib.h. * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about ignoring return value. * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after LIBGOMP_CHECK_SYNC_BUILTINS check. * configure: Rebuilt. 2005-10-31 Jakub Jelinek * testsuite/libgomp.fortran/vla1.f90: New test. 2005-10-31 Richard Henderson * testsuite/libgomp.fortran/character2.f90: Fix race condition setting 's' in different threads. 2005-10-31 Jakub Jelinek * libgomp.h (attribute_hidden, ialias): Define. * config/posix/proc.c (omp_get_num_procs): Add ialias. * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise. * config/posix/lock.c (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_test_lock, omp_test_nest_lock): Likewise. * config/linux/lock.c (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_test_lock, omp_test_nest_lock): Likewise. * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads, omp_get_dynamic, omp_get_nested): Likewise. * parallel.c (omp_get_num_threads, omp_get_max_threads, omp_get_thread_num, omp_in_parallel): Likewise. * fortran.c (ialias_redirect): Define. (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_test_lock, omp_test_nest_lock, omp_set_dynamic, omp_set_nested, omp_set_num_threads, 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_wtick, omp_get_wtime): Add ialias_redirect. 2005-10-30 Jakub Jelinek * fortran.c: Include stdlib.h. 2005-10-29 Jakub Jelinek * Makefile.am (env.o, env.lo): Depend on libgomp_f.h. * Makefile.in: Regenerated. 2005-10-28 Jakub Jelinek * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE. * libgomp_f.h.in (omp_check_defines): New function. * env.c: Include libgomp_f.h. (initialize_env): Call omp_check_defines. * testsuite/libgomp.dg/copyin-2.c: New test. * testsuite/libgomp.c++/copyin-2.C: New test. * testsuite/libgomp.fortran/threadprivate3.f90: New test. * testsuite/libgomp.fortran/threadprivate2.f90: New test. * testsuite/libgomp.fortran/sharing2.f90: New test. * testsuite/libgomp.dg/copyin-1.c: New test. * testsuite/libgomp.c++/copyin-1.C: New test. 2005-10-26 Jakub Jelinek * testsuite/libgomp.fortran/crayptr1.f90: New test. * testsuite/libgomp.fortran/workshare1.f90: New test. * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile only test. * libgomp.fortran/sharing1.f90: New test. 2005-10-24 Jakub Jelinek PR c++/24502 * testsuite/libgomp.c++/loop-7.C: New test. * testsuite/libgomp.dg/nestedfn-2.c: New test. * testsuite/libgomp.dg/nestedfn-1.c: New test. * testsuite/libgomp.fortran/reduction6.f90: New test. * testsuite/libgomp.fortran/nestedfn1.f90: New test. 2005-10-23 Richard Henderson * testsuite/libgomp.c++/ctor-1.C: New. * testsuite/libgomp.c++/ctor-2.C: New. * testsuite/libgomp.c++/ctor-3.C: New. * testsuite/libgomp.c++/ctor-4.C: New. * testsuite/libgomp.c++/ctor-5.C: New. * testsuite/libgomp.c++/ctor-6.C: New. * testsuite/libgomp.c++/ctor-7.C: New. * testsuite/libgomp.c++/ctor-8.C: New. * testsuite/libgomp.c++/ctor-9.C: New. 2005-10-21 Diego Novillo PR 24455 * testsuite/libgomp.c++/pr24455-1.C: New test. * testsuite/libgomp.c++/pr24455.C: New test. * testsuite/libgomp.dg/pr24455-1.c: New test. * testsuite/libgomp.dg/pr24455.c: New test. 2005-10-20 Richard Henderson * testsuite/libgomp.c++/loop-6.C: New. * testsuite/libgomp.dg/loop-3.c: New. 2005-10-20 Jakub Jelinek * testsuite/libgomp.fortran/jacobi.f: Don't make i and j explicitly private. * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i explicitly shared. 2005-10-19 Diego Novillo * testsuite/libgomp.fortran/jacobi.f: New test. 2005-10-19 Richard Henderson * configure.tgt (i?86-linux): Default to with_arch instead of CFLAGS. Add -mtune to match target_cpu. (x86_64-linux): Tune to i686. * fortran.c (omp_test_nest_lock_): Fix typo. 2005-10-19 Jakub Jelinek * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next, gomp_ordered_sync): Do nothing if team->nthreads == 1. * testsuite/libgomp.dg/ordered-3.c: New test. * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort. Remove volatile keyword. * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables in COMMON block to avoid warnings on 64-bit targets. 2005-10-18 Diego Novillo * testsuite/libgomp.dg/shared-3.c: New test. 2005-10-18 Jakub Jelinek * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed. * testsuite/libgomp.fortran/reduction5.f90: New test. 2005-10-18 Jakub Jelinek * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to dg-options. * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable flush loop now that __sync_synchronize has proper memory barrier. * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo. Add -ffixed-form to dg-options. 2005-10-17 Diego Novillo * testsuite/libgomp.fortran/fortran.exp: Also gather tests from subdirectories. * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test. * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test. 2005-10-17 Jakub Jelinek * testsuite/libgomp.dg/dg.exp: Only unset lang_* if lang_library_path exists. Use find instead of glob to gather tests. * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed. 2005-10-17 Diego Novillo * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test. * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test. * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file. 2005-10-15 Jakub Jelinek * testsuite/libgomp.dg/vla-1.c: New test. * testsuite/libgomp.fortran/reference2.f90: New test. * testsuite/libgomp.fortran/character2.f90: Remove explicit declaration of omp_get_thread_num. * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add use omp_lib. * testsuite/libgomp.fortran/reduction1.f90: New test. * testsuite/libgomp.fortran/reduction2.f90: New test. * testsuite/libgomp.fortran/reduction3.f90: New test. * testsuite/libgomp.fortran/reduction4.f90: New test. 2005-10-13 Richard Henderson * Makefile.am (libgomp_la_SOURCES): Add bar.c. * Makefile.in: Regenerate. * barrier.c (GOMP_barrier): Use gomp_barrier_wait. * libgomp.h: Include bar.h. (struct gomp_barrier): Remove. (struct gomp_team): Add barrier. Replace master_barrier with master_release. Replace threads with ordered_release. (struct gomp_thread): Replace barrier with release. * ordered.c (gomp_ordered_first): Update for ordered_release change. (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init, gomp_ordered_static_next, gomp_ordered_sync): Likewise. * single.c (GOMP_single_copy_start): Use gomp_barrier_wait. (GOMP_single_copy_end): Likewise. * team.c (gomp_threads_dock): New. (gomp_barrier_init, gomp_barrier_destroy): Remove. (gomp_thread_start): Use gomp_barrier_wait. (new_team, free_team): Update for gomp_team changes. (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit. (gomp_team_end): Use gomp_barrier_wait. (initialize_team): Update for gomp_thread changes. * work.c (gomp_work_share_end): Use gomp_barrier_wait_start. (gomp_work_share_end_nowait): Use atomic ops when available. * config/linux/bar.c, config/linux/bar.h: New files. * config/posix/bar.c, config/posix/bar.h: New files. 2005-10-13 Jakub Jelinek * single.c (GOMP_single_copy_end): Don't segfault if team is NULL. * testsuite/libgomp.dg/single-2.c: New test. * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file, lang_link_flags): Unset, so that they aren't inherited from previously sourced *.exp. * testsuite/libgomp.fortran/threadprivate1.f90: New test. 2005-10-12 Richard Henderson * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel. (libgomp_init): Use lang_test_file, lang_library_path, and lang_link_flags, set by the subdirectory files. Add -fopenmp here. * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New. (lang_test_file, lang_link_flags): New. (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove. * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C, testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C, testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C, testsuite/libgomp.c++/parallel-1.C, testsuite/libgomp.c++/reduction-1.C, testsuite/libgomp.c++/reduction-2.C, testsuite/libgomp.c++/reduction-3.C, testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C, testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C, testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C: New files, largely cribbed from the C testsuite. 2005-10-12 Jakub Jelinek * testsuite/libgomp.fortran/character1.f90: New test. * testsuite/libgomp.fortran/character2.f90: New test. * testsuite/libgomp.dg/nested-1.c: New test. * testsuite/libgomp.dg/nested-2.c: New test. * testsuite/libgomp.fortran/do1.f90: New test. * testsuite/libgomp.fortran/do2.f90: New test. * testsuite/libgomp.fortran/reference1.f90: New test. 2005-10-11 Jakub Jelinek * testsuite/libgomp.dg/reduction-1.c: New test. * testsuite/libgomp.dg/reduction-2.c: New test. * testsuite/libgomp.dg/reduction-3.c: New test. 2005-10-10 Jakub Jelinek * testsuite/libgomp.dg/atomic-1.c: New test. * testsuite/libgomp.dg/atomic-2.c: New test. 2005-10-09 Richard Henderson * critical.c (atomic_lock): New. (initialize_critical): Initialize it. (GOMP_atomic_start, GOMP_atomic_end): New. * libgomp.map: Export them. * libgomp_g.h: Declare them. * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite. 2005-10-02 Richard Henderson * configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror to XCFLAGS instead of CFLAGS. 2005-09-30 Richard Henderson * configure.ac: Determine whether -pthread or -lpthread is needed. * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread. * Makefile.in, configure: Rebuild. 2005-09-28 Richard Henderson * testsuite/libgomp.dg/omp-loop03.c: Fix return code. * testsuite/libgomp.dg/omp-single-3.c: New test. 2005-09-28 Diego Novillo * testsuite/libgomp.dg/omp-single-2.c: New test. * testsuite/libgomp.dg/shared-2.c: Fix return code. 2005-09-27 Richard Henderson * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier. * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule. 2005-09-27 Jakub Jelinek * testsuite/libgomp.dg/omp-loop03.c: New test. 2005-09-27 Diego Novillo * testsuite/libgomp.dg/omp-parallel-for.c: New test. 2005-09-27 Diego Novillo * testsuite/libgomp.dg/omp-single-1.c: New test. * testsuite/libgomp.dg/shared-1.c: Return 0. Add prototype for abort. * testsuite/libgomp.dg/shared-2.c: Likewise. 2005-09-26 Jakub Jelinek * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming constructs. 2005-09-26 Diego Novillo * testsuite/libgomp.dg/shared-1.c: New test. * testsuite/libgomp.dg/shared-2.c: New test. 2005-09-24 Richard Henderson * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error. 2005-09-24 Richard Henderson * iter.c (gomp_iter_static_next): Round up when computing number of iterations. Don't bother distributing a remainder equally. * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main. Don't call srand. Zero b before testing. (main): New. 2005-09-24 Jakub Jelinek * testsuite/libgomp.fortran/omp_atomic1.f90: New test. * testsuite/libgomp.fortran/omp_atomic2.f90: New test. 2005-09-23 Jakub Jelinek * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do without !$omp end do, followed immediately by subroutine end. 2005-09-23 Diego Novillo * testsuite/libgomp.dg/omp-parallel-if.c: New test. 2005-09-22 Richard Henderson * critical.c (GOMP_critical_name_start): Change argument to void**. Reuse the pointer space if the mutex fits. (GOMP_critical_name_end): Likewise. (initialize_critical): Don't define if GOMP_MUTEX_INIT_0. * libgomp_g.h (GOMP_critical_name_start): Update decl. (GOMP_critical_name_end): Likewise. * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New. * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New. 2005-09-20 Richard Henderson * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New. (create_lock_lock): New. (initialize_critical): Initialize it. * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New. * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare. 2005-09-20 Diego Novillo * testsuite/libgom.dg/omp-loop01.c: Include stdio.h. 2005-09-20 Diego Novillo * testsuite/libgomp.dg/omp-loop01.c: New test. * testsuite/libgomp.dg/omp-loop02.c: New test. 2005-09-20 Jakub Jelinek * configure.ac (AC_PROG_FC): Add. (USE_FORTRAN): New automake conditional. * configure: Rebuilt. * Makefile.am (libgomp_la_SOURCES): Add fortran.c. (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h. If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod. Add rules to build them. * Makefile.in: Rebuilt. * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and OMP_NEST_LOCK_KIND. * libgomp.map: Add Fortran wrappers. * libgomp_f.h.in: New file. * omp_lib.h.in: New file. * omp_lib.f90.in: New file. * fortran.c: New file. * testsuite/lib/libgomp-dg.exp: Load a few more .exp files. Append libgfortran directory to LD_LIBRARY_PATH if it exists. Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if libgfortran has been built. * testsuite/libgomp.fortran/fortran.exp: New file. * testsuite/libgomp.fortran/omp_cond1.f: New test. * testsuite/libgomp.fortran/omp_cond2.f: New test. * testsuite/libgomp.fortran/omp_cond3.F90: New test. * testsuite/libgomp.fortran/omp_cond4.F90: New test. * testsuite/libgomp.fortran/omp_hello.f: New test. * testsuite/libgomp.fortran/omp_orphan.f: New test. * testsuite/libgomp.fortran/omp_parse1.f90: New test. * testsuite/libgomp.fortran/omp_parse2.f90: New test. * testsuite/libgomp.fortran/omp_parse3.f90: New test. * testsuite/libgomp.fortran/omp_parse4.f90: New test. * testsuite/libgomp.fortran/omp_reduction.f: New test. * testsuite/libgomp.fortran/omp_workshare1.f: New test. * testsuite/libgomp.fortran/omp_workshare2.f: New test. 2005-08-30 Richard Henderson * loop.c (GOMP_loop_static_start): Provide fallback wrapper function for when aliases are not usable. (GOMP_loop_dynamic_start, GOMP_loop_guided_start, GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start, GOMP_loop_ordered_guided_start, GOMP_loop_static_next, GOMP_loop_dynamic_next, GOMP_loop_guided_next, GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next, GOMP_loop_ordered_guided_next): Likewise. * ordered.c (GOMP_ordered_start): Likewise. 2005-08-01 Diego Novillo * testsuite/libgomp.dg/dg.exp: Use -O2 for now. * testsuite/libgomp.dg/omp_hello.c: Fix return code * testsuite/libgomp.dg/omp_matvec.c: Likewise. * testsuite/libgomp.dg/omp_orphan.c: Likewise * testsuite/libgomp.dg/omp_reduction.c: Likewise * testsuite/libgomp.dg/omp_workshare1.c: Likewise * testsuite/libgomp.dg/omp_workshare2.c: Likewise * testsuite/libgomp.dg/omp_workshare3.c: Likewise * testsuite/libgomp.dg/omp_workshare4.c: Likewise 2005-07-07 Eric Christopher Diego Novillo * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS. * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix up code. * testsuite/libgomp.dg/omp_matvec.c: Ditto. * testsuite/libgomp.dg/omp_orphan.c: Ditto. * testsuite/libgomp.dg/omp_reduction.c: Ditto. * testsuite/libgomp.dg/omp_workshare1.c: Ditto. * testsuite/libgomp.dg/omp_workshare2.c: Ditto. * testsuite/libgomp.dg/omp_workshare3.c: Ditto. * testsuite/libgomp.dg/omp_workshare4.c: Ditto. 2005-06-13 Diego Novillo * TOPLEVEL.patch: Remove. 2005-05-16 Richard Henderson * configure.ac: Test for clock_gettime. * config.h.in, configure: Rebuild. * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern. (omp_get_wtime): Use clock_gettime if available. (omp_get_wtick): Use clock_getres if available. 2005-05-11 Richard Henderson * config/linux/ia64/futex.h: New file. * configure.tgt: Use it. * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline. 2005-05-07 Richard Henderson * config/linux/powerpc/futex.h: New file. * configure.tgt: Use it. * config/linux/i486/futex.h: Merge ... * config/linux/x86_64/futex.h: ... into ... * config/linux/x86/futex.h: ... here. * configure.tgt: Update to match. 2005-05-06 Richard Henderson * config/linux/alpha/futex.h: Conditionally define SYS_futex. * config/linux/i486/futex.h: Likewise. * config/linux/x86_64/futex.h: Likewise. * config/linux/lock.c: New file. * config/linux/omp-lock.h: New file. * critical.c, env.h: Don't include omp.h * config/posix/lock.c: Include libgomp.h instead of omp.h. * config/posix/time.c: Likewise. * config/posix/omp-lock.h: New file. * libgomp.h: Include omp-lock.h and omp.h. * Makefile.am (nodist_include_HEADERS): New. (omp.h): New rule. * configure.ac (PERL): New. * mkomp_h.pl: New file. * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t with templates. * Makefile.in, configure, testsuite/Makefile.in: Rebuild. * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into build directory. Re-add -march=i486 hack. * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove. (libgomp_link_flags): Remove. (libgomp_initialized): Remove. (libgomp_init): Don't protect from reinitialization. Copy code from libstdc++ for getting the multilib set correctly. 2005-05-05 Richard Henderson * config/linux/alpha/futex.h: New file. * configure.tgt (alpha*-*-linux*): Use it. * config/posix/mutex.c: New file. * config/posix/sem.c: Use libgomp.h. * configure.tgt (x86_64-linux): Also test CC for -m32. * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage. * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add / after $gccpath. * Makefile.am (SUBDIRS): New. (libgomp_la_LDFLAGS): Add -lpthread. * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies. * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild. * libgomp_g.h: New file. * libgomp.h: Split out all public declarations to libgomp_g.h. Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN. * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN. * config/linux/sem.h: Likewise. * config/posix/sem.h: Likewise. * Makefile.am (AM_LDFLAGS): New. (libgomp_version_script): Split out from ... (libgomp_la_LDFLAGS): ... here. (libgomp_version_info): New. * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE. (LIBGOMP_ENABLE): New. (LIBGOMP_CHECK_LINKER_FEATURES): New. (LIBGOMP_ENABLE_SYMVERS): New. * configure.ac (AC_INIT): Version 1.0. (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE. (enable-linux-futex): Likewise. Rename from enable-futex. (libtool_VERSION): New. (LIBGOMP_ENABLE_SYMVERS): Use it. * configure.tgt: Check with_gnu_ld wrt have_tls optimizations. * Makefile.in, aclocal.m4, configure: Rebuild. * config/linux/mutex.c: Include libgomp.h instead of mutex.h. (gomp_mutex_unlock_slow): Fix typo. * config/linux/sem.c: Similarly. (gomp_sem_post_slow): Fix typo. * config/linux/sem.h (gomp_sem_post_slow): Fix typo. * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code. [__PIC__] (sys_futex0): Don't use tmp output in asm. * Makefile.am (AM_CFLAGS): Expand with XCFLAGS. (libgomp_la_LDFLAGS): Add top_srcdir to path. * acinclude.m4: Copy libtool.m4 stuff from libgfortran. * configure.ac: Check for getloadavg. Substitute XCFLAGS and XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS. * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and LDFLAGS. Pull enable_futex check to top-level. * libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN. * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate. First attempt at real configury. * Makefile, config.h: Remove file. * Makefile.am, Makefile.in: New file. * acinclude.m4 aclocal.m4: New file. * configure.ac, configure.tgt, configure: New file. * config/posix/lock.c: Rename from sys-lock.c. * config/posix/mutex.h: Rename from sys-mutex.h. * config/posix/sem.c: Rename from sys-sem.c. * config/posix/sem.h: Rename from sys-sem.h. * config/posix/proc.c: Rename from sys-proc.c. * config/posix/time.c: Rename from sys-proc.c. * config/linux/mutex.c: New file. * config/linux/mutex.h: New file. * config/linux/sem.c: New file. * config/linux/sem.h: New file. * config/linux/i486/futex.h: New file. * config/linux/x86_64/futex.h: New file. 2005-05-04 Richard Henderson * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New. * libgomp.h: Declare them. * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start, gomp_loop_dynamic_next, gomp_loop_guided_next): Use them. 2005-05-04 Richard Henderson * libgomp-1 code drop 2005-05-04 Richard Henderson * iter.c (gomp_iter_static_next): Return tri-state on 0. * ordered.c (gomp_ordered_static_next): Remove not_last argument. * libgomp.h (struct gomp_team_state): Make static_trip unsigned. (gomp_iter_static_next): Update. (gomp_ordered_static_next): Update. * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next. (gomp_loop_ordered_static_start): Likewise. Exit early for a totally empty range. (gomp_loop_ordered_static_next): Refine test for calling gomp_ordered_static_next. * testsuite/ordered-1.c: Add case for more threads than iterations. * iter.c (gomp_iter_runtime_next_locked): Remove. * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start, gomp_loop_guided_start, gomp_loop_ordered_static_start, gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start, gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next, gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next, gomp_loop_ordered_guided_next): Downcase name, make static, add an external alias with the old name. (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start, GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a switch and call one of the above static functions. * libgomp.h: Update. * work.c (gomp_work_share_start): Lock the mutex for !first too. * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start, GOMP_loop_guided_start, GOMP_loop_runtime_start, GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start, GOMP_loop_ordered_guided_start): Update to match. * sections.c (GOMP_sections_start): Likewise. * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise. * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//. Use bounds check instead of modulus. (gomp_ordered_sync): Split out of GOMP_ordered_start. (gomp_ordered_last): Don't sync with ordered_owner here. (gomp_ordered_next): Likewise. (gomp_ordered_static_loop_next): Likewise. * loop.c, libgomp.h: Update to match. * libgomp.h (GOMP_barrier): Declare. * testsuite/barrier-1.c: New file. * testsuite/critical-1.c: New file. * testsuite/ordered-2.c: New file. * testsuite/ordered-1.c: New file. * testsuite/sections-1.c: New file. * testsuite/single-1.c: New file. * testsuite/Makefile (TESTS): Add them. 2005-05-04 Richard Henderson * libgomp.h (struct gomp_work_share): Add ordered_owner. * loop.c (GOMP_loop_static_start): If not the startup thread, acquire the mutex to wait for initialization complete. (GOMP_loop_ordered_static_start): Likewise. (GOMP_loop_ordered_runtime_start): Likewise. (GOMP_loop_ordered_static_first): Remove. (GOMP_loop_ordered_dynamic_first): Remove. (GOMP_loop_ordered_guided_first): Remove. (GOMP_loop_ordered_runtime_first): Remove. * ordered.c (gomp_ordered_loop_first): Post to own release when we're the first thread. (gomp_ordered_loop_last): Wait on release if not owner. (gomp_ordered_loop_next): Likewise. (gomp_ordered_static_loop_init): New. (gomp_ordered_static_loop_next): Use ordered_owner. (GOMP_ordered_start): Likewise. * work.c (gomp_new_work_share): Initialize ordered_owner. 2005-05-03 Richard Henderson * Makefile (OPT): New. (CFLAGS): Use it. * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New. * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New. * libgomp.h, libgomp.map, NOTES: Update to match. * team.c (struct gomp_thread_start_data): Remove ts, fn, data. Add initialized and thr members. (gomp_thread_start): Pause when initially spawned to wait for the whole team to be created. (gomp_team_start): Release team members at the end. * testsuite/loop-1.c (N): New. Use it instead of hardcoded 100. (f_foo_1): Use GOMP_loop_end. (f_foo_2): Use GOMP_loop_end_nowait. * testsuite/loop-2.c: New file. * testsuite/Makefile (TESTS): Add it. 2005-05-03 Richard Henderson * iter.c (gomp_iter_static_next): Fix overflow check typo. (gomp_iter_dynamic_next_locked): Fix overflow check thinko. * team.c (new_team): Initialize oldest_live_gen to 1 if no initial work_share. * testsuite/Makefile: New file. * testsuite/loop-1.c: New file. 2005-05-03 Richard Henderson Initial implementation and checkin. Copyright (C) 2005-2020 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.