From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id DB8A13858D1E; Mon, 19 Jun 2023 21:17:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DB8A13858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="6.00,255,1681200000"; d="scan'208";a="9264335" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 19 Jun 2023 13:17:53 -0800 IronPort-SDR: zDw6Ayiks0AiVPIKYcUpnEMTG204wxHtpEwKd664EElbz/9tRCga14gTyhyGenjqS4z7VnrKw2 r9HG77GmqylA+vGqc7+9ohm+VNn9yEcVQok9RavmQ+bCO3hr9e8oARBQ9Z9WrygbuNVOlu/l4F QIaJIv2W+lLONjgC7XPMyMJkM52ZaFlT/VBW0SZcSyZOz6mkzqsuaMo1ZUN7qoS4mzxBTeJz88 abNolmpy29DQKk+jAXukILHoslpThddSYb2PFZKuC1fLXoP7d7/NJt/mkPfaxCXOSbENHzKbkU +Ws= From: Julian Brown To: CC: , , Subject: [PATCH 00/14] [og13] OpenMP/OpenACC: map clause and OMP gimplify rework Date: Mon, 19 Jun 2023 21:17:24 +0000 Message-ID: X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This series (for the og13 branch) is a rebased and merged version of the first few patches of the series previously sent upstream for mainline: https://gcc.gnu.org/pipermail/gcc-patches/2022-December/609031.html The series contains patches 1-6 and the parts of 8 ("C++ "declare mapper" support) that pertain to reorganisation of gimplify.cc:gimplify_{scan,adjust}_omp_clauses. The series also contains reversions and rewrites of several patches that needed adjustment in order to fit in with the new clause-processing arrangements. Tested with offloading to AMD GCN. I will apply shortly. Thanks, Julian Julian Brown (14): Revert "Assumed-size arrays with non-lexical data mappings" Revert "Fix references declared in lexically-enclosing OpenACC data region" Revert "Fix implicit mapping for array slices on lexically-enclosing data constructs (PR70828)" Revert "openmp: Handle C/C++ array reference base-pointers in array sections" OpenMP/OpenACC: Reindent TO/FROM/_CACHE_ stanza in {c_}finish_omp_clause OpenMP/OpenACC: Rework clause expansion and nested struct handling OpenMP: implicitly map base pointer for array-section pointer components OpenMP: Pointers and member mappings OpenMP/OpenACC: Unordered/non-constant component offset runtime diagnostic OpenMP/OpenACC: Reorganise OMP map clause handling in gimplify.cc OpenACC: Reimplement "inheritance" for lexically-nested offload regions OpenACC: "declare create" fixes wrt. "allocatable" variables OpenACC: Allow implicit uses of assumed-size arrays in offload regions OpenACC: Improve implicit mapping for non-lexically nested offload regions gcc/c-family/c-common.h | 74 +- gcc/c-family/c-omp.cc | 837 ++++- gcc/c/c-parser.cc | 17 +- gcc/c/c-typeck.cc | 773 ++-- gcc/cp/parser.cc | 17 +- gcc/cp/pt.cc | 4 +- gcc/cp/semantics.cc | 1065 +++--- gcc/fortran/dependency.cc | 128 + gcc/fortran/dependency.h | 1 + gcc/fortran/gfortran.h | 1 + gcc/fortran/trans-openmp.cc | 376 +- gcc/gimplify.cc | 2239 ++++++++---- gcc/omp-general.cc | 424 +++ gcc/omp-general.h | 69 + gcc/omp-low.cc | 23 +- .../c-c++-common/goacc/acc-data-chain.c | 2 +- .../c-c++-common/goacc/combined-reduction.c | 2 +- .../c-c++-common/goacc/reduction-1.c | 4 +- .../c-c++-common/goacc/reduction-10.c | 9 +- .../c-c++-common/goacc/reduction-2.c | 4 +- .../c-c++-common/goacc/reduction-3.c | 4 +- .../c-c++-common/goacc/reduction-4.c | 4 +- gcc/testsuite/c-c++-common/gomp/clauses-2.c | 2 +- gcc/testsuite/c-c++-common/gomp/target-50.c | 2 +- .../c-c++-common/gomp/target-enter-data-1.c | 4 +- .../c-c++-common/gomp/target-implicit-map-2.c | 3 +- .../g++.dg/gomp/static-component-1.C | 23 + gcc/testsuite/gcc.dg/gomp/target-3.c | 2 +- .../gfortran.dg/goacc/assumed-size.f90 | 35 + .../gfortran.dg/goacc/loop-tree-1.f90 | 2 +- gcc/testsuite/gfortran.dg/gomp/map-12.f90 | 2 +- gcc/testsuite/gfortran.dg/gomp/map-9.f90 | 2 +- .../gfortran.dg/gomp/map-subarray-2.f90 | 57 + .../gfortran.dg/gomp/map-subarray.f90 | 40 + gcc/tree-pretty-print.cc | 3 + gcc/tree.h | 8 + include/gomp-constants.h | 9 +- libgomp/oacc-mem.c | 6 +- libgomp/target.c | 91 +- libgomp/testsuite/libgomp.c++/baseptrs-3.C | 275 ++ libgomp/testsuite/libgomp.c++/baseptrs-4.C | 3154 +++++++++++++++++ libgomp/testsuite/libgomp.c++/baseptrs-5.C | 62 + libgomp/testsuite/libgomp.c++/class-array-1.C | 59 + libgomp/testsuite/libgomp.c++/target-48.C | 32 + libgomp/testsuite/libgomp.c++/target-49.C | 37 + .../libgomp.c-c++-common/baseptrs-1.c | 50 + .../libgomp.c-c++-common/baseptrs-2.c | 70 + .../map-arrayofstruct-1.c | 38 + .../map-arrayofstruct-2.c | 58 + .../map-arrayofstruct-3.c | 68 + .../target-implicit-map-2.c | 2 + .../target-implicit-map-5.c | 50 + .../libgomp.c-c++-common/target-map-zlas-1.c | 36 + .../libgomp.fortran/map-subarray-2.f90 | 108 + .../libgomp.fortran/map-subarray-3.f90 | 62 + .../libgomp.fortran/map-subarray-4.f90 | 35 + .../libgomp.fortran/map-subarray-5.f90 | 54 + .../libgomp.fortran/map-subarray-6.f90 | 26 + .../libgomp.fortran/map-subarray-7.f90 | 29 + .../libgomp.fortran/map-subarray-8.f90 | 47 + .../libgomp.fortran/map-subarray.f90 | 33 + .../libgomp.fortran/map-subcomponents.f90 | 32 + .../libgomp.fortran/struct-elem-map-1.f90 | 180 + .../implicit-mapping-1.c | 24 + .../libgomp.oacc-fortran/declare-create-1.f90 | 21 + .../libgomp.oacc-fortran/declare-create-2.f90 | 25 + .../libgomp.oacc-fortran/declare-create-3.f90 | 25 + .../nonlexical-assumed-size-1.f90 | 28 + .../nonlexical-assumed-size-2.f90 | 40 + 69 files changed, 9270 insertions(+), 1858 deletions(-) create mode 100644 gcc/testsuite/g++.dg/gomp/static-component-1.C create mode 100644 gcc/testsuite/gfortran.dg/goacc/assumed-size.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/map-subarray-2.f90 create mode 100644 gcc/testsuite/gfortran.dg/gomp/map-subarray.f90 create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-3.C create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-4.C create mode 100644 libgomp/testsuite/libgomp.c++/baseptrs-5.C create mode 100644 libgomp/testsuite/libgomp.c++/class-array-1.C create mode 100644 libgomp/testsuite/libgomp.c++/target-48.C create mode 100644 libgomp/testsuite/libgomp.c++/target-49.C create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-1.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c create mode 100644 libgomp/testsuite/libgomp.c-c++-common/target-map-zlas-1.c create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-2.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-3.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-4.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-5.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-6.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-7.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray-8.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subarray.f90 create mode 100644 libgomp/testsuite/libgomp.fortran/map-subcomponents.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/implicit-mapping-1.c create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/declare-create-1.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/declare-create-2.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/declare-create-3.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/nonlexical-assumed-size-1.f90 create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/nonlexical-assumed-size-2.f90 -- 2.31.1