https://gcc.gnu.org/g:fbde111a3466f3870d00a574700fbb87c56d6c42

commit fbde111a3466f3870d00a574700fbb87c56d6c42
Merge: 1e21c26f2f53 c153150b8a05
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Fri May 30 15:06:20 2025 +0200

    Merge commit 'c153150b8a05878191de2ee16c0cce7d526f3c46' into HEAD

Diff:

 gcc/ChangeLog.omp                                  |   9 +
 gcc/tree-nrv.cc                                    |  19 +-
 libgomp/ChangeLog.omp                              | 126 +++-
 libgomp/testsuite/libgomp.c++/target-flex-10.C     | 215 ++++++
 libgomp/testsuite/libgomp.c++/target-flex-100.C    | 210 ++++++
 libgomp/testsuite/libgomp.c++/target-flex-101.C    | 136 ++++
 libgomp/testsuite/libgomp.c++/target-flex-11.C     | 444 +++++++++++++
 libgomp/testsuite/libgomp.c++/target-flex-12.C     | 736 +++++++++++++++++++++
 libgomp/testsuite/libgomp.c++/target-flex-2000.C   |  32 +
 libgomp/testsuite/libgomp.c++/target-flex-2001.C   |  61 ++
 libgomp/testsuite/libgomp.c++/target-flex-2002.C   |  97 +++
 libgomp/testsuite/libgomp.c++/target-flex-2003.C   | 176 +++++
 libgomp/testsuite/libgomp.c++/target-flex-30.C     |  51 ++
 libgomp/testsuite/libgomp.c++/target-flex-300.C    |  51 ++
 libgomp/testsuite/libgomp.c++/target-flex-31.C     |  80 +++
 libgomp/testsuite/libgomp.c++/target-flex-32.C     |  50 ++
 libgomp/testsuite/libgomp.c++/target-flex-33.C     |  52 ++
 libgomp/testsuite/libgomp.c++/target-flex-41.C     |  94 +++
 libgomp/testsuite/libgomp.c++/target-flex-60.C     |  48 ++
 libgomp/testsuite/libgomp.c++/target-flex-61.C     |  56 ++
 libgomp/testsuite/libgomp.c++/target-flex-62.C     |  52 ++
 libgomp/testsuite/libgomp.c++/target-flex-70.C     |  26 +
 libgomp/testsuite/libgomp.c++/target-flex-80.C     |  49 ++
 libgomp/testsuite/libgomp.c++/target-flex-81.C     |  77 +++
 libgomp/testsuite/libgomp.c++/target-flex-90.C     | 107 +++
 libgomp/testsuite/libgomp.c++/target-flex-common.h |  40 ++
 .../libgomp.c++/target-std__array-concurrent-usm.C |   5 +
 .../libgomp.c++/target-std__array-concurrent.C     |  62 ++
 .../target-std__bitset-concurrent-usm.C            |   5 +
 .../libgomp.c++/target-std__bitset-concurrent.C    |  69 ++
 libgomp/testsuite/libgomp.c++/target-std__cmath.C  | 340 ++++++++++
 .../testsuite/libgomp.c++/target-std__complex.C    | 175 +++++
 .../libgomp.c++/target-std__deque-concurrent-usm.C |   5 +
 .../libgomp.c++/target-std__deque-concurrent.C     |  64 ++
 .../libgomp.c++/target-std__flat_map-concurrent.C  |  71 ++
 .../target-std__flat_multimap-concurrent.C         |  70 ++
 .../target-std__flat_multiset-concurrent.C         |  60 ++
 .../libgomp.c++/target-std__flat_set-concurrent.C  |  67 ++
 .../target-std__forward_list-concurrent-usm.C      |   5 +
 .../target-std__forward_list-concurrent.C          |  83 +++
 .../libgomp.c++/target-std__list-concurrent-usm.C  |   5 +
 .../libgomp.c++/target-std__list-concurrent.C      |  83 +++
 .../libgomp.c++/target-std__map-concurrent-usm.C   |   5 +
 .../libgomp.c++/target-std__map-concurrent.C       |  70 ++
 .../target-std__multimap-concurrent-usm.C          |   5 +
 .../libgomp.c++/target-std__multimap-concurrent.C  |  68 ++
 .../target-std__multiset-concurrent-usm.C          |   5 +
 .../libgomp.c++/target-std__multiset-concurrent.C  |  62 ++
 .../testsuite/libgomp.c++/target-std__numbers.C    |  93 +++
 .../libgomp.c++/target-std__set-concurrent-usm.C   |   5 +
 .../libgomp.c++/target-std__set-concurrent.C       |  68 ++
 .../libgomp.c++/target-std__span-concurrent-usm.C  |   7 +
 .../libgomp.c++/target-std__span-concurrent.C      |  66 ++
 .../target-std__unordered_map-concurrent.C         |  66 ++
 .../target-std__unordered_multimap-concurrent.C    |  65 ++
 .../target-std__unordered_multiset-concurrent.C    |  59 ++
 .../target-std__unordered_set-concurrent.C         |  66 ++
 .../testsuite/libgomp.c++/target-std__valarray-1.C | 179 +++++
 .../libgomp.c++/target-std__valarray-1.output      |  22 +
 .../target-std__valarray-concurrent-usm.C          |   5 +
 .../libgomp.c++/target-std__valarray-concurrent.C  |  66 ++
 .../target-std__vector-concurrent-usm.C            |   5 +
 .../libgomp.c++/target-std__vector-concurrent.C    |  63 ++
 .../libgomp.c-c++-common/target-abi-struct-1-O0.c  |   2 +-
 .../libgomp.c-c++-common/target-abi-struct-1.c     |   1 +
 .../libgomp.oacc-c-c++-common/abi-struct-1.c       |   6 +-
 66 files changed, 5312 insertions(+), 10 deletions(-)

diff --cc libgomp/ChangeLog.omp
index 53d3bc165381,afc818454dea..5ecab6d05e98
--- a/libgomp/ChangeLog.omp
+++ b/libgomp/ChangeLog.omp
@@@ -1,39 -1,127 +1,163 @@@
+ 2025-05-30  Thomas Schwinge  <tschwi...@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.
+ 
+ 2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       * testsuite/libgomp.c++/target-std__valarray-1.C: New.
+       * testsuite/libgomp.c++/target-std__valarray-1.output: Likewise.
+ 
+ 2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       * testsuite/libgomp.c++/target-std__array-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__array-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__bitset-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__deque-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__deque-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__forward_list-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__list-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__list-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__map-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__map-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__multimap-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__multiset-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__set-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__set-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__span-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__span-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__valarray-concurrent.C: Adjust.
+       * testsuite/libgomp.c++/target-std__vector-concurrent-usm.C: New.
+       * testsuite/libgomp.c++/target-std__vector-concurrent.C: Adjust.
+ 
+ 2025-05-30  Kwok Cheung Yeung  <kcye...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Kwok Cheung Yeung  <kcye...@baylibre.com>
+                   Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       * testsuite/libgomp.c++/target-std__array-concurrent.C: New.
+       * testsuite/libgomp.c++/target-std__bitset-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__deque-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__flat_map-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__flat_set-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__forward_list-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__list-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__map-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__multimap-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__multiset-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__set-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__span-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__unordered_map-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__unordered_set-concurrent.C: 
Likewise.
+       * testsuite/libgomp.c++/target-std__valarray-concurrent.C: Likewise.
+       * testsuite/libgomp.c++/target-std__vector-concurrent.C: Likewise.
+ 
+ 2025-05-30  Kwok Cheung Yeung  <kcye...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Kwok Cheung Yeung  <kcye...@baylibre.com>
+ 
+       * testsuite/libgomp.c++/target-std__cmath.C: New.
+       * testsuite/libgomp.c++/target-std__complex.C: Likewise.
+       * testsuite/libgomp.c++/target-std__numbers.C: Likewise.
+ 
+ 2025-05-30  Waffl3x  <waff...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Waffl3x  <waff...@baylibre.com>
+                   Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       * testsuite/libgomp.c++/target-flex-10.C: New test.
+       * testsuite/libgomp.c++/target-flex-100.C: New test.
+       * testsuite/libgomp.c++/target-flex-101.C: New test.
+       * testsuite/libgomp.c++/target-flex-11.C: New test.
+       * testsuite/libgomp.c++/target-flex-12.C: New test.
+       * testsuite/libgomp.c++/target-flex-2000.C: New test.
+       * testsuite/libgomp.c++/target-flex-2001.C: New test.
+       * testsuite/libgomp.c++/target-flex-2002.C: New test.
+       * testsuite/libgomp.c++/target-flex-2003.C: New test.
+       * testsuite/libgomp.c++/target-flex-30.C: New test.
+       * testsuite/libgomp.c++/target-flex-300.C: New test.
+       * testsuite/libgomp.c++/target-flex-31.C: New test.
+       * testsuite/libgomp.c++/target-flex-32.C: New test.
+       * testsuite/libgomp.c++/target-flex-33.C: New test.
+       * testsuite/libgomp.c++/target-flex-41.C: New test.
+       * testsuite/libgomp.c++/target-flex-60.C: New test.
+       * testsuite/libgomp.c++/target-flex-61.C: New test.
+       * testsuite/libgomp.c++/target-flex-62.C: New test.
+       * testsuite/libgomp.c++/target-flex-70.C: New test.
+       * testsuite/libgomp.c++/target-flex-80.C: New test.
+       * testsuite/libgomp.c++/target-flex-81.C: New test.
+       * testsuite/libgomp.c++/target-flex-90.C: New test.
+       * testsuite/libgomp.c++/target-flex-common.h: New test.
+ 
+ 2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+ 
+       Backported from master:
+       2025-05-30  Thomas Schwinge  <tschwi...@baylibre.com>
+                   Richard Biener  <rguent...@suse.de>
+ 
+       PR middle-end/119835
+       * testsuite/libgomp.oacc-c-c++-common/abi-struct-1.c:
+       '#pragma GCC optimize "-fno-inline"'.
+       * testsuite/libgomp.c-c++-common/target-abi-struct-1.c: New.
+       * testsuite/libgomp.c-c++-common/target-abi-struct-1-O0.c: Adjust.
+ 
 +2025-05-30  Tobias Burnus  <tbur...@baylibre.com>
 +
 +      Backported from master:
 +      2025-05-29  Tobias Burnus  <tbur...@baylibre.com>
 +
 +      PR libgomp/93226
 +      * libgomp-plugin.h (GOMP_OFFLOAD_openacc_async_dev2dev): New
 +      prototype.
 +      * libgomp.h (struct acc_dispatch_t): Add dev2dev_func.
 +      (gomp_copy_dev2dev): New prototype.
 +      * libgomp.map (OACC_2.6.1): New; add acc_memcpy_device{,_async}.
 +      * libgomp.texi (acc_memcpy_device): New.
 +      * oacc-mem.c (memcpy_tofrom_device): Change to take from/to
 +      device boolean; use memcpy not memmove; add early return if
 +      size == 0 or same device + same ptr.
 +      (acc_memcpy_to_device, acc_memcpy_to_device_async,
 +      acc_memcpy_from_device, acc_memcpy_from_device_async): Update.
 +      (acc_memcpy_device, acc_memcpy_device_async): New.
 +      * openacc.f90 (acc_memcpy_device, acc_memcpy_device_async):
 +      Add interface.
 +      * openacc_lib.h (acc_memcpy_device, acc_memcpy_device_async):
 +      Likewise.
 +      * openacc.h (acc_memcpy_device, acc_memcpy_device_async): Add
 +      prototype.
 +      * plugin/plugin-gcn.c (GOMP_OFFLOAD_openacc_async_host2dev):
 +      Update comment.
 +      (GOMP_OFFLOAD_openacc_async_dev2host): Update call.
 +      (GOMP_OFFLOAD_openacc_async_dev2dev): New.
 +      * plugin/plugin-nvptx.c (cuda_memcpy_dev_sanity_check): New.
 +      (GOMP_OFFLOAD_dev2dev): Call it.
 +      (GOMP_OFFLOAD_openacc_async_dev2dev): New.
 +      * target.c (gomp_copy_dev2dev): New.
 +      (gomp_load_plugin_for_device): Load dev2dev and async_dev2dev.
 +      * testsuite/libgomp.oacc-c-c++-common/acc_memcpy_device-1.c: New test.
 +      * testsuite/libgomp.oacc-fortran/acc_memcpy_device-1.f90: New test.
 +
  2025-05-22  Thomas Schwinge  <tschwi...@baylibre.com>
  
        Backported from master:
@@@ -926,4 -1014,4 +1050,4 @@@
        * 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.
++      header for new tests.

Reply via email to