blob: 7ad9f18ff158f7fd80e6ec9bc4e0c83e706670a3 [file]
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* testsuite/libgomp.fortran/mapper-iterators-1.f90: New test.
* testsuite/libgomp.fortran/mapper-iterators-2.f90: New test.
* testsuite/libgomp.fortran/mapper-iterators-3.f90: New test.
* testsuite/libgomp.fortran/mapper-iterators-4.f90: New test.
2026-07-09 Chung-Lin Tang <cltang@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* acc_prof.h (_ACC_PROF_INFO_VERSION): Adjust to 201811.
* libgomp.texi (Enabling OpenACC): Adjust version
references to 2.7 from 2.6.
* openacc.f90 (module openacc): Adjust openacc_version to 201811.
* openacc_lib.h (openacc_version): Adjust openacc_version to 201811.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
Adjust test value to 201811.
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Adjust
test value to 201811.
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
2026-07-09 Chung-Lin Tang <cltang@baylibre.com>
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-2.c: Adjust test.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-5.c: Likewise.
2026-07-09 Chung-Lin Tang <cltang@baylibre.com>
* testsuite/libgomp.oacc-c-c++-common/reduction.h
(check_reduction_array_xx): New macro.
(operator_apply): Likewise.
(check_reduction_array_op): Likewise.
(check_reduction_arraysec_op): Likewise.
(function_apply): Likewise.
(check_reduction_array_macro): Likewise.
(check_reduction_arraysec_macro): Likewise.
(check_reduction_xxx_xx_all): Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-1.c: New test.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-3.c: New test.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-4.c: New test.
* testsuite/libgomp.oacc-c-c++-common/reduction-arrays-5.c: New test.
* testsuite/libgomp.oacc-c-c++-common/reduction-structs-1.c: New test.
* testsuite/libgomp.oacc-fortran/reduction-10.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-11.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-12.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-13.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-14.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-15.f90: New test.
* testsuite/libgomp.oacc-fortran/reduction-16.f90: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Andrew Stubbs <ams@baylibre.com>
Kwok Cheung Yeung <kcyeung@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.fortran/declare-mapper-25.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-28.f90: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.fortran/declare-mapper-30.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-4.f90: Adjust test for new
lookup behaviour.
2026-07-09 Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.fortran/declare-mapper-2.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-3.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-4.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-6.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-7.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-8.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-9.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-10.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-11.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-12.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-13.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-15.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-17.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-18.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-19.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-20.f90: New test.
* testsuite/libgomp.fortran/declare-mapper-21.f90: New test.
2026-07-09 Sandra Loosemore <sloosemore@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
* libgomp.texi: Mark need_device_addr as supported.
* testsuite/libgomp.c++/need-device-ptr.C: New.
* testsuite/libgomp.c-c++-common/dispatch-3.c: New.
* testsuite/libgomp.fortran/adjust-args-array-descriptor.f90: New.
* testsuite/libgomp.fortran/need-device-ptr.f90: New.
2026-07-09 waffl3x <waffl3x@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
PR c++/119659
PR c++/118859
PR c++/119601
PR c++/119602
PR c++/119775
* libgomp.texi: Set 'adjust args' variadic arguments support to Y.
2026-07-09 Waffl3x <waffl3x@baylibre.com>
* testsuite/libgomp.c-c++-common/allocate-7.c: Disable for C++.
2026-07-09 Waffl3x <waffl3x@baylibre.com>
* testsuite/libgomp.c/allocate-4.c: Move to...
* testsuite/libgomp.c-c++-common/allocate-4.c: ...here.
* testsuite/libgomp.c/allocate-5.c: Move to...
* testsuite/libgomp.c-c++-common/allocate-5.c: ...here.
* testsuite/libgomp.c/allocate-6.c: Move to...
* testsuite/libgomp.c-c++-common/allocate-6.c: ...here.
* testsuite/libgomp.c/allocate-7.c: Move to...
* testsuite/libgomp.c-c++-common/allocate-7.c: ...here.
* testsuite/libgomp.c++/allocate-2.C: New test.
* testsuite/libgomp.c-c++-common/uses_allocators-1.c: Remove sorry.
2026-07-09 Waffl3x <waffl3x@baylibre.com>
* testsuite/libgomp.c/allocate-7.c: _Alignof to alignof.
2026-07-09 Julian Brown <julian@codesourcery.com>
* target.c (omp_target_memcpy_rect_worker): Add 1D strided transfer
support.
2026-07-09 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/target.c (GOMP_target_ext): Add "signal" field.
Fix atomics race condition.
* config/nvptx/libgomp-nvptx.h (REV_OFFLOAD_QUEUE_SIZE): New define.
(struct rev_offload): Implement ring buffer.
* config/nvptx/target.c (GOMP_target_ext): Likewise.
* env.c (initialize_env): Read GOMP_REVERSE_OFFLOAD_THREADS.
* libgomp-plugin.c (GOMP_PLUGIN_target_rev): Replace "aq" parameter
with "signal" and "use_aq".
* libgomp-plugin.h (GOMP_PLUGIN_target_rev): Likewise.
* libgomp.h (gomp_target_rev): Likewise.
* plugin/plugin-gcn.c (process_reverse_offload): Add "signal".
(console_output): Pass signal value through.
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_openacc_async_construct):
Attach new threads to the numbered device.
Change the flag to CU_STREAM_NON_BLOCKING.
(GOMP_OFFLOAD_run): Implement ring-buffer and remove signalling.
* target.c (gomp_target_rev): Rename to ...
(gomp_target_rev_internal): ... this, and change "dev_num" to
"devicep".
(gomp_target_rev_worker_thread): New function.
(gomp_target_rev): New function (old name).
* libgomp.texi: Document GOMP_REVERSE_OFFLOAD_THREADS.
* testsuite/libgomp.c/reverse-offload-threads-1.c: New test.
* testsuite/libgomp.c/reverse-offload-threads-2.c: New test.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
* target.c (omp_target_memcpy_rect_worker): Require unit strides
and matching element size.
2026-07-09 Julian Brown <julian@codesourcery.com>
Sandra Loosemore <sloosemore@baylibre.com>
* libgomp.h (omp_noncontig_array_desc): Add span field.
* target.c (omp_target_memcpy_rect_worker): Add span parameter. Update
forward declaration. Handle span != element_size.
(gomp_update): Handle bias in descriptor's size slot. Update calls to
omp_target_memcpy_rect_worker.
* testsuite/libgomp.fortran/noncontig-updates-1.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-2.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-3.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-4.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-5.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-6.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-7.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-8.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-9.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-10.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-11.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-12.f90: New test.
* testsuite/libgomp.fortran/noncontig-updates-13.f90: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.c-c++-common/array-shaping-14.c: New test.
* testsuite/libgomp.c/array-shaping-1.c: New test.
* testsuite/libgomp.c/array-shaping-2.c: New test.
* testsuite/libgomp.c/array-shaping-3.c: New test.
* testsuite/libgomp.c/array-shaping-4.c: New test.
* testsuite/libgomp.c/array-shaping-5.c: New test.
* testsuite/libgomp.c/array-shaping-6.c: New test.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.c++/target-flex-300.C: XFAIL.
* testsuite/libgomp.c++/target-flex-60.C: Likewise.
* testsuite/libgomp.c++/target-flex-61.C: Likewise.
* testsuite/libgomp.c++/target-flex-62.C: Likewise.
* testsuite/libgomp.c++/target-flex-81.C: Likewise.
2026-07-09 Julian Brown <julian@codesourcery.com>
* libgomp.h (omp_noncontig_array_desc): New struct.
* target.c (omp_target_memcpy_rect_worker): Add stride array
parameter. Forward declare. Add STRIDES parameter and strided
update support.
(gomp_update): Add noncontiguous (strided/shaped) update support.
* testsuite/libgomp.c++/array-shaping-1.C: New test.
* testsuite/libgomp.c++/array-shaping-2.C: New test.
* testsuite/libgomp.c++/array-shaping-3.C: New test.
* testsuite/libgomp.c++/array-shaping-4.C: New test.
* testsuite/libgomp.c++/array-shaping-5.C: New test.
* testsuite/libgomp.c++/array-shaping-6.C: New test.
* testsuite/libgomp.c++/array-shaping-7.C: New test.
* testsuite/libgomp.c++/array-shaping-8.C: New test.
* testsuite/libgomp.c++/array-shaping-9.C: New test.
* testsuite/libgomp.c++/array-shaping-10.C: New test.
* testsuite/libgomp.c++/array-shaping-11.C: New test.
* testsuite/libgomp.c++/array-shaping-12.C: New test.
* testsuite/libgomp.c++/array-shaping-13.C: New test.
* testsuite/libgomp.c++/map-static-cast-lvalue-1.C: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Thomas Schwinge <tschwinge@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.oacc-c-c++-common/implicit-mapping-1.c: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.oacc-fortran/nonlexical-assumed-size-1.f90: New
test.
* testsuite/libgomp.oacc-fortran/nonlexical-assumed-size-2.f90: New
test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Paul-Antoine Arras <parras@baylibre.com>
Sandra Loosemore <sandra@baylibre.com>
* testsuite/libgomp.oacc-fortran/declare-allocatable-1-directive.f90:
Remove xfails.
* testsuite/libgomp.oacc-fortran/declare-allocatable-1-runtime.f90:
Remove xfails.
* testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90:
Remove xfails.
* testsuite/libgomp.oacc-fortran/declare-create-1.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-create-2.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-create-3.f90: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.oacc-c-c++-common/pr70828.c: New test.
* testsuite/libgomp.oacc-c-c++-common/pr70828-2.c: Likewise.
* testsuite/libgomp.oacc-fortran/declare-1.f90: Adjust patterns.
* testsuite/libgomp.oacc-fortran/pr70828.f90: New test.
* testsuite/libgomp.oacc-fortran/pr70828-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70828-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70828-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70828-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70828-6.f90: Likewise.
2026-07-09 Chung-Lin Tang <cltang@codesourcery.com>
* config/nvptx/team.c (__nvptx_omp_num_threads): New global variable in
shared memory.
* testsuite/libgomp.c-c++-common/for-17.c: New.
* testsuite/libgomp.c-c++-common/for-18.c: New.
2026-07-09 Thomas Schwinge <thomas@codesourcery.com>
* target.c (gomp_unmap_vars_internal): Queue splay-tree keys for
removal after main loop.
2026-07-09 Tobias Burnus <tobias@codesourcery.com>
* testsuite/libgomp.fortran/target-enter-data-3a.f90: New test.
2026-07-09 Tobias Burnus <tobias@codesourcery.com>
* testsuite/libgomp.fortran/target-13.f90: Update test.
2026-07-09 Kwok Cheung Yeung <kcy@codesourcery.com>
* testsuite/libgomp.c-c++-common/collapse-4.c: New.
* testsuite/libgomp.fortran/collapse5.f90: New.
2026-07-09 Andrew Stubbs <ams@codesourcery.com>
Sandra Loosemore <sloosemore@baylibre.com>
* config/gcn/bar.h (gomp_barrier_init): Limit thread count to the
actual physical number. Return count, not void.
(gomp_barrier_reinit): Likewise.
* config/gcn/team.c (gomp_team_start): Don't attempt to set up
threads that do not exist.
* config/linux/bar.h (gomp_barrier_init): Return count, not void.
(gomp_barrier_reinit): Likewise.
* config/nvptx/bar.h (gomp_barrier_init): Likewise.
(gomp_barrier_reinit): Likewise.
* config/posix/bar.c (gomp_barrier_init): Likewise.
(gomp_barrier_reinit): Likewise.
* config/posix/bar.h: (gomp_barrier_init): Likewise.
(gomp_barrier_reinit): Likewise.
* config/posix/simple-bar.h: (gomp_barrier_init): Likewise.
(gomp_barrier_reinit): Likewise.
* config/rtems/bar.h: (gomp_barrier_init): Likewise.
(gomp_barrier_reinit): Likewise.
* team.c (gomp_new_team): Set nthreads to actual rather than
requested number of threads.
* testsuite/libgomp.c/thread-limit-6.c: New test case.
2026-07-09 Andrew Stubbs <ams@codesourcery.com>
* plugin/plugin-nvptx.c (cleanup_and_alloc): Remove early call to
nvptx_stacks_free.
2026-07-09 Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Adjust for loop
lowering changes.
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
Thomas Schwinge <thomas@codesourcery.com>
Paul-Antoine Arras <parras@baylibre.com>
* libgomp.h (gomp_acc_declare_allocate): Remove prototype.
* oacc-mem.c (gomp_acc_declare_allocate): New function.
(find_group_last): Handle GOMP_MAP_DECLARE_ALLOCATE and
GOMP_MAP_DECLARE_DEALLOCATE groupings.
(goacc_enter_data_internal): Fix kind check for
GOMP_MAP_DECLARE_ALLOCATE. Pass new pointer argument to
gomp_acc_declare_allocate. Unlock mutex before calling
gomp_acc_declare_allocate and relock it afterwards.
(goacc_exit_data_internal): Unlock device mutex around
gomp_acc_declare_allocate call. Pass new pointer argument. Handle
group pointer mapping for deallocate.
* testsuite/libgomp.oacc-fortran/allocatable-scalar.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-allocatable-1-directive.f90:
Adjust.
* testsuite/libgomp.oacc-fortran/declare-allocatable-1-runtime.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/declare-allocatable-2.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-allocatable-3.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-allocatable-4.f90: New test.
* testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-directive.f90:
Adjust.
* testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-runtime.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1.f90:
New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
Sandra Loosemore <sandra@baylibre.com>
* testsuite/libgomp.oacc-c++/privatized-ref-3.C: Add xfails.
* testsuite/libgomp.oacc-fortran/optional-private.f90: Likewise.
* testsuite/libgomp.oacc-fortran/privatized-ref-1.f95: Likewise.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.oacc-fortran/optional-reduction.f90: Remove
xfail on bogus warnings.
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
2026-07-09 Thomas Schwinge <thomas@codesourcery.com>
Maciej W. Rozycki <macro@codesourcery.com>
* Makefile.am (libgomp_la_SOURCES): Add
oacc-profiling-acc_register_library.c.
* Makefile.in: Regenerate.
* libgomp.texi: Remove paragraph about acc_register_library.
* oacc-init.c (get_property_any): Add profiling code.
* oacc-parallel.c (GOACC_parallel_keyed_internal): Set device_api for
profiling.
* oacc-profiling-acc_register_library.c: New file.
* oacc-profiling.c (goacc_profiling_initialize): Call
acc_register_library. Avoid duplicate registration.
(acc_register_library): Remove.
* config/nvptx/oacc-profiling-acc_register_library.c:
New empty file.
* config/nvptx/oacc-profiling.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: Remove
call to acc_register_library.
* 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.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/privatize-reduction-1.c: New
test.
* testsuite/libgomp.oacc-c-c++-common/privatize-reduction-2.c: New
test.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust test case
to conform to the new behavior of the auto clause in OpenACC 2.5.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
* testsuite/libgomp.oacc-c++/firstprivate-int.C: New test.
* testsuite/libgomp.oacc-c-c++-common/firstprivate-int.c: New
test.
* testsuite/libgomp.oacc-c-c++-common/data-firstprivate-1.c: XFAIL
execution test.
* testsuite/libgomp.oacc-fortran/firstprivate-int.f90: New test.
2026-07-09 Nathan Sidwell <nathan@acm.org>
Tom de Vries <tdevries@suse.de>
Thomas Schwinge <thomas@codesourcery.com>
Julian Brown <julian@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/loop-default-compile.c: New.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
James Norris <jnorris@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Tobias Burnus <tburnus@baylibre.com>
* testsuite/libgomp.oacc-fortran/data-3.f90: Update parallel
regions to denote variables copyied in via acc enter data as
present.
* testsuite/libgomp.oacc-c-c++-common/subr.h: Reimplement.
* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Regenerated PTX.
* testsuite/libgomp.oacc-c-c++-common/timer.h: Removed.
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Change async checks.
* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Rework kernel i/f and
change async checks.
* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Rework kernel i/f and
timing checks.
* 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-78.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-79.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-93.c: New test.
2026-07-09 Julian Brown <julian@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
Nathan Sidwell <nathan@acm.org>
* testsuite/libgomp.oacc-c-c++-common/par-reduction-3.c: New.
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt-2.c: New.
* testsuite/libgomp.oacc-fortran/reduction-9.f90: New.
2026-07-09 Cesar Philippidis <cesar@codesourcery.com>
James Norris <jnorris@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Tobias Burnus <tobias@codesourcery.com>
Thomas Schwinge <tschwinge@baylibre.com>
* oacc-parallel.c (GOACC_parallel_keyed): Handle Fortran deviceptr
clause.
(GOACC_data_start): Likewise.
* testsuite/libgomp.oacc-fortran/deviceptr-1.f90: New test.
2026-07-09 Chung-Lin Tang <cltang@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Thomas Schwinge <thomas@codesourcery.com>
Paul-Antoine Arras <parras@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
PR other/76739
* libgomp.h (goacc_map_vars): Add 'struct goacc_ncarray_info *'
formal parameter.
* libgomp_g.h (GOACC_data_start): Add variadic '...' to declaration.
* oacc-int.h (struct goacc_ncarray_dim): New struct declaration.
(struct goacc_ncarray_descr_type): Likewise.
(struct goacc_ncarray): Likewise.
(struct goacc_ncarray_info): Likewise.
(goacc_noncontig_array_create_ptrblock): New function declaration.
* oacc-mem.c (acc_map_data, goacc_enter_datum)
(goacc_enter_data_internal): Adjust.
* oacc-parallel.c (goacc_noncontig_array_count_rows): New function.
(goacc_noncontig_array_compute_sizes): Likewise.
(goacc_noncontig_array_fill_rows_1): Likewise.
(goacc_noncontig_array_fill_rows): Likewise.
(goacc_process_noncontiguous_arrays): Likewise.
(goacc_noncontig_array_create_ptrblock): Likewise.
(GOACC_parallel_keyed): Use goacc_process_noncontiguous_arrays to
handle non-contiguous array descriptors at end of varargs, adjust
to use gomp_map_vars_openacc.
(GOACC_data_start): Likewise. Adjust function type to accept varargs.
* target.c (gomp_map_vars_internal): Add struct goacc_ncarray_info *
nca_info parameter, add handling code for non-contiguous arrays.
(goacc_map_vars): Adjust.
* testsuite/libgomp.oacc-c-c++-common/noncontig_array-1.c: New test.
* testsuite/libgomp.oacc-c-c++-common/noncontig_array-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/noncontig_array-3.c: New test.
* testsuite/libgomp.oacc-c-c++-common/noncontig_array-4.c: New test.
* testsuite/libgomp.oacc-c-c++-common/noncontig_array-utils.h: Support
header for new tests.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
* testsuite/libgomp.fortran/allocatable-comp-iterators.f90: Add test
for non-const iterator boundaries.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.fortran/allocatable-comp-iterators.f90: New.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* testsuite/libgomp.c-c++-common/mapper-iterators-1.c: New test.
* testsuite/libgomp.c-c++-common/mapper-iterators-2.c: New test.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.c-c++-common/target-map-iterators-1c.c: New.
* testsuite/libgomp.c-c++-common/target-map-iterators-1d.c: New.
* testsuite/libgomp.c-c++-common/target-map-iterators-1e.c: New.
* testsuite/libgomp.c-c++-common/target-map-iterators-1f.c: New.
* testsuite/libgomp.c-c++-common/target-map-iterators-4.c: New.
* testsuite/libgomp.c-c++-common/target-map-iterators-5.c: New.
* testsuite/libgomp.c-c++-common/target-update-iterators-4.c: New.
* testsuite/libgomp.fortran/target-map-iterators-1c.f90: New.
* testsuite/libgomp.fortran/target-map-iterators-4.f90: New.
* testsuite/libgomp.fortran/target-map-iterators-5.f90: New.
* testsuite/libgomp.fortran/target-update-iterators-4.f90: New.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-07-02 Thomas Schwinge <tschwinge@baylibre.com>
* config/nvptx/allocator.c [PTX < 4.1]: Fix build.
* config/nvptx/team.c [PTX < 4.1]: Disable the whole
'__nvptx_lowlat_pool' machinery.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-30 Thomas Schwinge <tschwinge@baylibre.com>
* config.h.in: Regenerate.
* configure.ac [x$libgomp_cv_have_sync_builtins = xno]: Fix check.
* configure: Regenerate.
* allocator.c (omp_init_allocator, gomp_map_omp_init_allocator)
[!HAVE_SYNC_BUILTINS]: Fix build.
* testsuite/libgomp.c-c++-common/uses_allocators-2.c: Fix for C++ testing.
* testsuite/libgomp.c-c++-common/uses_allocators-9.c: Likewise.
* testsuite/libgomp.fortran/dep-uses-allocators.f90: Remove
obsolete "sorry, unimplemented: [...]" diagnostic check.
* testsuite/libgomp.fortran/uses_allocators-7.f90: XFAIL one
'scan-tree-dump-times' check.
2026-07-09 Chung-Lin Tang <cltang@baylibre.com>
Backported from master:
2026-06-30 Chung-Lin Tang <cltang@baylibre.com>
* allocator.c (struct omp_allocator_data): Always enable 'memkind' field
for configurations with offloading. Adjust comments assuming
HAVE_SYNC_BUILTINS for all offload host/accelerators.
(gomp_init_allocator_data): New function, created from omp_init_allocator
logic.
(omp_init_allocator): Adjust to use gomp_init_allocator_data.
(gomp_map_omp_init_allocator): New function to call
gomp_init_allocator_data for uses_allocators clauses.
* config/gcn/allocator.c (gcn_memspace_validate): Add comments.
* config/nvptx/allocator.c (nvptx_memspace_alloc): Add PTX >= v4.1
preprocessor symbol check.
(nvptx_memspace_calloc): Likewise.
(nvptx_memspace_free): Likewise.
(nvptx_memspace_realloc): Likewise.
(nvptx_memspace_validate): Add comments.
* configure.ac: Require offload hosts and accelerator targets to support
__sync_* builtins.
* configure: Regenerate.
* libgomp-plugin.h (GOMP_OFFLOAD_memspace_validate): New declaration.
* libgomp.h (gomp_omp_allocator_data_size): New declaration.
(memspace_validate_func): New plugin hook in struct gomp_device_descr.
(gomp_map_omp_init_allocator): New declaration.
* oacc-host.c (host_dispatch): Init .memspace_validate_func = NULL.
* plugin/plugin-gcn.c (GOMP_OFFLOAD_memspace_validate): New function.
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_memspace_validate): New function.
* target.c (gomp_map_vars_internal): Implement GOMP_MAP_USES_ALLOCATORS
map kind.
(calculate_firstprivate_requirements): Likewise.
(copy_firstprivate_data): Likewise.
(gomp_load_plugin_for_device): Add DLSYM_OPT of memspace_validate_func
hook.
* testsuite/libgomp.c++/uses_allocators-1.C: Moved from
../gcc/testsuite/g++.dg/gomp/uses_allocators-1.C.
* testsuite/libgomp.c-c++-common/uses_allocators-1.c: Moved from
../gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c.
* testsuite/libgomp.c-c++-common/uses_allocators-2.c: Moved from
../gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c.
* testsuite/libgomp.c-c++-common/uses_allocators-4.c: Moved from
../gcc/testsuite/c-c++-common/gomp/uses_allocators-4.c.
* testsuite/libgomp.c-c++-common/uses_allocators-7.c: Moved from
../gcc/testsuite/c-c++-common/gomp/uses_allocators-7.c.
* testsuite/libgomp.c-c++-common/uses_allocators-8.c: Moved from
../gcc/testsuite/c-c++-common/gomp/uses_allocators-8.c.
* testsuite/libgomp.c-c++-common/uses_allocators-3.c: New test.
* testsuite/libgomp.c-c++-common/uses_allocators-5.c: New test.
* testsuite/libgomp.c-c++-common/uses_allocators-6.c: New test.
* testsuite/libgomp.c-c++-common/uses_allocators-9.c: New test.
* testsuite/libgomp.fortran/uses_allocators-1.f90: New test.
* testsuite/libgomp.fortran/uses_allocators-2.f90:
Rename from uses_allocators_1.f90.
* testsuite/libgomp.fortran/uses_allocators-3.f90:
Rename from uses_allocators_2.f90.
* testsuite/libgomp.fortran/uses_allocators-4.f90: New test.
* testsuite/libgomp.fortran/uses_allocators-5.f90: New test.
* testsuite/libgomp.fortran/uses_allocators-6.f90: New test.
* testsuite/libgomp.fortran/uses_allocators-7.f90: Adjust test.
* testsuite/libgomp.fortran/uses_allocators-8.f90: New test.
* testsuite/libgomp.fortran/uses_allocators_1.f90:
Renamed to uses_allocators-2.f90 and deleted.
* testsuite/libgomp.fortran/uses_allocators_2.f90:
Renamed to uses_allocators-3.f90 and deleted.
* testsuite/libgomp.c++/c++.exp (check_effective_target_c): Add.
(check_effective_target_c++): Add.
* testsuite/libgomp.c/c.exp (check_effective_target_c): Add.
(check_effective_target_c++): Add.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-30 Thomas Schwinge <tschwinge@baylibre.com>
PR libgomp/125877
* config/linux/numa.c (gomp_get_numa_distance): Gracefully handle
failure to open Linux sysfs file for NUMA node.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-30 Thomas Schwinge <tschwinge@baylibre.com>
PR libgomp/125877
* plugin/plugin-nvptx.c (nvptx_open_device): Initialize 'numa_node'.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-25 Paul-Antoine Arras <parras@baylibre.com>
* libgomp.texi (Implementing MASKED and MASTER construct): Fix
@end smallexample.
(Implementing FOR construct): Likewise.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-25 Paul-Antoine Arras <parras@baylibre.com>
* libgomp.texi (Implementing MASKED and MASTER construct): Update
pseudocode; describe GOMP_has_masked_thread_num.
(Implementing ATOMIC construct): Fix stale function names; note
exclusivity to explicit atomic constructs.
(Implementing BARRIER construct): Document GOMP_barrier_ext and
GOMP_barrier_cancel_ext; describe the kind parameter.
(Implementing REDUCTION clause): Document GOMP_reduction_start and
GOMP_reduction_end.
(Implementing FOR construct): Document GOMP_loop_static_worksharing
and GOMP_distribute_static_worksharing.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-25 Thomas Schwinge <tschwinge@baylibre.com>
* libgomp_g.h (GOMP_reduction_start, GOMP_reduction_end): Sort
correctly.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-24 Paul-Antoine Arras <parras@baylibre.com>
* atomic.c (GOMP_reduction_start): New function.
(GOMP_reduction_end): New function.
* libgomp.map (GOMP_6.0.2): Export GOMP_reduction_start and
GOMP_reduction_end.
* libgomp_g.h (GOMP_reduction_start): New declaration.
(GOMP_reduction_end): New declaration.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-24 Paul-Antoine Arras <parras@baylibre.com>
* barrier.c (GOMP_barrier_ext): New function.
(GOMP_barrier_cancel_ext): Likewise.
* libgomp_g.h (GOMP_barrier_ext): Declare.
(GOMP_barrier_cancel_ext): Likewise.
* libgomp.map (GOMP_6.0.2): Add GOMP_barrier_ext and
GOMP_barrier_cancel_ext.
* testsuite/libgomp.c/barrier-1.c: Update GOMP_barrier_ext calls to pass
GOMP_BARRIER_EXPLICIT.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-24 Paul-Antoine Arras <parras@baylibre.com>
* config/gcn/teams.c (GOMP_distribute_static_worksharing): New
function.
* config/nvptx/teams.c (GOMP_distribute_static_worksharing): Likewise.
* libgomp.map (GOMP_6.0.2): Export GOMP_loop_static_worksharing and
GOMP_distribute_static_worksharing.
* libgomp_g.h (GOMP_loop_static_worksharing): New declaration.
(GOMP_distribute_static_worksharing): Likewise.
* parallel.c (GOMP_loop_static_worksharing): New function.
* teams.c (GOMP_distribute_static_worksharing): Likewise.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-06-24 Paul-Antoine Arras <parras@baylibre.com>
* libgomp.map (GOMP_6.0.2): New symbol version. Export
GOMP_has_masked_thread_num.
* libgomp_g.h (GOMP_has_masked_thread_num): New declaration.
* parallel.c (GOMP_has_masked_thread_num): New function.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-06-24 Tobias Burnus <tburnus@baylibre.com>
PR libgomp/125940
* Makefile.am (libgomp_la_SOURCES): Add numa.c.
* Makefile.in: Regenerate.
* affinity.c (gomp_get_current_numa_node,
gomp_get_numa_distance): Move to ...
* numa.c: ... this new file.
* config/linux/affinity.c (gomp_get_current_numa_node,
gomp_get_numa_distance): Move to ...
* config/linux/numa.c: ... this new file.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-06-24 Tobias Burnus <tburnus@baylibre.com>
PR libgomp/125951
* target.c (omp_get_device_distances): Handle omp_default_device
in the fallback code.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-06-09 Tobias Burnus <tburnus@baylibre.com>
* libgomp.texi (GCN): Mention ROCR_VISIBLE_DEVICES.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-06-22 Tobias Burnus <tburnus@baylibre.com>
* config/gcn/teams.c (omp_get_num_teams_dim,
omp_get_team_num_dim): New functions.
* config/nvptx/teams.c (omp_get_num_teams_dim,
omp_get_team_num_dim): Likewise.
* fortran.c (omp_get_supported_active_team_dims_,
omp_get_supported_active_league_dims_): Likewise.
* icv.c (omp_get_thread_limit_dim): Likewise.
* libgomp-plugin.h (GOMP_OFFLOAD_get_numa_node): Remove spurious
const of 'const int' function return type.
(GOMP_OFFLOAD_supported_teams_dim,
GOMP_OFFLOAD_supported_threads_dim): Declare.
* libgomp.h (struct gomp_device_descr): Add supported_teams_dim_func
and supported_threads_dim_func members.
* libgomp.map (OMP_6.1): Add new OpenMP routines.
* libgomp.texi (Multidimensional Support Routines): Add new section.
(omp_get_device_distances): Fix chapter of spec reference.
* omp.h.in (omp_get_num_threads_dim, omp_get_thread_num_dim,
omp_get_thread_limit_dim, omp_get_supported_active_team_dims,
omp_get_supported_active_league_dims, omp_get_supported_teams_dim,
omp_get_supported_threads_dim, omp_get_num_teams_dim,
omp_get_team_num_dim, omp_get_device_distances): Declare.
* omp_lib.f90.in: Likewise.
* omp_lib.h.in: Likewise.
* parallel.c (omp_get_num_threads_dim,
omp_get_thread_num_dim): New functions.
* plugin/plugin-gcn.c (limit_worker_threads): Add comment.
(GOMP_OFFLOAD_supported_teams_dim,
GOMP_OFFLOAD_supported_threads_dim): New functions.
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_supported_teams_dim,
GOMP_OFFLOAD_supported_threads_dim): New functions.
(nvptx_adjust_launch_bounds): Add comment.
* target.c (omp_get_supported_active_team_dims,
omp_get_supported_active_league_dims,
omp_get_supported_teams_dim,
omp_get_supported_threads_dim): New functions.
(gomp_load_plugin_for_device): dlsym added functions.
* teams.c (omp_get_num_teams_dim,
omp_get_team_num_dim): New functions.
* testsuite/libgomp.c/multi-dim-routines.c: New test.
* testsuite/libgomp.fortran/multi-dim-routines-2.F90: New test.
* testsuite/libgomp.fortran/multi-dim-routines.F90: New test.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-06-19 Tobias Burnus <tburnus@baylibre.com>
PR libgomp/125877
* affinity.c (gomp_get_current_numa_node,
gomp_get_numa_distance): New functions.
* config/linux/affinity.c (gomp_get_current_numa_node,
gomp_get_numa_distance): Likewise.
* libgomp-plugin.h (GOMP_OFFLOAD_get_numa_node): Declare.
* libgomp.h (gomp_get_current_numa_node,
gomp_get_numa_distance): Declare.
(struct gomp_device_descr): Add get_numa_node_func.
* libgomp.map (OMP_6.1): Add.
* libgomp.texi (omp_get_device_distances): Add routine.
* omp.h.in (omp_get_device_distances): Declare.
* omp_lib.f90.in (omp_get_device_distances): Add interface.
* omp_lib.h.in (omp_get_device_distances): Likewise.
* plugin/cuda-lib.def (cuDeviceGetPCIBusId): Add.
* plugin/plugin-gcn.c (struct agent_info): Add numa_node.
(GOMP_OFFLOAD_get_numa_node): New.
* plugin/plugin-nvptx.c (struct ptx_device): Add numa_node.
(GOMP_OFFLOAD_get_numa_node): New.
* target.c (omp_get_device_distances): New function.
(gomp_load_plugin_for_device): Load get_numa_node symbol.
* testsuite/libgomp.c/omp-get-device-distances.c: New test.
* testsuite/libgomp.fortran/omp-get-device-distances.f90: New test.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* config/accel/target-indirect.h (GOMP_INDIRECT_ADDR_MAP)
(GOMP_INDIRECT_ADDR_HMAP): Prototype.
* config/gcn/team.c: Adjust.
* config/nvptx/team.c: Likewise.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* config/accel/target-indirect.h: New.
* config/accel/target-indirect.c: Adjust.
* config/gcn/team.c: Likewise.
* config/nvptx/team.c: Likewise.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* target-indirect.c: '#include "libgomp.h"'.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* libgomp_g.h (GOMP_target_map_indirect_ptr): Sort correctly.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* libgomp_g.h (GOMP_atomic_start, GOMP_atomic_end): Sort correctly.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* oacc-init.c (acc_init, acc_shutdown, acc_get_num_devices)
(acc_set_device_type, acc_get_device_type, acc_get_device_num)
(acc_set_device_num, acc_get_property, acc_get_property_string)
(acc_on_device): Drop 'ialias'es.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-18 Thomas Schwinge <tschwinge@baylibre.com>
* config/nvptx/oacc-parallel.c: Move...
* config/accel/oacc-parallel.c: ... here.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-12 Thomas Schwinge <tschwinge@baylibre.com>
* config/linux/allocator.c: De-duplicate '#define _GNU_SOURCE'.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-12 Thomas Schwinge <tschwinge@baylibre.com>
* plugin/plugin-gcn.c: '#define _GNU_SOURCE'.
* plugin/Makefrag.am (libgomp_plugin_gcn_la_CPPFLAGS): Don't add
'-D_GNU_SOURCE'.
* Makefile.in: Regenerate.
2026-07-09 Thomas Schwinge <tschwinge@baylibre.com>
Backported from master:
2026-06-12 Thomas Schwinge <tschwinge@baylibre.com>
PR target/101484
* configure.tgt [GCN] (XCFLAGS): Don't add '-Wno-error=array-bounds'.
2026-07-09 Chung-Lin Tang <cltang@baylibre.com>
Backported from master:
2026-06-10 Chung-Lin Tang <cltang@baylibre.com>
PR fortran/122910
* testsuite/libgomp.fortran/pr122910.f90: New test.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Backported from master:
2026-06-07 Kwok Cheung Yeung <kcyeung@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.fortran/target-update-iterators-1.f90: New.
* testsuite/libgomp.fortran/target-update-iterators-2.f90: New.
* testsuite/libgomp.fortran/target-update-iterators-3.f90: New.
2026-07-09 Kwok Cheung Yeung <kcyeung@baylibre.com>
Backported from master:
2026-06-07 Kwok Cheung Yeung <kcyeung@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* target.c (kind_to_name): Handle GOMP_MAP_STRUCT and
GOMP_MAP_STRUCT_UNORD.
(gomp_add_map): New.
(gomp_merge_iterator_maps): Expand fields of a struct mapping
breadth-first.
* testsuite/libgomp.fortran/target-map-iterators-1.f90: New.
* testsuite/libgomp.fortran/target-map-iterators-2.f90: New.
* testsuite/libgomp.fortran/target-map-iterators-3.f90: New.
2026-07-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Backported from master:
2026-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* oacc-parallel.c (GOACC_parallel_keyed): Use gomp_alloca instead
of alloca.
* target.c (GOMP_target): Likewise.
(GOMP_target_ext): Likewise.
2026-07-09 Arsen Arsenović <aarsenovic@baylibre.com>
Backported from master:
2026-06-01 Arsen Arsenović <aarsenovic@baylibre.com>
* oacc-mem.c (goacc_enter_datum): Assert that tgt_offset of the
newly-mapped variable is zero.
2026-07-09 Arsen Arsenović <aarsenovic@baylibre.com>
Backported from master:
2026-06-01 Arsen Arsenović <aarsenovic@baylibre.com>
* plugin/plugin-gcn.c (struct kernel_dispatch): Store
hsa_signal_t, rather than a uint64_t, so that we don't rely on
knowledge of the contents of hsa_signal_t.
(create_kernel_dispatch): Rename...
(prepare_kernel_dispatch): ... to this, as it no longer creates
a kernel dispatch. The allocation that would've created it is
hoisted...
(run_kernel): ... here, as an automatic variable. Move logic
that copies the fields of kernel_dispatch...
(populate_packet_from_dispatch): ... into this standalone
function, to make it clearer.
(release_kernel_dispatch): Rename....
(cleanup_kernel_dispatch): ... to this, don't free 'shadow'.
2026-07-09 Arsen Arsenović <aarsenovic@baylibre.com>
Backported from master:
2026-06-01 Arsen Arsenović <aarsenovic@baylibre.com>
* libgomp-plugin.h (GOMP_OFFLOAD_run, GOMP_OFFLOAD_exec)
(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_async_exec): Pass
session in place of target variable table and devices.
(struct gomp_offload_session): New.
(GOMP_OFFLOAD_session_size): New
(GOMP_OFFLOAD_check_session_struct): New.
(GOMP_OFFLOAD_session_boilerplate): New.
(GOMP_OFFLOAD_session_start): New.
(GOMP_OFFLOAD_session_allocate_target_var_table): New.
(GOMP_OFFLOAD_session_set_target_var_table): New.
* libgomp.h (struct gomp_target_task): Add offload_session
field.
(struct gomp_device_descr): Add offload session management
functions.
(gomp_offload_session_new): New.
(goacc_map_vars): Add SESSION to signature
* oacc-host.c (struct gomp_offload_session): Define, for host
offload fallback case.
(host_session_size): New. Implements GOMP_OFFLOAD_session_size.
(host_session_start): New. Implements
GOMP_OFFLOAD_session_start.
(host_session_set_target_var_table): New. Implements
GOMP_OFFLOAD_session_set_target_var_table.
(host_run): Adjust to match GOMP_OFFLOAD_run.
(host_openacc_exec): Adjust to match GOMP_OFFLOAD_openacc_exec.
(host_openacc_async_exec): Adjust to match
GOMP_OFFLOAD_openacc_async_exec.
* oacc-mem.c (acc_map_data): Adjust call to goacc_map_vars.
(goacc_enter_datum): Ditto.
(goacc_enter_data_internal): Ditto.
* oacc-parallel.c (GOACC_parallel_keyed): Allocate and pass
offload session.
(GOACC_data_start): Adjust call to goacc_map_vars.
* plugin/plugin-gcn.c (struct kernel_dispatch): Remove
kernarg_cache_node.
(struct kernargs): Add a flexible array member for the target
variable table.
(struct kernel_launch): Store an offload session rather than
target var. table pointer.
(print_kernel_dispatch): Receive kernargs as parameter.
(struct gomp_offload_session): Define.
(init_session): New.
(GOMP_OFFLOAD_session_start): Implement, using init_session.
(release_session): New.
(alloc_kernargs_on_agent): Rename to...
(allocate_session_kernargs): ... this, store result in
passed-in SESSION, and allocate extra room for target variable
table (rounding it up to nearest multiple of 64 pointers).
(GOMP_OFFLOAD_session_allocate_target_var_table): Implement
using the previous function.
(GOMP_OFFLOAD_session_set_target_var_table): Ditto.
(create_kernel_dispatch): Remove kernarg allocation, instead
receiving it as an argument.
(release_kernel_dispatch): Receive kernargs as an argument,
don't release them.
(run_kernel): Adjust to use sessions.
(destroy_module): Ditto.
(GOMP_OFFLOAD_load_image): Ditto.
(execute_queue_entry): Adjust to match changed struct
kernel_launch.
(queue_push_launch): Ditto.
(gcn_exec): Receive and pass along session.
(GOMP_OFFLOAD_run): Ditto.
(GOMP_OFFLOAD_async_run): Ditto.
(GOMP_OFFLOAD_openacc_exec): Ditto.
(GOMP_OFFLOAD_openacc_async_exec): Ditto.
* plugin/plugin-nvptx.c (struct gomp_offload_session): Define.
(GOMP_OFFLOAD_session_start): Implement.
(GOMP_OFFLOAD_session_set_target_var_table): Implement.
(GOMP_OFFLOAD_openacc_exec): Adjust to receive session.
(GOMP_OFFLOAD_openacc_async_exec): Ditto.
(GOMP_OFFLOAD_run): Ditto.
* target.c (gomp_get_tvt_size): Extract helper from...
(gomp_map_vars_internal): ... here. Receive SESSION, iff doing
target offload. Use a target variable table on the host
allocated by GOMP_OFFLOAD_session_allocate_target_var_table if
possible, or call GOMP_OFFLOAD_session_set_target_var_table with
an allocated device pointer otherwise.
(gomp_map_vars): Update to pass along session.
(goacc_map_vars): Ditto.
(GOMP_target): Allocate and pass along session.
(GOMP_target_ext): Ditto.
(gomp_target_data_fallback): Adjust call to gomp_map_vars.
(GOMP_target_data): Ditto.
(GOMP_target_data_ext): Ditto.
(GOMP_target_enter_exit_data): Ditto.
(gomp_target_task_fn): Start and pass along session, the storage
for which is allocated by gomp_create_target_task.
(DLSYM2): Rename from DLSYM, adding a new parameter for the
variable to populate, akin to DLSYM_OPT.
(DLSYM): Delegate to DLSYM2.
(gomp_load_plugin_for_device): Populate session-related fields.
* task.c (gomp_create_target_task): Allocate enough storage for
an offload session.
* testsuite/libgomp.c-c++-common/gcn-kernel-launch-no-tvt-alloc.c: New test.
* testsuite/libgomp.c-c++-common/gcn-kernel-launch-tvt-alloc.c: New test.
2026-07-09 Arsen Arsenović <aarsenovic@baylibre.com>
Backported from master:
2026-06-01 Arsen Arsenović <aarsenovic@baylibre.com>
* libgomp.h (struct gomp_thread_start_data): New struct. Holds
thread-independent parameters needed to initialize current
thread.
(struct gomp_team): On GCN, add thr_start_data field, that holds
a gomp_thread_start_data to be used in each thread.
(struct gomp_thread): Add start_data field, that points to
thread initialization parameters.
* config/gcn/team.c (gomp_team_start): Move thread
initialization steps into ...
(gomp_prep_our_thread): this new function, such that it reads
from a gomp_thread_start_data object.
(gomp_thread_start): Call the above to initialize our thread.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-05-29 Tobias Burnus <tburnus@baylibre.com>
PR c/122892
* allocator.c (_Static_assert): Add asserts for the values of
GOMP_OMP_PREDEF_ALLOC_CGROUP and GOMP_OMP_PREDEF_ALLOC_PTEAM.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-05-27 Tobias Burnus <tburnus@baylibre.com>
* libgomp.texi (Foreign-runtime support for AMD GPUs,
Foreign-runtime support for Nvdia GPUs): Fix vendor
value to match compiler not GPU vendor.
* plugin/plugin-gcn.c (GOMP_OFFLOAD_get_interop_int,
GOMP_OFFLOAD_get_interop_str): Return 5/"gnu" as ipr_vendor.
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_get_interop_int,
GOMP_OFFLOAD_get_interop_str): Likewise.
* testsuite/libgomp.c/append-args-fr.h: Updated expected
value.
* testsuite/libgomp.c/interop-cuda-full.c: Likewise.
* testsuite/libgomp.c/interop-fr-1.c: Likewise.
* testsuite/libgomp.c/interop-hip.h: Likewise.
* testsuite/libgomp.fortran/interop-hip.h: Likewise.
2026-07-09 Paul-Antoine Arras <parras@baylibre.com>
Backported from master:
2026-05-19 Paul-Antoine Arras <parras@baylibre.com>
Chung-Lin Tang <cltang@baylibre.com>
Sandra Loosemore <sloosemore@baylibre.com>
* testsuite/libgomp.c++/target-map-multi-1.C: New test.
* testsuite/libgomp.c-c++-common/target-map-iterators-6.c: New test.
* testsuite/libgomp.c-c++-common/target-map-multi-1.c: New test.
* testsuite/libgomp.c-c++-common/target-map-multi-2.c: New test.
* testsuite/libgomp.c-c++-common/target-map-multi-3.c: New test.
* testsuite/libgomp.c-c++-common/target-map-multi-4.c: New test.
* testsuite/libgomp.fortran/target-map-multi-1.f90: New test.
* testsuite/libgomp.fortran/target-map-multi-2.f90: New test.
* testsuite/libgomp.fortran/target-map-multi-3.f90: New test.
* testsuite/libgomp.fortran/target-map-multi-4.f90: New test.
* testsuite/libgomp.fortran/target-map-multi-5.f90: New test.
2026-07-09 H.J. Lu <hjl.tools@gmail.com>
Backported from master:
2026-05-13 H.J. Lu <hjl.tools@gmail.com>
* libgomp.texi: the Add missing closing brace.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-05-13 Tobias Burnus <tburnus@baylibre.com>
* env.c (omp_control_tool): Stub implementation for omp_control_tool.
* fortran.c (omp_control_tool_, omp_control_tool_8_): Add.
* libgomp.map (OMP_6.0): Add for omp_control_tool*.
* libgomp.texi (Tool Control Routine): Add for omp_control_tool.
(OpenMP 6.0): Mark omp_pause_stop_tool as implemented.
* omp.h.in (omp_pause_resource_t): Add omp_pause_stop_tool.
(omp_control_tool_result_t): Add.
(omp_control_tool_t): Add.
* omp_lib.f90.in (omp_lib_kinds): Add omp_pause_stop_tool and
omp_control_tool/omp_control_tool_result parameters.
(omp_lib): Add omp_control_tool interface.
* omp_lib.h.in: Add omp_pause_stop_tool and
omp_control_tool/omp_control_tool_result parameters; add
omp_control_tool interface.
* testsuite/libgomp.c/omp-control-tools-1.c: New test.
* testsuite/libgomp.fortran/omp-control-tools-1.f: New test.
* testsuite/libgomp.fortran/omp-control-tools-1.f90: New test.
2026-07-09 Tobias Burnus <tburnus@baylibre.com>
Backported from master:
2026-04-28 Tobias Burnus <tburnus@baylibre.com>
* testsuite/libgomp.fortran/map-subarray-6.f90: Fix, extend, and
robustify.