From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 65CC838708BC for ; Tue, 2 Mar 2021 12:20:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 65CC838708BC Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Julian_Brown@mentor.com IronPort-SDR: mcpRqUg05eZAslvfH39Xzg7bZvz7+iHmMdMsvIsHfouvlARZZ+tyblljbE/4fK4EzM4KkcIZfm G46XsY3K9mSFOqrXyxdAruFqeSf/d2Fi1pae3UnCMesAa+tdK24ynwR7j576bTEBq/6fYBfgK+ u15JsZNJrO0fNr8Ts0Q5pWkepIDOAKQ/OamizIqU4Nm/NjhATxBT5d7MwZDVE/iHq918OBh7zd mmMeaHIEjYkA2nLtjCJsSv7PcRHSkqlDuWxp6rYhCvdchQ+A5KWEudbz76CcqVePMMB/obXzvT xRo= X-IronPort-AV: E=Sophos;i="5.81,216,1610438400"; d="scan'208";a="58655168" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 02 Mar 2021 04:20:28 -0800 IronPort-SDR: gKOavOoYEXbvXYtxgPo6Km+8Jy2uebC7zlIjxfMq0QQMJEV8Hg5MO3LOyCQf4SZ52Lp+gcn5Kh J4+exIde4hGia03XRFSg279iS4szh0/A8vZWAspKocp3opHB9vJbXXx4rkyCKhGy+tIrbdPj0w 9fPumJKB2DpdgzumhyFGv4pOZZImbmW0xY6HWJ0ymxGM6H0RTqPziZ/p/2CyDnAtVFjV9KgbWB hcJ+JWz/gGVEPoeVK5cmI/qr5C5zIsz8+1bzKnJQiEbMgEe8XTZnjFjU5wNR7mffIXNx50quIC gT4= From: Julian Brown To: CC: Thomas Schwinge , Tobias Burnus , Kwok Cheung Yeung , Jakub Jelinek Subject: [PATCH 0/4] openacc: Worker partitioning in the middle end Date: Tue, 2 Mar 2021 04:20:10 -0800 Message-ID: X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-05.mgc.mentorg.com (139.181.222.5) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Mar 2021 12:20:32 -0000 This series contains updated parts of the patch series that was previously sent upstream in November 2019: https://gcc.gnu.org/pipermail/gcc-patches/2019-November/534547.html The purpose of the series is to enable multiple workers for OpenACC (workers being one of the dimensions of parallelism supported by the standard) on targets such as AMD GCN. (NVPTX uses its own scheme for supporting multiple workers, implemented mostly in the backend.) Tested with offloading to AMD GCN and (separately) to NVPTX. Further commentary is provided alongside individual patches. I'm posting these patches for review now, but I don't expect to commit them until stage 1. Thanks, Julian Julian Brown (4): openacc: Middle-end worker-partitioning support openacc: Fix async bugs in several OpenACC test cases amdgcn: Enable OpenACC worker partitioning for AMD GCN openacc: Reference-typed reduction and private variable rewriting gcc/Makefile.in | 1 + gcc/config/gcn/gcn-protos.h | 2 +- gcc/config/gcn/gcn-tree.c | 6 +- gcc/config/gcn/gcn.c | 23 +- gcc/config/gcn/gcn.opt | 5 - gcc/doc/tm.texi | 10 + gcc/doc/tm.texi.in | 4 + gcc/gimplify.c | 117 ++ gcc/oacc-neuter-bcast.c | 1471 +++++++++++++++++ gcc/oacc-neuter-bcast.h | 26 + gcc/omp-builtins.def | 8 + gcc/omp-low.c | 47 +- gcc/omp-offload.c | 159 +- gcc/omp-offload.h | 1 + gcc/passes.def | 2 + gcc/target.def | 13 + gcc/targhooks.h | 1 + .../goacc/classify-kernels-unparallelized.c | 8 +- .../c-c++-common/goacc/classify-kernels.c | 8 +- .../c-c++-common/goacc/classify-parallel.c | 8 +- .../c-c++-common/goacc/classify-routine.c | 8 +- .../c-c++-common/goacc/classify-serial.c | 8 +- .../gcc.dg/goacc/loop-processing-1.c | 2 +- .../goacc/classify-kernels-unparallelized.f95 | 8 +- .../gfortran.dg/goacc/classify-kernels.f95 | 8 +- .../gfortran.dg/goacc/classify-parallel.f95 | 8 +- .../gfortran.dg/goacc/classify-routine.f95 | 8 +- .../gfortran.dg/goacc/classify-serial.f95 | 8 +- gcc/tree-core.h | 4 +- gcc/tree-pass.h | 2 + gcc/tree.c | 11 +- gcc/tree.h | 2 + libgomp/plugin/plugin-gcn.c | 4 +- .../libgomp.oacc-c++/privatized-ref-2.C | 64 + .../libgomp.oacc-c++/privatized-ref-3.C | 64 + .../libgomp.oacc-c-c++-common/deep-copy-10.c | 14 +- .../loop-dim-default.c | 11 +- .../libgomp.oacc-c-c++-common/parallel-dims.c | 13 +- .../libgomp.oacc-fortran/lib-16-2.f90 | 5 + .../testsuite/libgomp.oacc-fortran/lib-16.f90 | 5 + .../libgomp.oacc-fortran/parallel-dims-aux.c | 9 +- .../libgomp.oacc-fortran/privatized-ref-1.f95 | 71 + 42 files changed, 2112 insertions(+), 145 deletions(-) create mode 100644 gcc/oacc-neuter-bcast.c create mode 100644 gcc/oacc-neuter-bcast.h create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C create mode 100644 libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C create mode 100644 libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-1.f95 -- 2.29.2