+2020-05-19 Jakub Jelinek <jakub@redhat.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ PR bootstrap/95147
+ * configure: Regenerated.
+
+2020-05-14 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR libfortran/95119
+ * testsuite/libgomp.fortran/close_errors_1.f90: New test.
+
+2020-05-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure: Regenerated.
+
+2020-05-14 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/libgomp.c-c++-common/target-40.c: New test.
+
+2020-05-13 Tobias Burnus <tobias@codesourcery.com>
+
+ 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 <jakub@redhat.com>
+
+ * testsuite/libgomp.c/target-39.c: New test.
+
+2020-04-29 Thomas Schwinge <thomas@codesourcery.com>
+
+ * 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 <ams@codesourcery.com>
+
+ 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 <thomas@codesourcery.com>
+
+ PR middle-end/94635
+ * testsuite/libgomp.fortran/target-enter-data-2.F90: Add 'dg-do
+ run'.
+
+2020-04-20 Tobias Burnus <tobias@codesourcery.com>
+
+ PR middle-end/94120
+ * testsuite/libgomp.oacc-c++/declare-pr94120.C: Fix 'declare copy(out)'
+ test case.
+
+2020-04-17 Tobias Burnus <tobias@codesourcery.com>
+
+ PR middle-end/94635
+ * testsuite/libgomp.fortran/target-enter-data-2.F90: New.
+
+2020-04-13 Thomas Schwinge <thomas@codesourcery.com>
+
+ 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 <julian@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ 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 <thomas@codesourcery.com>
+
+ * testsuite/libgomp.fortran/target-enter-data-1.f90: Add 'dg-do
+ run'.
+
+2020-04-08 Tobias Burnus <tobias@codesourcery.com>
+
+ PR middle-end/94120
+ * libgomp.oacc-c++/declare-pr94120.C: New.
+
+2020-04-06 Maciej W. Rozycki <macro@wdc.com>
+
+ * 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 <thomas@codesourcery.com>
+
+ 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 <tobias@codesourcery.com>
+
+ * 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 <tobias@codesourcery.com>
+
+ PR libgomp/81689
+ * testsuite/libgomp.c/target-link-1.c: Remove xfail.
+
+2020-03-20 Tobias Burnus <tobias@codesourcery.com>
+
+ PR libgomp/94251
+ * target.c (gomp_load_image_to_device): Fix link
+ variable handling.
+
+2020-03-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/93931
+ * testsuite/libgomp.c++/pr93931.C: New test.
+
+2020-03-19 Tobias Burnus <tobias@codesourcery.com>
+
+ * testsuite/libgomp.c-c++-common/function-not-offloaded.c: Add
+ dg-allow-blank-lines-in-output.
+
+2020-03-18 Julian Brown <julian@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+
+ * testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Really make
+ it work concurrently.
+
+2020-03-18 Tobias Burnus <tobias@codesourcery.com>
+
+ * 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 <jakub@redhat.com>
+
+ PR middle-end/93566
+ * testsuite/libgomp.c/pr93566.c: New test.
+
+2020-02-21 Frederik Harwath <frederik@codesourcery.com>
+
+ * 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 <tobias@codesourcery.com>
+
+ * .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 <frederik@codesourcery.com>
+
+ 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 <frederik@codesourcery.com>
+
+ * 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 <jakub@redhat.com>
+
+ * testsuite/libgomp.c/target-38.c: New test.
+
+2020-02-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/93515
+ * testsuite/libgomp.c-c++-common/pr93515.c: New test.
+
+2020-02-05 Tobias Burnus <tobias@codesourcery.com>
+
+ * 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 <ams@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+
+ * 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 <kcy@codesourcery.com>
+
+ * 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 <tobias@codesourcery.com>
+
+ 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 <frederik@codesourcery.com>
+
+ * oacc-init.c (name_of_acc_device_t): Handle acc_device_radeon.
+
+2020-01-29 Frederik Harwath <frederik@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+
+ * 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 <macro@wdc.com>
+
+ * configure.ac: Handle `--with-toolexeclibdir='.
+ * Makefile.in: Regenerate.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+2020-01-24 Frederik Harwath <frederik@codesourcery.com>
+
+ * 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 <ams@codesourcery.com>
+
+ * plugin/plugin-gcn.c (parse_target_attributes): Use correct mask for
+ the device id.
+
+2020-01-20 Andrew Stubbs <ams@codesourcery.com>
+
+ * 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 <ams@codesourcery.com>
+
+ * 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 <thomas@codesourcery.com>
+
+ * 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)
+ <GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT>: Clean up/elaborate code
+ paths.
+
+2020-01-10 Jakub Jelinek <jakub@redhat.com>
+
+ 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 <tobias@codesourcery.com>
+
+ * libgomp.texi: Fix typos, use https.
+
+2020-01-03 Tobias Burnus <tobias@codesourcery.com>
+
+ * 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 <jakub@redhat.com>
+
+ Update copyright years.
+
+ * libgomp.texi: Bump @copying's copyright year.
+
+2019-12-31 Ayush Mittal <ayush.m@samsung.com>
+
+ PR libgomp/93065
+ * oacc-init.c (goacc_runtime_deinitialize): New function.
+
+2019-12-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/93074
+ * plugin/cuda/cuda.h (cuDeviceGetName, cuDriverGetVersion): Declare.
+ (cuDeviceTotalMem, cuMemGetInfo): Likewise. Define to *_v2.
+
+2019-12-22 Maciej W. Rozycki <macro@codesourcery.com>
+ Frederik Harwath <frederik@codesourcery.com>
+ Thomas Schwinge <tschwinge@codesourcery.com>
+
+ * 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 <macro@wdc.com>
+
+ * testsuite/libgomp-test-support.exp.in (GCC_UNDER_TEST): New
+ variable.
+
+2019-12-21 Thomas Schwinge <thomas@codesourcery.com>
+
+ * target.c (gomp_map_vars_internal): Restore 'omp declare target
+ link' handling.
+
+2019-12-19 Julian Brown <julian@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * 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 <jakub@redhat.com>
+
+ 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 <julian@codesourcery.com>
+ Maciej W. Rozycki <macro@codesourcery.com>
+ Tobias Burnus <tobias@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * 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 <thomas@codesourcery.com>
+
+ * 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 <tobias@codesourcery.com>
+
+ PR middle-end/86416
+ * testsuite/libgomp.c/pr86416-1.c: New.
+ * testsuite/libgomp.c/pr86416-2.c: New.
+
+2019-12-17 Tobias Burnus <tobias@codesourcery.com>
+
+ * 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 <julian@codesourcery.com>
+
+ 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 <ams@codesourcery.com>
+
+ * 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 <tobias@codesourcery.com>
+
+ * 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 <jakub@redhat.com>
+
+ PR fortran/92899
+ * testsuite/libgomp.fortran/atomic1.f90: New test.
+
2019-12-11 Thomas Schwinge <thomas@codesourcery.com>
PR libgomp/92843
Initial implementation and checkin.
\f
-Copyright (C) 2005-2019 Free Software Foundation, Inc.
+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